• [^] # Re: Howto

    Posté par . En réponse au journal Plus c'est gros, plus ça fait mal. Évalué à 7.

    Je vais essayer de faire une petite synthèse:

    Le problème (diagnostiqué à posteriori):
    Le 6 au matin j'ai un mail de mdadm qui me prévient que mon raid est en mode dégradé. Les logs me donnent ça:
    Feb 6 06:32:48 data1 kernel: hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
    Feb 6 06:32:48 data1 kernel: hdf: dma_intr: error=0x40 { UncorrectableError }, LBAsect=257037439, high=15, low=5379199, sector=257037439
    Feb 6 06:32:48 data1 kernel: ide: failed opcode was: unknown
    Feb 6 06:32:48 data1 kernel: end_request: I/O error, dev hdf, sector 257037439
    Feb 6 06:32:49 data1 kernel: hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
    Feb 6 06:32:49 data1 kernel: hdf: dma_intr: error=0x40 { UncorrectableError }, LBAsect=257037447, high=15, low=5379207, sector=257037447
    Feb 6 06:32:49 data1 kernel: ide: failed opcode was: unknown
    Feb 6 06:32:49 data1 kernel: end_request: I/O error, dev hdf, sector 257037447
    Feb 6 06:32:49 data1 kernel: RAID5 conf printout:
    Feb 6 06:32:49 data1 kernel: --- rd:4 wd:3 fd:1
    Feb 6 06:32:49 data1 kernel: disk 0, o:0, dev:hdf1
    Feb 6 06:32:49 data1 kernel: disk 1, o:1, dev:hdh1
    Feb 6 06:32:49 data1 kernel: disk 2, o:1, dev:hdj1
    Feb 6 06:32:49 data1 kernel: disk 3, o:1, dev:hdl1
    Feb 6 06:32:49 data1 kernel: RAID5 conf printout:
    Feb 6 06:32:49 data1 kernel: --- rd:4 wd:3 fd:1
    Feb 6 06:32:49 data1 kernel: disk 1, o:1, dev:hdh1
    Feb 6 06:32:49 data1 kernel: disk 2, o:1, dev:hdj1
    Feb 6 06:32:49 data1 kernel: disk 3, o:1, dev:hdl1
    Comme dans le même temps j'ai un appel de la société de sécurité pour un problème d'alimentation électrique de la centrale d'alarme dans le même créneau, je me pose des questions sur mon onduleur. Je vérifie hdf avec un petit smartctl -a /dev/hdf | less: j'y trouve ça (j'ai mis la dernière du moment, pas celle trouvée hier)
    Error 47 occurred at disk power-on lifetime: 13907 hours (579 days + 11 hours)
    When the command that caused the error occurred, the device was in an unknown state.

    After command completion occurred, registers were:
    ER ST SC SN CL CH DH
    -- -- -- -- -- -- --
    84 51 40 e7 43 cc f0 Error: ICRC, ABRT 64 sectors at LBA = 0x00cc43e7 = 13386727
    les autres disques du raid ne montrent aucune erreur (j'en déduit aussi que hdf va me lâcher un des jours, todo++). Vu que globalement smarctl me dit que le disque est encore bon "SMART overall-health self-assessment test result: PASSED", je lance une reconstruction: mdadm -r /dev/md9 /dev/hdf1; mdadm -a /dev/md9 /dev/hdf1.

    à 11h, arrivée d'un technicien EDF qui vient vérifier les compteurs, merde j'étais presque à la fin de la reconstruction. Comme il a pas l'air de vouloir attendre 1h de plus :) et qu'il ne sait pas exactment pour combien de temps il en a, je suis bien obligé d'arrêter le serveur. Vers 11h30, le courant revient, le tech me dit qu'il a finit et est en train de ranger son barda. Je rallume...

    vers 12h, je rallume le PC, il n'est pas visible sur le réseau. (c'est un headless). Je soupçonne un problème de montage mais Je dois sortir, pression sur le bouton off...

    vers 20h, je branche un écran/clavier, tape mon mot de passe root, et trouve ça dans les logs
    Feb 6 20:19:06 data1 kernel: md: created md9
    Feb 6 20:19:06 data1 kernel: md: bind
    Feb 6 20:19:06 data1 kernel: md: bind
    Feb 6 20:19:06 data1 kernel: md: bind
    Feb 6 20:19:06 data1 kernel: md: bind
    Feb 6 20:19:06 data1 kernel: md: running:
    Feb 6 20:19:06 data1 kernel: md: kicking non-fresh hdl1 from array!
    Feb 6 20:19:06 data1 kernel: md: unbind
    Feb 6 20:19:06 data1 kernel: md: export_rdev(hdl1)
    Feb 6 20:19:06 data1 kernel: raid5: device hdj1 operational as raid disk 2
    Feb 6 20:19:06 data1 kernel: raid5: device hdh1 operational as raid disk 1
    Feb 6 20:19:06 data1 kernel: RAID5 conf printout:
    Feb 6 20:19:06 data1 kernel: --- rd:4 wd:2 fd:2
    Feb 6 20:19:06 data1 kernel: disk 1, o:1, dev:hdh1
    Feb 6 20:19:06 data1 kernel: disk 2, o:1, dev:hdj1
    Feb 6 20:19:06 data1 kernel: md: do_md_run() returned -22
    Feb 6 20:19:06 data1 kernel: md: md9 stopped.
    Plus une goutte de sang dans le visage :).

    Je passerais sur la loooongue recherche sur internet plus arriver à la commande qui m'a permis de récupérer la situation:
    # mdadm -A -f /dev/md9 /dev/hdl1 /dev/hdj1 /dev/hdh1 /dev/hdf1
    Juste un truc que j'ai pas compris: l'ordre des devices à assembler semble très important. J'avais fait un premier test avec un ordre différent, mdadm n'a pas bronché mais les partitions étaient illisibles.

    Et pour finir, forcer la vérification des deux partitions (une reiser et une xfs) (en croisant les doigts super super fort, une gousse d'ail dans chaque poche, et une prière à saint-maxtor...

    Et là, le MIRACLE, rien, nada, qued, donc remontage, roulage, linuxjournal...