Software-RAID Nicht funktionsfähig nach Stromausfall
550
Uze
Mein Server hat gestern die Stromversorgung verloren. Es startete automatisch, wenn die Stromversorgung wiederhergestellt war, aber mein RAID ist jetzt nicht mehr funktionsfähig.
Das RAID-Array ist ein mit mdadm erstelltes Software-RAID6. Ursprünglich verwendete das Array 8 Laufwerke. Vor einigen Monaten bemerkte ich, dass ein Laufwerk SMART-Tests nicht bestanden hat. Deshalb habe ich es ersetzt. Beim Ersetzen des Laufwerks fügte ich weitere 4 Laufwerke hinzu, die sich ursprünglich in meinem vorherigen Server befanden und als ZFS (als Teil eines FreeNAS RAIDZ) formatiert waren. Dadurch wurde die Gesamtzahl der Laufwerke auf 12 erhöht.
Leider erinnere ich mich nicht genau an die Befehle, die ich zum Erweitern des Arrays verwendet habe, und der Befehl befindet sich nicht mehr in meiner bash_history. Ich weiß nicht, warum mdadm heute 8 Festplatten meldet, und fdisk meldet diese 4 Laufwerke als ZFS. Ich bin zuversichtlich, dass ich in den letzten Monaten ein RAID-Setup mit 12 Festplatten ausgeführt habe.
Meines Wissens hat sich mein Server seit gestern, nachdem er das fehlerhafte Laufwerk ersetzt und die 4 zusätzlichen Laufwerke hinzugefügt hat, nicht heruntergefahren oder neu gestartet.
Die einzigen mdadm bezogene Befehle, die ich seit der Verlustleistung ausgeführt haben sind mdadm --detail /dev/md0, mdadm --stop /dev/md0und mdadm --assemble --scan -v. Ich habe den Server nicht neu gestartet.
Mir ist klar, dass ich ein Backup brauche und ein ASAP implementieren werde. Im Moment hoffe ich nur, dass es eine Möglichkeit gibt, meine Daten wiederherzustellen.
Ich verwende Debian 9 und Mdadm 3.4.
Gerne gebe ich Ihnen weitere Informationen. (Bitte beachten Sie, dass ich mich keinesfalls als RAID- oder Mdadm-Experte bezeichne.)
Update: Ich habe die Ausgabe eines Mdadm-Tests für die "guten" / "schlechten" Laufwerke hinzugefügt. Die "guten" Laufwerke melden Raid6 und 12 Laufwerke korrekt.
mdadm --detail / dev / md0
(Hinweis: Dies war beim Booten vor dem Ausführen mdadm --stop /dev/md0. Beachten Sie auch, dass es raid0 meldet.)
/dev/md0: Version : 1.2 Raid Level : raid0 Total Devices : 8 Persistence : Superblock is persistent State : inactive Name : blackcanary:0 (local to host blackcanary) UUID : 7bd22c29:465d927f:d0c1d08f:ba3694c9 Events : 72036 Number Major Minor RaidDevice - 8 64 - /dev/sde - 8 32 - /dev/sdc - 8 0 - /dev/sda - 8 112 - /dev/sdh - 8 80 - /dev/sdf - 8 48 - /dev/sdd - 8 128 - /dev/sdi - 8 96 - /dev/sdg
fdisk -l
(Hinweis: / dev / sdb und / dev / sdj sind die einzigen beiden Laufwerke, die NICHT im Array sein dürfen.)
mdadm: looking for devices for /dev/md0 mdadm: No super block found on /dev/sdn2 (Expected magic a92b4efc, got b1f5ae15) mdadm: no RAID superblock on /dev/sdn2 mdadm: No super block found on /dev/sdn1 (Expected magic a92b4efc, got 00000000) mdadm: no RAID superblock on /dev/sdn1 mdadm: No super block found on /dev/sdn (Expected magic a92b4efc, got 00000000) mdadm: no RAID superblock on /dev/sdn mdadm: No super block found on /dev/sdm2 (Expected magic a92b4efc, got fd87a884) mdadm: no RAID superblock on /dev/sdm2 mdadm: No super block found on /dev/sdm1 (Expected magic a92b4efc, got 00000000) mdadm: no RAID superblock on /dev/sdm1 mdadm: No super block found on /dev/sdm (Expected magic a92b4efc, got 00000000) mdadm: no RAID superblock on /dev/sdm mdadm: No super block found on /dev/sdl2 (Expected magic a92b4efc, got 946313cc) mdadm: no RAID superblock on /dev/sdl2 mdadm: No super block found on /dev/sdl1 (Expected magic a92b4efc, got 00000000) mdadm: no RAID superblock on /dev/sdl1 mdadm: No super block found on /dev/sdl (Expected magic a92b4efc, got 00000000) mdadm: no RAID superblock on /dev/sdl mdadm: No super block found on /dev/sdk2 (Expected magic a92b4efc, got 4de36623) mdadm: no RAID superblock on /dev/sdk2 mdadm: No super block found on /dev/sdk1 (Expected magic a92b4efc, got 00000000) mdadm: no RAID superblock on /dev/sdk1 mdadm: No super block found on /dev/sdk (Expected magic a92b4efc, got 00000000) mdadm: no RAID superblock on /dev/sdk mdadm: No super block found on /dev/sdj (Expected magic a92b4efc, got 0000043c) mdadm: no RAID superblock on /dev/sdj mdadm: No super block found on /dev/sdb3 (Expected magic a92b4efc, got 00000000) mdadm: no RAID superblock on /dev/sdb3 mdadm: No super block found on /dev/sdb2 (Expected magic a92b4efc, got 00000405) mdadm: no RAID superblock on /dev/sdb2 mdadm: No super block found on /dev/sdb1 (Expected magic a92b4efc, got 00000000) mdadm: no RAID superblock on /dev/sdb1 mdadm: No super block found on /dev/sdb (Expected magic a92b4efc, got 00000000) mdadm: no RAID superblock on /dev/sdb mdadm: /dev/sdi is identified as a member of /dev/md0, slot 7. mdadm: /dev/sdh is identified as a member of /dev/md0, slot 6. mdadm: /dev/sdg is identified as a member of /dev/md0, slot 5. mdadm: /dev/sdf is identified as a member of /dev/md0, slot 4. mdadm: /dev/sda is identified as a member of /dev/md0, slot 2. mdadm: /dev/sdc is identified as a member of /dev/md0, slot 0. mdadm: /dev/sde is identified as a member of /dev/md0, slot 3. mdadm: /dev/sdd is identified as a member of /dev/md0, slot 1. mdadm: added /dev/sdd to /dev/md0 as 1 mdadm: added /dev/sda to /dev/md0 as 2 mdadm: added /dev/sde to /dev/md0 as 3 mdadm: added /dev/sdf to /dev/md0 as 4 mdadm: added /dev/sdg to /dev/md0 as 5 mdadm: added /dev/sdh to /dev/md0 as 6 mdadm: added /dev/sdi to /dev/md0 as 7 mdadm: no uptodate device for slot 8 of /dev/md0 mdadm: no uptodate device for slot 9 of /dev/md0 mdadm: no uptodate device for slot 10 of /dev/md0 mdadm: no uptodate device for slot 11 of /dev/md0 mdadm: added /dev/sdc to /dev/md0 as 0 mdadm: /dev/md0 assembled from 8 drives - not enough to start the array.
mdadm.conf
# mdadm.conf # # Please refer to mdadm.conf(5) for information about this file. # # by default (built-in), scan all partitions (/proc/partitions) and all # containers for MD superblocks. alternatively, specify devices to scan, using # wildcards if desired. #DEVICE partitions containers # automatically tag new arrays as belonging to the local system HOMEHOST <system> # instruct the monitoring daemon where to send mail alerts MAILADDR root # definitions of existing MD arrays # This configuration was auto-generated on Sun, 25 Jun 2017 22:28:24 -0500 by mkconf ARRAY /dev/md0 metadata=1.2 name=blackcanary:0 UUID=7bd22c29:465d927f:d0c1d08f:ba3694c9
mdadm --examine / dev / sdd
(Hinweis: Sehr ähnliche Informationen werden für jedes der "guten" 8 Laufwerke zurückgegeben.)
/dev/sdd: Magic : a92b4efc Version : 1.2 Feature Map : 0x1 Array UUID : 7bd22c29:465d927f:d0c1d08f:ba3694c9 Name : blackcanary:0 (local to host blackcanary) Creation Time : Sun Jun 25 22:53:12 2017 Raid Level : raid6 Raid Devices : 12 Avail Dev Size : 7813780144 (3725.90 GiB 4000.66 GB) Array Size : 39068897280 (37259.00 GiB 40006.55 GB) Used Dev Size : 7813779456 (3725.90 GiB 4000.66 GB) Data Offset : 257024 sectors Super Offset : 8 sectors Unused Space : before=256936 sectors, after=688 sectors State : clean Device UUID : 91d8e433:aeb9a4f2:75ca10cf:3ceb0a83 Internal Bitmap : 8 sectors from superblock Update Time : Sun Oct 7 14:23:36 2018 Bad Block Log : 512 entries available at offset 72 sectors Checksum : b960e905 - correct Events : 72036 Layout : left-symmetric Chunk Size : 512K Device Role : Active device 1 Array State : AAAAAAAAAAAA ('A' == active, '.' == missing, 'R' == replacing)
mdadm --examine / dev / sdk
(Hinweis: Die gleichen Informationen werden für jedes der "schlechten" 4 Laufwerke zurückgegeben.)
Prüfen Sie, ob entweder 'sudo fdisk -b 512 -t gpt -l / dev / sdn' oder `sudo fdisk -b 4096 -t gpt -l / dev / sdn 'die erwarteten Partitionen anzeigt.
grawity vor 6 Jahren
0
Ich habe die Ausgabe von beiden zum ursprünglichen Beitrag hinzugefügt. Einige Verwirrung an meinem Ende ist, dass ich nicht erwartet hatte, Partitionen für sd [kn] zu sehen, wenn man bedenkt, dass die anderen Laufwerke keine Partitionen auflisten.
Uze vor 6 Jahren
0
1 Antwort auf die Frage
0
Uze
Nach langen Nachforschungen konnte ich mein RAID-Array ohne offensichtlichen Datenverlust wiederherstellen.
Ich musste es letztendlich gebrauchen mdadm --create --assume-clean. Ich entschied mich für Overlay-Dateien, um verschiedene Konfigurationen zerstörungsfrei zu testen, bis ich die richtige gefunden habe.
Ich nutzte mdadm --examine /dev/sd*die "guten" Laufwerke, um ihre Reihenfolge zu bestimmen. Dann habe ich die möglichen Permutationen der "schlechten" Laufwerke generiert und durchgelaufen, bis ich ein anhängbares Dateisystem hatte. Zum Glück hatte ich nur 24 mögliche Kombinationen.
Ich durchlief alle 24 Permutationen und hatte keinen Erfolg. Ich habe eines der Mapper-Laufwerke ( mdadm --examine /dev/mapper/sd*) untersucht und mit dem Original verglichen und festgestellt, dass der Datenversatz anders ist. Ich habe den data-offsetParameter zur Konfiguration hinzugefügt, die Permutationen erneut getestet und hatte nach dem 12. Versuch Erfolg.
Dies sind die Befehle, die ich beim Testen ausgeführt habe:
Ich habe ddden MBR und die Partitionstabelle der "schlechten" Laufwerke gesichert und dann die MBR- und Partitionstabelle mit Nullen überschrieben, um mit den "guten" Laufwerken übereinzustimmen, so dass dies bei zukünftigen Neustarts kein Problem sein sollte.
Nach dem erfolgreichen Aufbau habe ich eine neue mdadm.confDatei erstellt und so viele Daten wie möglich über das Array aufgezeichnet, falls ich sie in der Zukunft brauche. Jetzt suche ich nach einer echten Backup-Lösung.
... haben Sie auch einen Neustart durchgeführt, um zu bestätigen, dass Ihre Konfiguration gültig ist?
Attie vor 6 Jahren
0