Datenwiederherstellung von Linux btrfs RAID: Anleitung
In unserem Artikel erfahren Sie, wie Sie Daten von Linux btrfs RAID Software wiederherstellen können. Wie man sie erstellt, eine ausgefallene Festplatte ersetzt und verlorene Informationen von einem beschädigten Array wiederherstellt.
- Dateisystem btrfs
- Erstellen des Montagepunkts
- Wie man ein RAID5 erstellt
- So montieren Sie ein RAID-Laufwerk
- So ersetzen oder fügen Sie ein Laufwerk hinzu
- So stellen Sie ein beschädigtes Volume wieder her
- Wiederherstellen von Daten aus btrfs RAID5
- Merkmale des Dateisystems btrfs
- Fazit
- Fragen und Antworten
- Bemerkungen
Eine gängige Methode zur Erstellung eines RAID-Arrays unter Linux ist die Verwendung von mdadm und lvm. Weitere Informationen zu diesen Systemen finden Sie in einem unserer Video-Tutorials.
Zusätzlich zu diesen Tools, die im Video beschrieben werden,es gibt auch eine integrierte RAID-Unterstützung im Btrfs-Dateisystem. Sie begnügt sich mit seinen eigenen Tools zum Aufbau und zur Arbeit mit Festplatten-Arrays, dann wollen wir uns alle seine Funktionen genauer ansehen.
Dateisystem btrfs
Btrfs ist ein modernes Dateisystem mit Copy on Write-Funktionalität mit eingebauter RAID-Unterstützung. Das Wesentliche an dieser großartigen Funktion ist, dass Sie beim Kopieren keine alten Daten überschreiben. Dies ist ein großes Plus, da sie die Wiederherstellung gelöschter Dateien nach Fehlern erheblich vereinfacht. Da jeder Ausfall oder Fehler beim Überschreibvorgang den vorherigen Zustand der Dateien in keiner Weise beeinflusst.
Das Dateisystem speichert Metadaten getrennt von den Dateisystemdaten, und Sie können gleichzeitig verschiedene RAID-Level für diese Informationen verwenden, das ist sein Hauptvorteil. Außerdem soll dieses Journalsystem eine bessere Speicherverwaltung und verbesserte Datenintegritätsfunktionen in Linux bieten.
Bevor Sie mit der Verwendung von btrfs, beginnen, müssen Sie die erforderlichen Dateisystem-Verwaltungstools installieren, indem Sie den folgenden Befehl ausführen:
sudo apt install btrfs-tools
Erstellen des Montagepunkts
Und bevor Sie ein RAID aufbauen können, müssen Sie ein Einhängepunktverzeichnis für das Btrfs-Dateisystem erstellen.
Erstellen eines Verzeichnisses:
Sudo mkdir –v /data
Wobei «data» sein Name ist.
Beginnen wir nun mit dem Erstellen des Arrays.
Wie man ein RAID5 erstellt
Wenn Sie ein Array erstellen, müssen Sie die Medien nicht unbedingt partitionieren, das Dateisystem benötigt dies nicht. Sie können die Laufwerke zu einem Array zusammenfassen, dies kann entweder mit ganzen oder einzelnen Partitionen machen. Sie können sogar Medien mit vorhandenen Partitionen zusammenführen. Ich zeige als Beispiel, wie man RAID 5 mit fünf Laufwerken erstellt.
Um zu vermeiden, dass Sie das Passwort root eingeben müssen, führen Sie den Befehl sudo -i, wodurch alle Befehle als Administrator ausgeführt werden.
Um ein Array zu erstellen, geben Sie den folgenden Befehl in das Terminal ein:
sudo mkfs.btrfs -L data -m raid5 -d raid5 -f /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
wo:
L - Tag oder Dateisystemname
Parameter:
d - RAID5-Typ für Daten einstellen.
m - RAID5-Typ für Metadaten einstellen.
f - wird verwendet, um die Erstellung von btrfs zu erzwingen, selbst wenn eines der Laufwerke in einem anderen Dateisystem formatiert ist.
Jetzt können Sie mit einem der mitgelieferten Laufwerke montieren.
So montieren Sie ein RAID-Laufwerk
Ich habe 5 Laufwerke verwendet, um RAID: sdb, sdc, sdd, sde und sdf zu erstellen. So kann ich die Daten des Dateisystems im Verzeichnis data mit dem Laufwerk sdb mounten. Öffnen Sie die Datenträgerverwaltung und mounten Sie den Datenträger, dann ist er verfügbar.
Alternativ können Sie die Festplatte im Terminal mounten.
sudo mount /dev/sdb1 /data
Zur Überprüfung geben Sie sudo df -hein.
Wie Sie sehen können, ist unser Array in einem Verzeichnis /datagemountet.
Und um Informationen über belegten und freien Speicherplatz des Arrays zu sehen, geben Sie ein:
sudo btrfs filesystem usage /data
Und um ein Array auszuhängen, müssen Sie nur Folgendes eingeben:
sudo umount /data
So ersetzen oder fügen Sie ein Laufwerk hinzu
Um ein Laufwerk zu ersetzen, müssen Sie btrfs replace in das Terminal eingeben. Es läuft asynchron, d.h. es läuft schrittweise:
- start - zum Starten,
- cancel - um zu stoppen,
- status - um den Status anzuzeigen.
Als erstes müssen Sie die Nummer des beschädigten Laufwerks ermitteln:
sudo btrfs filesystem show
Dann müssen Sie das Laufwerk durch ein neues ersetzen:
btrfs replace start <gelöschtes Gerät oder dessen ID> <zusätzliches Gerät> <Pfad, in dem montiert ist- btrfs>
In meinem Fall geben Sie ein:
btrfs replace start 3 /dev/sdg
wobei: 3 – die Nummer des fehlenden Laufwerks und sdg – der Code für das neue Laufwerk ist.
So stellen Sie ein beschädigtes Volume wieder her
Um ein Btrfs-Array wiederherzustellen, müssen Sie die eingebaute Mount-Option verwenden- recovery:
sudo mount -o recovery /dev/sdb /mnt
Dann beginnt der Wiederaufbauprozess.
Wiederherstellen von Daten aus btrfs RAID5
Selbst das zuverlässigste und fehlertoleranteste System kann ausfallen. Systemfehler, Laufwerksfehler, Hardwarefehler, Beschädigung von Metadaten, versehentliches Löschen und Fehlkonfiguration können zu einem RAID-Ausfall und dem Verlust wichtiger Daten führen. Wenn dies auftritt, verwenden Sie Hetman RAID Recovery. Es ist in der Lage, alle Informationen von nicht funktionierenden Arrays oder Medien, die Teil des Arrays waren, wiederherzustellen. Das Dienstprogramm erstellt das zerstörte RAID neu, liest Schritt für Schritt alle bekannten Informationen, dann können Sie alle gefundenen Daten kopieren.
Schließen Sie den Datenträger an einen PC mit installiertem Windows an, verwenden Sie eine virtuelle Maschine, oder installieren Sie ihn als zweites System.
Das Programm scannt automatisch den Speicherplatz und zeigt alle möglichen Informationen über das Array an.
Wie Sie sehen können, sammelt das Programm in unserem Fall mit btrfs RAID keine Medien in einem Array. Dies liegt an den Besonderheiten seiner Konstruktion, während alle Informationen gemäß dem RAID-Typ gespeichert werden.
Um den Wiederherstellungsprozess zu beginnen, öffnen Sie Ihren Datenträger-Manager, klicken Sie mit der rechten Maustaste auf eine der Festplatten, aus denen das Array besteht, und führen Sie «Schneller Scan».
Wenn Sie eine der Festplatten scannen, ist das Ergebnis identisch, da sie alle Teil desselben Arrays sind.
Sobald die Analyse abgeschlossen ist, zeigt das Programm die gefundenen Dateien an, es gibt eine Vorschau davon, was das Auffinden der gesuchten Bilder oder Videos erleichtert.
Wählen Sie die Dateien, die Sie wiederherstellen möchten, und klicken Sie auf «Wiederherstellen», geben Sie den Pfad zum Speichern an und klicken Sie erneut auf «Wiederherstellen». Wenn Sie fertig sind, befinden sich alle Dateien in dem angegebenen Ordner.
Wenn die Schnellsuche die benötigten Dateien nicht findet, führen Sie die "Vollständige Analyse" durch. Diese Art der Analyse nimmt mehr Zeit in Anspruch, findet aber alle Informationen, die auf dem Datenträger verbleiben, auch solche, die schon vor langer Zeit vom Datenträger gelöscht wurden.
Da es sich um das fünfte RAID handelt, bleiben alle Informationen beim Ausfall eines Laufwerks intakt, aber wenn zwei Laufwerke ausfallen, werden einige Informationen beschädigt.
Merkmale des Dateisystems btrfs
Btrfs unterstützt Datenkompression. Das heißt, alle auf dem Medium vorhandenen Informationen werden automatisch komprimiert. Und wenn auf Daten zugegriffen wird, wird jede einzelne Datei automatisch dekomprimiert.
Diese Funktion spart eine Menge Speicherplatz sowie Zeit bei der Suche nach Datenkomprimierungssoftware von Drittanbietern. Das Dateisystem unterstützt 3 Hauptmethoden der Dateikomprimierung - diese sind zlib, lzo und zstd. Ihr Hauptunterschied ist die Kompressionsrate.
Unser Programm unterstützt die Wiederherstellung von komprimierten Dateien mit jeder dieser drei Methoden. In der Oberfläche des Programms werden die komprimierten Volumes und Dateien wie folgt angezeigt, wie Sie sehen können, sind sie farblich hervorgehoben.
Ein weiterer großer Vorteil ist Erstellung von Subvolumes. In einfachen Worten: Sie können z. B. 3 verschiedene Laufwerke (Subvolumes) auf einem Laufwerk erstellen. Diese Subvolumes sind in der Lage, sich selbst aus dem freien Platz des anderen Volumes zu erweitern. Mit dieser Funktion kann ein Laufwerk bei Bedarf durch ein anderes Laufwerk erweitert werden, ohne dass Daten komprimiert und übertragen werden müssen. Diese Subvolumes werden im Programm wie folgt angezeigt, es sind die Festplatten innerhalb des primären Laufwerks.
Auf die gleiche Weise werden Ordner mit Schnappschüssenim Programm angezeigt.
Um Subvolumes zu erstellen, verwenden Sie den Befehl:
btrfs subvolume create /mnt/btrfs/my-subvolume
Und um eine Liste der Subvolumes auf diesem Laufwerk anzuzeigen, führen Sie:
btrfs subvolume list /mnt/btrfs
So mounten Sie ein Subvolume:
mount -o subvol=my-subvolume /dev/sdd2 /mnt/btrfs2
wobei sdb1 der Laufwerkscode ist.
Fazit
Es gibt eine kleine Anzahl von Datenrettungstools, die btrfs RAID lesen können. Bei der Auswahl sollten Sie sich bewusst sein, dass dabei Informationen verloren gehen können. Stellen Sie daher sicher, dass Sie die Möglichkeit haben, ein Bild des Arrays zu erstellen und von diesem Bild zu scannen. Die beste Lösung, um sich vor dem Verlust wichtiger Daten zu schützen, ist jedoch, diese regelmäßig zu sichern.
Ob dies der Fall ist, können Sie mit dem Befehl überprüfen: # btrfs subvolume list -a /mountpoint
Um ein Subtom zu löschen, müssen Sie den Befehl ausführen: # btrfs subvolume delete emptydir
Aktualisieren Sie zunächst Ihren Kernel auf die neueste verfügbare Version und versuchen Sie erneut zu mounten. Wenn Sie einen Kernel im btrfs-Dateisystem haben, müssen Sie möglicherweise eine Wiederherstellungsdiskette mit dem neuesten Kernel finden.
Versuchen Sie zweitens, mit -o recovery oder -o ro oder -o recovery,ro zu mounten (unter Verwendung des neuen Kernels). Eine davon kann erfolgreich sein.
Wenn die Kernel-Logs so aussehen,
? replay_one_dir_item+0xb5/0xb5 [btrfs]
? walk_log_tree+0x9c/0x19d [btrfs]
? btrfs_read_fs_root_no_radix+0x169/0x1a1 [btrfs]
? btrfs_recover_log_trees+0x195/0x29c [btrfs]
? replay_one_dir_item+0xb5/0xb5 [btrfs]
? btree_read_extent_buffer_pages+0x76/0xbc [btrfs]
? open_ctree+0xff6/0x132c [btrfs]
dann sollten Sie btrfs rescure zero-log verwenden
Nach Design. btrfs fi defrag benutzt ein einzelnes Dateisystemobjekt, das ihm übergeben wird, z.B. eine Datei. Wenn es auf einem Verzeichnis ausgeführt wird, defragmentiert es die Metadaten, die in dem Unterabschnitt enthalten sind, der das Verzeichnis enthält, nicht den Verzeichnisinhalt.
Wenn Sie den Inhalt eines Verzeichnisses defragmentieren wollen, sollten Sie den rekursiven Modus mit dem Flag -r verwenden