Vor einiger Zeit hatte ich ein RAID5-System zu Hause. Eine der 4 Festplatten ist ausgefallen, aber nachdem sie entfernt und wieder eingesetzt wurde, schien es in Ordnung zu sein, und ich habe eine erneute Synchronisierung gestartet. Als es fertig war, stellte ich zu meinem Entsetzen fest, dass 3 von 4 Festplatten ausfielen. Ich glaube jedoch nicht, dass das möglich ist. Auf den Festplatten befinden sich mehrere Partitionen, die jeweils Teil eines anderen RAID-Arrays sind.
- md0 ist ein RAID1-Array, das aus sda1, sdb1, sdc1 und sdd1 besteht.
- md1 ist ein RAID5-Array, das aus sda2, sdb2, sdc2 und sdd2 besteht.
- md2 ist ein RAID0-Array, das aus sda3, sdb3, sdc3 und sdd3 besteht.
md0 und md2 melden alle Festplatten, während md1 meldet, dass 3 fehlgeschlagen ist (sdb2, sdc2, sdd2). Ich verstehe, dass nicht nur die mittleren Partitionen verloren gehen sollten, wenn Festplatten ausfallen.
Zu diesem Zeitpunkt schaltete ich den Computer aus und steckte die Laufwerke aus. Seitdem habe ich diesen Computer mit einer kleineren neuen Festplatte verwendet.
Gibt es Hoffnung, die Daten wiederherzustellen? Kann ich mdadm irgendwie davon überzeugen, dass meine Festplatten tatsächlich funktionieren? Die einzige Festplatte, die wirklich ein Problem hat, ist sdc, aber auch diese wird von den anderen Arrays gemeldet.
Aktualisieren
Endlich hatte ich die Möglichkeit, die alten Festplatten anzuschließen und diese Maschine von SystemRescueCd zu booten. Alles oben wurde aus dem Gedächtnis geschrieben. Jetzt habe ich einige harte Daten. Hier ist die Ausgabe vonmdadm --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
Es scheint, dass sich die Dinge seit dem letzten Start geändert haben. Wenn ich das richtig lese, funktionieren sda2, sdb2 und sdc2 und enthalten synchronisierte Daten und sdd2 ist frei. Ich erinnere mich noch genau, wie ich 3 ausgefallene Festplatten gesehen habe, aber das sind gute Neuigkeiten. Das Array funktioniert jedoch immer noch nicht:
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 scheint in md127 umbenannt worden zu sein. md125 und md126 sind sehr seltsam. Sie sollten ein Array sein, nicht zwei. Früher hieß das md1. md2 ist komplett weg, aber das war mein Swap, das ist mir egal.
Ich kann die verschiedenen Namen verstehen und es ist nicht wirklich wichtig. Aber warum ist ein Array mit 3 "Active Sync" -Datenträgern nicht lesbar? Und was ist los mit sdd2 in einem separaten Array?
Aktualisieren
Nach dem Sichern der Superblöcke habe ich Folgendes versucht:
root@sysresccd /root % mdadm --stop /dev/md125
mdadm: stopped /dev/md125
root@sysresccd /root % mdadm --stop /dev/md126
mdadm: stopped /dev/md126
So weit, ist es gut. Da sdd2 frei ist, möchte ich es noch nicht hinzufügen.
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
Anscheinend kann ich das nicht.
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>
Das hat auch nicht funktioniert. Versuchen wir es mit allen Festplatten.
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>
Kein Glück. Aufgrund dieser Antwort plane ich, Folgendes zu versuchen:
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
Ist es sicher?
Aktualisieren
Ich veröffentliche das Superblock-Parser-Skript, mit dem ich diese Tabelle in meinem Kommentar erstellt habe. Vielleicht findet es jemand nützlich. Danke für deine Hilfe.
mdadm -A /dev/md1 /dev/sd{b,c,d}2
(vielleicht --force
) wieder zusammenzusetzen? (Wenn nicht, sichern Sie zuerst die Superblöcke.)
/dev/sdd2
in einem separaten Array trotz der gleichen UUID wie sein kann sd{a,b,c}2
.
mdadm --re-add
nicht, wonach du suchst. Haben Sie kürzlich einen Gedächtnistest durchgeführt? Haben Sie eine Protokollmeldung zum Array-Fehler?