Storia a lieto fine di crash contemporaneo di due hd su 3 configurati in RAID 5 con hotspare 2

Ieri è morto il mio server di posta a casa (lurch).

Oggi sono riuscito a farlo resuscitare ma… mettetevi comodi che ve la racconto.. è un film!

Allora la macchina ha 4 dischi:

hda 40gb /boot in raid1, swap in raid5, / in raid5
hdb 40gb /boot in raid1, swap in raid5, / in raid5
hdc 40gb /boot in spare, swap in raid5, / in raid5
hdd 40gb /boot in spare, swap in spare, / in spare

La mattina alle 9.00 spengo il server perchè sulla via di casa mia ACEA sta facendo dei lavori, torno a casa la sera alle 19.00 e riaccendo il tutto, fin qui tutto ok, quando, alle 00:29:25, hda inizia a fare qualche pernacchia… ma il RAID 5 ancora regge!

Mar 23 00:29:25 lurch kernel: hda: dma_timer_expiry: dma status == 0x60
Mar 23 00:29:25 lurch kernel: hda: DMA timeout retry
Mar 23 00:29:25 lurch kernel: hda: timeout waiting for DMA
Mar 23 00:30:59 lurch kernel: hda: dma_timer_expiry: dma status == 0x61
Mar 23 00:31:28 lurch kernel: hda: dma_timer_expiry: dma status == 0x61
Mar 23 00:31:38 lurch kernel: hda: DMA timeout error
Mar 23 00:31:38 lurch kernel: hda: dma timeout error: status=0xd0 { Busy }
Mar 23 00:31:38 lurch kernel:
Mar 23 00:31:38 lurch kernel: ide: failed opcode was: unknown
Mar 23 00:31:38 lurch kernel: hda: DMA disabled
Mar 23 00:31:38 lurch kernel: hdb: DMA disabled
Mar 23 00:31:41 lurch kernel: ide0: reset: success
Mar 23 00:39:36 lurch kernel: hda: dma_timer_expiry: dma status == 0x21
Mar 23 01:10:26 lurch kernel: hda: dma_timer_expiry: dma status == 0x21
Mar 23 01:10:36 lurch kernel: hda: DMA timeout error
Mar 23 01:10:36 lurch kernel: hda: dma timeout error: status=0xd0 { Busy }
Mar 23 01:10:36 lurch kernel:
Mar 23 01:10:36 lurch kernel: ide: failed opcode was: unknown
Mar 23 01:10:36 lurch kernel: hda: DMA disabled
Mar 23 01:11:00 lurch kernel: ide0: reset: success
Mar 23 01:25:29 lurch kernel: hda: dma_timer_expiry: dma status == 0x21
Mar 23 01:41:03 lurch kernel: hda: dma_timer_expiry: dma status == 0x21
Mar 23 02:15:41 lurch kernel: hda: dma_timer_expiry: dma status == 0x21
Mar 23 02:15:51 lurch kernel: hda: DMA timeout error
Mar 23 02:15:51 lurch kernel: hda: dma timeout error: status=0xd0 { Busy }
Mar 23 02:15:51 lurch kernel:
Mar 23 02:15:51 lurch kernel: ide: failed opcode was: unknown
Mar 23 02:15:51 lurch kernel: hda: DMA disabled
Mar 23 02:16:05 lurch kernel: ide0: reset: success
Mar 23 02:18:20 lurch kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 23 02:18:20 lurch kernel:
Mar 23 02:18:20 lurch kernel: ide: failed opcode was: unknown
Mar 23 02:18:40 lurch kernel: ide0: reset: success
Mar 23 02:26:12 lurch kernel: hda: task_in_intr: status=0x59 { DriveReady SeekComplete DataRequest Error }

hi, ahi… comincia a peggiorare!

Mar 23 02:26:12 lurch kernel: hda: task_in_intr: error=0x10 { SectorIdNotFound }, LBAsect=13874056, sector=13874056
Mar 23 02:26:12 lurch kernel: ide: failed opcode was: unknown
Mar 23 02:34:50 lurch kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 23 02:34:50 lurch kernel:
Mar 23 02:34:50 lurch kernel: ide: failed opcode was: unknown
Mar 23 02:35:22 lurch kernel: ide0: reset timed-out, status=0x80
Mar 23 02:46:12 lurch kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 23 02:46:12 lurch kernel:
Mar 23 02:46:12 lurch kernel: ide: failed opcode was: unknown
Mar 23 02:46:15 lurch kernel: ide0: reset: success
Mar 23 02:50:47 lurch kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 23 02:50:47 lurch kernel:
Mar 23 02:50:47 lurch kernel: ide: failed opcode was: unknown
Mar 23 02:51:22 lurch kernel: ide0: reset timed-out, status=0x80

Poi comincia ad impazzire anche hdb! Ma il RAID 5 ancora regge…

Mar 23 02:51:22 lurch kernel: hdb: status timeout: status=0xd0 { Busy }
Mar 23 02:51:22 lurch kernel:
Mar 23 02:51:22 lurch kernel: ide: failed opcode was: unknown
Mar 23 02:51:22 lurch kernel: hdb: drive not ready for command
Mar 23 02:51:23 lurch kernel: ide0: reset: success
Mar 23 03:20:56 lurch kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 23 03:20:56 lurch kernel:
Mar 23 03:20:56 lurch kernel: ide: failed opcode was: unknown
Mar 23 03:21:21 lurch kernel: ide0: reset: success
Mar 23 04:00:31 lurch kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 23 04:00:31 lurch kernel:
Mar 23 04:00:31 lurch kernel: ide: failed opcode was: unknown
Mar 23 04:00:31 lurch kernel: ide0: reset: success
Mar 23 04:02:26 lurch kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 23 04:02:26 lurch kernel:
Mar 23 04:02:26 lurch kernel: ide: failed opcode was: unknown
Mar 23 04:03:01 lurch kernel: ide0: reset timed-out, status=0x80
Mar 23 04:03:01 lurch kernel: hda: status timeout: status=0x80 { Busy }
Mar 23 04:03:01 lurch kernel:
Mar 23 04:03:01 lurch kernel: ide: failed opcode was: unknown
Mar 23 04:03:01 lurch kernel: hda: drive not ready for command
Mar 23 04:03:15 lurch kernel: ide0: reset: success
Mar 23 04:04:11 lurch kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 23 04:04:11 lurch kernel:
Mar 23 04:04:11 lurch kernel: ide: failed opcode was: unknown
Mar 23 04:04:44 lurch kernel: ide0: reset timed-out, status=0x80
Mar 23 04:09:46 lurch kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 23 04:09:46 lurch kernel:
Mar 23 04:09:46 lurch kernel: ide: failed opcode was: unknown
Mar 23 04:10:02 lurch kernel: ide0: reset: success
Mar 23 04:40:16 lurch kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 23 04:40:16 lurch kernel:
Mar 23 04:40:16 lurch kernel: ide: failed opcode was: unknown
Mar 23 04:40:51 lurch kernel: ide0: reset timed-out, status=0x80
Mar 23 04:40:51 lurch kernel: hdb: status timeout: status=0xd0 { Busy }
Mar 23 04:40:51 lurch kernel:
Mar 23 04:40:51 lurch kernel: ide: failed opcode was: unknown
Mar 23 04:40:51 lurch kernel: hdb: drive not ready for command
Mar 23 04:41:14 lurch kernel: ide0: reset: success
Mar 23 04:42:36 lurch kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 23 04:42:36 lurch kernel:
Mar 23 04:42:36 lurch kernel: ide: failed opcode was: unknown
Mar 23 04:43:11 lurch kernel: ide0: reset timed-out, status=0x80
Mar 23 04:43:11 lurch kernel: hdb: status timeout: status=0xd0 { Busy }
Mar 23 04:43:11 lurch kernel:
Mar 23 04:43:11 lurch kernel: ide: failed opcode was: unknownMar 23 04:43:11 lurch kernel: hdb: drive not ready for command
Mar 23 04:43:15 lurch kernel: ide0: reset: success

La questione si fa ora più seria!

Mar 23 04:43:15 lurch kernel: end_request: I/O error, dev hda, sector 13874040
Mar 23 04:43:15 lurch kernel: raid5: Disk failure on hda6, disabling device. Operation continuing on 2 devices

Fuori hda! Il RAID 5 ancora regge, in degraded mode.

Mar 23 04:43:15 lurch kernel: end_request: I/O error, dev hda, sector 13874064
Mar 23 04:43:15 lurch kernel: end_request: I/O error, dev hda, sector 14038424
Mar 23 04:43:15 lurch kernel: end_request: I/O error, dev hda, sector 14095016
Mar 23 04:43:15 lurch kernel: end_request: I/O error, dev hda, sector 14042320
Mar 23 04:43:15 lurch kernel: end_request: I/O error, dev hda, sector 14094976

Il mio fido RAID sostituisce subito il disco rotto con lo spare hdd!! Viva Linux RAID!!

Mar 23 04:43:15 lurch kernel: RAID5 conf printout:
Mar 23 04:43:15 lurch kernel:  --- rd:3 wd:2 fd:1
Mar 23 04:43:15 lurch kernel:  disk 0, o:1, dev:hdc6
Mar 23 04:43:16 lurch kernel:  disk 1, o:1, dev:hdb6
Mar 23 04:43:16 lurch kernel:  disk 2, o:0, dev:hda6
Mar 23 04:43:16 lurch kernel: RAID5 conf printout:
Mar 23 04:43:16 lurch kernel:  --- rd:3 wd:2 fd:1
Mar 23 04:43:16 lurch kernel:  disk 0, o:1, dev:hdc6
Mar 23 04:43:16 lurch kernel:  disk 1, o:1, dev:hdb6
Mar 23 04:43:16 lurch kernel: RAID5 conf printout:
Mar 23 04:43:16 lurch kernel:  --- rd:3 wd:2 fd:1
Mar 23 04:43:16 lurch kernel:  disk 0, o:1, dev:hdc6
Mar 23 04:43:16 lurch kernel:  disk 1, o:1, dev:hdb6
Mar 23 04:43:16 lurch kernel:  disk 2, o:1, dev:hdd6
Mar 23 04:43:16 lurch kernel: ...<6>md: syncing RAID array md2
Mar 23 04:43:16 lurch kernel: md: minimum _guaranteed_ reconstruction speed: 1000 KB/sec/disc.
Mar 23 04:43:16 lurch kernel: md: using maximum available idle IO bandwith (but not more than 200000 KB/sec) for reconstruction.
Mar 23 04:43:16 lurch kernel: md: using 128k window, over a total of 44114368 blocks.

Ma attenzione! Qui il log si interrompe… cosa è successo?

La mattina trovo la macchina ancora in piedi ma qualsiasi servizio non è funzionante, risponde solo la console via tastiera.

Con mia sorpresa ogni comando va in segmentation fault, anche un semplice PS!!

Cosa fare? Non mi resta che il reset hardware, dato che HALT va in crash 🙁

Al riavvio un bel kernel panic: non riesce a montare / perché il raid5 ha disponibile 1 disco su 3!! E che fine hanno fatto gli altri due?

Possibile che se ne siano rotti 2 insieme, i famigerati hda e hdb?

Proprio mentre ricostruiva il mirror sul disco spare, che culo!

Ovviamente /boot e swap funzionavano, anche da hda e hdb 🙂

Quindi un disco MEZZO rotto, tant’è che il mitico RAID di linux ha smontato SOLO / e non tutte le partizioni del disco incriminato!

Cosa faccio ora? Il RAID5 con un disco solo è illeggibile… ma io non mi fido della sfiga assurda e allora voglio provare a farglieli rimontare anche dopo tutti quegli errori.

Ovviamente il server è vecchio, ha solo 4 canali IDE e quindi, indovinate un po’ dove lo attacco il CDROM? Mi tocca staccare un disco,

lo spare, e attaccare il CDROM… che, tanto per cambiare, smette di funzionare come tocco il pulsante di EJECT! Si spezza la rotellina del carrello e addio CDROM… che culo, proprio adesso ci voleva!

E allora fruga tra la roba vecchia in soffitta… dopo 15 minuti trovo 3 lettori CD IDE che avevo tenuto in serbo per evenienze del genere… vari tentativi… uno funziona! E finalmente parte il CD di Mandriva in modalità rescue.

Dopo il boot, dico al raid di provare ad aggiungere nuovamente al raid 5 di / i dischi hda e hdb che erano stati esclusi… lo fa!

Come per magia / torna disponibile ma sono ancora in rescue mode…

Riavvio e, ovviamente, mi chiede di fare l’fsck… lo faccio, 1, 2, 3 volte! Non gli basta mai… finché a un certo punto decide da solo di

togliere di nuovo dal raid 5 di / il disco HDA… allora è LUI!

Finalmente dopo l’ennesimo boot con annesso fsck, la macchina riparte…fiù!

A questo punto riattacco lo spare, e gli dico di marcare come fallite tutte le partizioni di hda coinvolte nei vari raid, scatenando automaticamente la procedura di ricostruzione del raid con lo spare che ho appena riattaccato.

Aggiungo nuovamente il disco hdd al raid 5 di /… e con estrema soddisfazione dopo 30 minuti l’integrità di tutto il sistema è ripristinata.

Ora devo solo staccare quel maledetto HDA, identificato con hdparm (il quale mi dice il numero di serie, che poi è attaccato fuori dal disco con etichetta) e aggiungere un nuovo disco da mettere come spare…

CHE FATICA!

Alle 22:14:23… tutto riparte alla grande!

Mar 23 22:14:23 lurch syslogd 1.4.1: restart.

Cosa ho imparato oggi: mai fidarsi di un server solo, anche se ha RAID 5 con HOTSPARE… meglio avere 2 server per offrire lo stesso servizio 🙂

Tutto in raid hardware funziona meglio dite voi… forse, ma io non mi fido lo stesso… ne ho viste troppe fino ad oggi!

Ovviamente RAID HW e sistemi ridondati a casa mia non hanno senso… 😐

E vissero felici e contenti 🙂

Buonanotte…

comments powered by HyperComments
Max
2011-01-20 12:30:04
Ahahahahah grande!!!! La prox volta comprati un bello storage EMC2 che così non avrai piu' di questi problemi :DDDDDDDDDDDDDDD ciaoo
creator
2011-01-21 00:24:37
Comprare? Roba come quella di EMC2 costa l'ira di Dio! Accetto volentieri roba dismessa però... è per uso casalingo! Hai qualcosa?