Qualche tempo fa avevo un sistema RAID5 a casa. Uno dei 4 dischi non è riuscito, ma dopo averlo rimosso e rimesso sembrava che fosse OK, quindi ho avviato una risincronizzazione. Alla fine mi sono reso conto, con mio orrore, che 3 dischi su 4 hanno fallito. Tuttavia non credo che sia possibile. Esistono più partizioni sui dischi ogni parte di un diverso array RAID.
- md0 è un array RAID1 composto da sda1, sdb1, sdc1 e sdd1.
- md1 è un array RAID5 composto da sda2, sdb2, sdc2 e sdd2.
- md2 è un array RAID0 composto da sda3, sdb3, sdc3 e sdd3.
md0 e md2 riportano tutti i dischi attivi mentre md1 riporta 3 falliti (sdb2, sdc2, sdd2). Ho capito che quando i dischi rigidi si guastano, tutte le partizioni vanno perse, non solo quelle centrali.
A quel punto ho spento il computer e ho scollegato le unità. Da allora stavo usando quel computer con un nuovo disco più piccolo.
C'è qualche speranza di recuperare i dati? Posso in qualche modo convincere mdadm che i miei dischi funzionano davvero? L'unico disco che può davvero avere un problema è sdc ma anche quello è segnalato dagli altri array.
Aggiornare
Ho finalmente avuto la possibilità di collegare i vecchi dischi e avviare questa macchina da SystemRescueCd. Tutto quanto sopra è stato scritto dalla memoria. Ora ho alcuni dati concreti. Ecco l'output dimdadm --examine /dev/sd*2
/dev/sda2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 GiB 640.07 GB)
Array Size : 1875194880 (1788.33 GiB 1920.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Mon Aug 23 11:40:48 2010
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 1
Spare Devices : 1
Checksum : 68b48835 - correct
Events : 53204
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 0 8 2 0 active sync /dev/sda2
0 0 8 2 0 active sync /dev/sda2
1 1 8 18 1 active sync /dev/sdb2
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
/dev/sdb2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 GiB 640.07 GB)
Array Size : 1875194880 (1788.33 GiB 1920.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Mon Aug 23 11:44:54 2010
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1
Checksum : 68b4894a - correct
Events : 53205
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 1 8 18 1 active sync /dev/sdb2
0 0 0 0 0 removed
1 1 8 18 1 active sync /dev/sdb2
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
/dev/sdc2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 GiB 640.07 GB)
Array Size : 1875194880 (1788.33 GiB 1920.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Mon Aug 23 11:44:54 2010
State : clean
Active Devices : 1
Working Devices : 2
Failed Devices : 2
Spare Devices : 1
Checksum : 68b48975 - correct
Events : 53210
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 2 8 34 2 active sync /dev/sdc2
0 0 0 0 0 removed
1 1 0 0 1 faulty removed
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
/dev/sdd2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 GiB 640.07 GB)
Array Size : 1875194880 (1788.33 GiB 1920.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Update Time : Mon Aug 23 11:44:54 2010
State : clean
Active Devices : 1
Working Devices : 2
Failed Devices : 2
Spare Devices : 1
Checksum : 68b48983 - correct
Events : 53210
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 4 8 50 4 spare /dev/sdd2
0 0 0 0 0 removed
1 1 0 0 1 faulty removed
2 2 8 34 2 active sync /dev/sdc2
3 3 0 0 3 faulty removed
4 4 8 50 4 spare /dev/sdd2
Sembra che le cose siano cambiate dall'ultimo avvio. Se sto leggendo correttamente sda2, sdb2 e sdc2 funzionano e contengono dati sincronizzati e sdd2 è di riserva. Ricordo distintamente di aver visto 3 dischi guasti ma questa è una buona notizia. Tuttavia l'array continua a non funzionare:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md125 : inactive sda2[0](S) sdb2[1](S) sdc2[2](S)
1875194880 blocks
md126 : inactive sdd2[4](S)
625064960 blocks
md127 : active raid1 sda1[0] sdd1[3] sdc1[2] sdb1[1]
64128 blocks [4/4] [UUUU]
unused devices: <none>
md0 sembra essere stato rinominato in md127. md125 e md126 sono molto strani. Dovrebbero essere un array non due. Si chiamava md1. md2 è completamente sparito ma quello è stato il mio scambio quindi non mi interessa.
Riesco a capire i diversi nomi e non importa. Ma perché un array con 3 dischi di "sincronizzazione attiva" è illeggibile? E che succede con sdd2 in un array separato?
Aggiornare
Ho provato quanto segue dopo aver eseguito il backup dei superblocchi:
root@sysresccd /root % mdadm --stop /dev/md125
mdadm: stopped /dev/md125
root@sysresccd /root % mdadm --stop /dev/md126
mdadm: stopped /dev/md126
Fin qui tutto bene. Poiché sdd2 è di riserva, non voglio ancora aggiungerlo.
root@sysresccd /root % mdadm --assemble /dev/md1 /dev/sd{a,b,c}2 missing
mdadm: cannot open device missing: No such file or directory
mdadm: missing has no superblock - assembly aborted
Apparentemente non posso farlo.
root@sysresccd /root % mdadm --assemble /dev/md1 /dev/sd{a,b,c}2
mdadm: /dev/md1 assembled from 1 drive - not enough to start the array.
root@sysresccd /root % cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : inactive sdc2[2](S) sdb2[1](S) sda2[0](S)
1875194880 blocks
md127 : active raid1 sda1[0] sdd1[3] sdc1[2] sdb1[1]
64128 blocks [4/4] [UUUU]
unused devices: <none>
Neanche quello ha funzionato. Proviamo con tutti i dischi.
mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@sysresccd /root % mdadm --assemble /dev/md1 /dev/sd{a,b,c,d}2
mdadm: /dev/md1 assembled from 1 drive and 1 spare - not enough to start the array.
root@sysresccd /root % cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : inactive sdc2[2](S) sdd2[4](S) sdb2[1](S) sda2[0](S)
2500259840 blocks
md127 : active raid1 sda1[0] sdd1[3] sdc1[2] sdb1[1]
64128 blocks [4/4] [UUUU]
unused devices: <none>
Senza fortuna. Sulla base di questa risposta ho intenzione di provare:
mdadm --create /dev/md1 --assume-clean --metadata=0.90 --bitmap=/root/bitmapfile --level=5 --raid-devices=4 /dev/sd{a,b,c}2 missing
mdadm --add /dev/md1 /dev/sdd2
È sicuro?
Aggiornare
Pubblico la sceneggiatura superblocco parser ho usato per fare quel tavolo nel mio commento. Forse qualcuno lo troverà utile. Grazie per tutto il vostro aiuto.
mdadm -A /dev/md1 /dev/sd{b,c,d}2
(forse --force
)? (Se non lo hai fatto, esegui prima il backup dei superblocchi.)
/dev/sdd2
possa essere in un array separato nonostante abbia lo stesso UUID di sd{a,b,c}2
.
mdadm --re-add
non sia quello che stai cercando. Hai fatto un test di memoria di recente? Hai qualche messaggio di log relativo al fallimento dell'array?