Wiederherstellung von Daten aus einem RAID im Recovery Mode (Notizzettel)

Wiederherstellung von Daten aus einem RAID im Recovery Mode

Version: 1.0


Dies ist kein Tutorial, sondern mein persönlicher Notizzettel.

Die verwendeten Befehle sollten nicht einfach blind abgetippt werden, sondern sollen den roten Faden bei ähnlich gelagerten Wiederherstellungszenarien beschreiben.

Bei Unklarheiten sollte ein Thema im Forum aufgemacht werden - Anmerkungen / Verbesserungen zu meinen Notizen gerne per PN an mich. :)

Rahmenbedingungen

In dem vorliegenden Fall ist das QTS-Betriebssystem nicht mehr in der Lage gewesen, den RAID-Verbund zusammenzubauen.

Auch wenn das QTS Betriebssystem nur noch mit ausgesteckten Festplatten startet, kommt diese Methode in Frage.

Wenn das NAS Gehäuse selbst defekt ist, kommt alternativ auch ein Linux-PC in Frage. Für bestimmte Szenarien finden sich zudem auch Windows-Tools, die den Inhalt der Festplatten auslösen können.

Der Vorteil an der Verwendung des NAS-Gehäuses zur Wiederherstellung liegt in erster Linie an der Verfügbarkeit aller notwendigen Kernel-Treiber und Tools, die zum Lesen der Festplatteninhalte benötigt werden.

Vorbereitungen

- NAS ohne Festplatten starten. Warten, bis das Gerät über den QFinder sichtbar ist.

- Per ssh / putty auf das NAS Zugreifen, es gilt der Standardzugang (User: admin Passwort: admin ).

- Die Festplatten nun in das NAS-Gehäuse nacheinander reinschieben und ca. 1 Minuten warten.

-Überprüfen, dass alle Festplatten erkannt werden.


[~] # qcli_storage -d

Code
Enclosure  Port  Sys_Name  Type      Size      Alias   Signature   Partitions  Model  
NAS_HOST   1     /dev/sda  HDD:free  931.51 GB --      QNAP FLEX   5           HITACHI HUA722010ALA330
NAS_HOST   2     /dev/sdb  HDD:free  931.51 GB --      QNAP FLEX   5           HITACHI HUA722010ALA330
NAS_HOST   3     /dev/sdc  HDD:free  931.51 GB --      QNAP FLEX   5           HITACHI HUA722010ALA330
NAS_HOST   4     /dev/sdd  HDD:free  931.51 GB --      QNAP FLEX   5           HITACHI HUA722010ALA330


In diesem Fall wurden alle vier eingeschobenen Festplatten erkannt.


Überblick verschaffen


[~] # cat /proc/partitions | grep sd


Im Regelfall finden sich Raidgruppen / Speicherpools in den Partitionen sd[X]3. Man erkennt sie zumeist daran, dass die Größe der Partition mit Abstand die Größste von allen Partitionen pro Festplatte ist. ;)


Nach RAID Verbund suchen

Wir wissen leider nicht, ob alle Festplatten Teil des gleichen RAID-Verbundes ist, daher schauen wir uns an, ob es Spuren eines Raid-Verbundes auf den Festplatten-Partitionen gibt. [~] #

mdadm --examine /dev/sd[abcd]3

/dev/sda3:

/dev/sdb3:

/dev/sdc3:

/dev/sdd3:



Aus dieser Ausgabe erkennen wir, dass sda als Einzelfestplatte konfiguriert war, sdb,sdc, sdd befanden sich in einem RAID 5 Verbund.

Platte sdd hat die älteste Update Zeit und eine Feature Map von 0x2. Die Platte war offenbar mit dem Rebuild beschäftigt, bevor sie ausgefallen ist.

Kurze Zeit später scheint es auch mit Platte sdc ein Problem gegeben zu haben, denn Platte sdb meldet einen Array Status, bei dem nur noch eine Platte im Verbund vorhanden war.


RAID Verbund starten


[~] # mdadm --assemble /dev/md99 /dev/sdb3 /dev/sdc3 /dev/sdd3

Code
mdadm: failed to get exclusive lock on mapfile - continue anyway...
mdadm: device 2 in /dev/md99 has wrong state in superblock, but /dev/sdc3 seems ok
mdadm: /dev/md99 has been started with 2 drives (out of 3)

haben wir Glück. mdadm erkennt alle drei Platten wieder und das Array wird im degraded Mode gestartet.


Wir könnten jedoch auch Pech haben


Code
[~] # mdadm --assemble /dev/md99 /dev/sdb3 /dev/sdc3 /dev/sdd3
mdadm: superblock on /dev/sdc3 doesn't match others - assembly aborted

Die Fehlermeldung kann je nach vorliegendem Problem variieren - Aufgrund der oben angestellten Analyse vermuteten wir jedoch, dass die Platte sdd zuerst aus dem Verbund geflogen ist und

Wir versuchen, den Verbund mit nur 2 Platten aufzubauen


[~] # mdadm --assemble --force /dev/md99 /dev/sdb3 /dev/sdc3

Code
mdadm: failed to get exclusive lock on mapfile - continue anyway...
mdadm: clearing FAULTY flag for device 1 in /dev/md99 for /dev/sdc3
mdadm: Marking array /dev/md99 as 'clean'
mdadm: /dev/md99 has been started with 2 drives (out of 3).


In diesem Fall hatten wir Glück im Unglück - zumindest zwei von den drei Platten scheinen noch inakt zu sein.

Wir sehen, dass der RAID-Verbund gestartet wurde:


[~] # cat /proc/mdstat

Code
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] 
md99 : active raid5 sdb3[0] sdc3[1]
      1933615104 blocks super 1.0 level 5, 512k chunk, algorithm 2 [3/2] [UU_]


Aber wie kommen wir jetzt an die Daten?


Einhängepunkt erstellen

[~] # mkdir /tempmnt


Das weitere Vorgehen ist abhängig davon, welche Art Volume auf dem NAS System eingerichtet war.


a - Legacy Volumes

Legacy Volumes lassen sich in der Regel direkt mounten:

[~] # mount -t ext4 /dev/md99 /tempmnt/


Erhalten wir eine Fehlermeldung, z.B.

Code
mount: wrong fs type, bad option, bad superblock on /dev/md77,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

ist LVM im Spiel.


b - LVM-Volumes

Mit den folgenden Kommandos schaffen iwr uns einen Überblick über die LVM Umgebung:


[~] # pvscan

Code
  WARNING: Device for PV 2NEqV9-abZB-0Hav-qhrt-y50U-qeWj-mAaLJ5 not found or rejected by a filter.
  PV /dev/md99   VG vg1             lvm2 [1.80 TiB / 0    free]
  WARNING: Device for PV 2NEqV9-abZB-0Hav-qhrt-y50U-qeWj-mAaLJ5 not found or rejected by a filter.
  PV unknown device VG vg288           lvm2 [922.02 GiB / 0    free]
  Total: 2 [2.70 TiB] / in use: 2 [2.70 TiB] / in no VG: 0 [0   ]


Auf unserem gestarten RAID-Verbund findet sich eine Volume-Gruppe vg1


[~] # lvscan



Auf dieser Volume Gruppe vg1 findet sich ein logisches Volume /dev/vg1/lv2.


Logisches Volume aktivieren

[~] # lvchange -a y /dev/vg1/lv2

Einhängen


[~] #mount -t ext4 /dev/vg1/lv2 /tempmnt/

Nach Daten suchen

[~] # cd /tempmnt/

[/tempmnt] # ls -al

Code
drwxrwxrwx    4 admin    administ      4096 Mar 14 17:47 ./
drwxr-xr-x   20 admin    administ       440 Mar 16 15:17 ../
-rw-r--r--    1 admin    administ        27 Mar 14 17:44 .qextension
drwxrwxrwx    5 admin    administ      4096 Mar 14 21:32 Misa-Q/
-rw-------    1 admin    administ      6144 Mar 14 17:44 aquota.user
drwx------    2 admin    administ     16384 Mar 14 17:44 lost+found/


Hier finen wir unseren ehemaligen Freigabe-Ordner „Misa-Q“ wieder.

[/tempmnt] # cd Misa-Q/

[/tempmnt/Misa-Q] # ls -al

Code
drwxrwxrwx    5 admin    administ      4096 Mar 16 15:42 ./
drwxrwxrwx    4 admin    administ      4096 Mar 14 17:47 ../
drwxrwxrwx    2 admin    administ      4096 Mar 14 17:52 .@upload_cache/
drwxr-xr-x    2 admin    administ      4096 Mar 14 17:47 @Recently-Snapshot/
drwxrwxrwx    2 admin    administ      4096 Mar 14 17:47 @Recycle/
-rw-rw-rw-    1 admin    administ        13 Mar 14 17:52 hallo.txt
drwxr-xr-x    2 admin    administ      4096 Mar 13 15:43 wichtig/

Und unsere dringend zu sichernde Datei hallo.txt sowie unser Ordner wichtig ist in Reichweite.


externe USB-Festplatte einstecken


Nun eine ausreichend große , NTFS (Windows) - formatierte Festplatte an das NAS anstecken.

Die USB-Festplatte sollte automatisch erkannt werden.


[~] # df -h


in unserem Fall wurde sie eingehängt unter /share/external/DEV3301_1


Wir wollen den gesamten Inhalt des Ordners Misa-Q sichern:


[~] # rsync -a --progress /tempmnt/Misa-Q /share/external/DEV3301_1/BACKUP/


Je nach Größe kann dieser Vorgang einige Minuten oder Stunden dauern.

Nach Abschluss sollten sich unsere Ordner au der USB-Festplatte befinden:



[~] # ls -al /share/external/DEV3301_1/BACKUP/

Code
drwxrwxrwx    1 admin    administ         0 Mar 14 17:52 .@upload_cache/
drwxr-xr-x    1 admin    administ         0 Mar 14 17:47 @Recently-Snapshot/
drwxrwxrwx    1 admin    administ         0 Mar 14 17:47 @Recycle/
-rw-rw-rw-    1 admin    administ        13 Mar 14 17:52 hallo.txt
drwxr-xr-x    1 admin    administ         0 Mar 16 15:43 wichtig/


Wir könnten auch einzelne Ordner oder Dateien sichern mittels:


[~] # cp -r /tempmnt/Misa-Q/wichtig/ /share/external/DEV3301_1/BACKUP/


Hierbei wird jedoch keine Fortschritsanzeige generiert. Diese Kopierart hat den Vorteil, dass sie bei vielen kleinen Dateien meist schneller arbeitet. Dafür kann ein unterbrochener Kopiervorgang nicht einfach fortgesetzt werden.


Nach Abschluss der Kopiervorgänge kann das USB-Gerät ausgehängt werden:

[~] # umount /share/external/DEV3301_1/


Wenn sichergestellt ist, dass das alle Daten gesichert worden sind, kann das NAS nun neu gestartet werden und neu aufgesetzt werden. Unbedingt überprüfen, ob die Festplatten noch für einen weiteren Einsatz geeignet sind - andernfalls die Festplatten ersetzen.