LVM Snapshots Sichern und Wiederherstellen unter Linux

In unseren vorherigen Tutorials haben wir gesehen, dass die Implementierung von LVM-Volumes sehr nützlich sein kann, um Speicherplatz auf Ihrem Host zu verwalten.

Die Verwaltungsebene für logische Datenträger stellt eine API bereit, die verwendet werden kann, um Speicherplatz nach Belieben hinzuzufügen oder zu entfernen, während Ihr System ausgeführt wird.

Es gibt jedoch eine weitere wichtige Funktion von LVM, die für Systemadministratoren sehr nützlich sein kann: LVM-Snapshots.

In der Informatik werden Snapshots verwendet, um den Zustand eines Systems zu einem bestimmten Zeitpunkt zu beschreiben.

In diesem Tutorial werden wir sehen, wie Sie LVM-Snapshots einfach implementieren können.

Wir werden auch sehen, wie Sie ein ganzes Dateisystem mit Snapshots sichern und nach Belieben wiederherstellen können.

Inhaltsverzeichnis

Voraussetzungen

Um LVM-Snapshots zu erstellen, müssen Sie offensichtlich mindestens ein logisches Volume auf Ihrem System erstellt haben.

Wenn Sie nicht sicher sind, ob dies der Fall ist, können Sie den Befehl „lvs“ ausführen, um vorhandene logische Volumes anzuzeigen.

$ lvs
 auflisten logischer Volumes unter Linux

In dieser Situation haben wir ein logisches Volume von 3 GB auf unserem System erstellt.

Ein logisches Volume von 3 GB bedeutet jedoch nicht unbedingt, dass der gesamte Speicherplatz auf unserem System belegt ist.

Um die tatsächliche Größe Ihres logischen Volumes zu überprüfen, können Sie den verwendeten Speicherplatz mit dem Befehl „df“ überprüfen.

$ df -h

Hinweis : ihr logisches Volume muss gemountet werden, damit Sie den verwendeten Speicherplatz überprüfen können..

Wenn Sie sich beim Mounten logischer Volumes oder Partitionen nicht sicher sind, lesen Sie unser Tutorial zum Mounten von Dateisystemen.

 überprüfen der Größe des logischen Volumes unter Linux

Wie Sie hier sehen können, hat das logische Volume eine Kapazität von 3 GB, aber nur 3,1 MB werden auf dem Dateisystem verwendet.

Nehmen wir als Beispiel an, dass wir den Ordner /etc unseres Servers sichern möchten.

$ cp -R /etc /mnt/lv_mount

Nachdem unser Konfigurationsordner auf unser logisches Volume kopiert wurde, sehen wir uns an, wie wir einen LVM-Snapshot dieses Dateisystems erstellen können.

LVM-Snapshots mit lvcreate erstellen

Um einen LVM-Snapshot eines logischen Volumes zu erstellen, müssen Sie den Befehl „lvcreate“ mit der Option „-s“ für „Snapshot“, die Option „-L“ mit der Größe und dem Namen des logischen Volumes ausführen.

Optional können Sie mit der Option „-n“ einen Namen für Ihren Snapshot angeben.

$ lvcreate -s -n <snapshot_name> -L <size> <logical_volume>

 erstellen eines LVM-Snapshots mit lvcreate

Hinweis: Sie können keine Snapshot-Namen mit „snapshot“ im Namen erstellen, da es sich um ein reserviertes Schlüsselwort handelt.

Sie müssen außerdem sicherstellen, dass in der Volume-Gruppe noch genügend Speicherplatz vorhanden ist, da der Snapshot standardmäßig in derselben Volume-Gruppe erstellt wird.

Nachdem Ihr Snapshot erstellt wurde, können Sie ihn überprüfen, indem Sie den Befehl „lvs“ oder den Befehl „lvdisplay“ direkt ausführen.

$ lvs$ lvdisplay <snapshot_name>
 lvm-Snapshots mit lvs anzeigen

Wie Sie sehen, weist das logische Volume im Vergleich zum ursprünglichen logischen Volume eine Reihe unterschiedlicher Attribute auf :

  • s: für Snapshot, „o“ bedeutet Herkunft für das ursprüngliche logische Volume, das in den Snapshot kopiert wurde;
  • w: für beschreibbar bedeutet, dass Ihr Snapshot Lese- und Schreibberechtigungen hat;
  • i: für „geerbt“;
  • a: für „zugewiesen“, was bedeutet, dass der tatsächliche Speicherplatz für dieses logische Volume reserviert ist;
  • o : (im sechsten Feld) bedeutet „öffnen“, dass das logische Volume gemountet ist;
  • s: Snapshot-Zieltyp für beide logischen Volumes

Nachdem Ihr logisches Snapshot-Volume erstellt wurde, müssen Sie es mounten, um eine Sicherung des Dateisystems durchzuführen.

Mounten eines LVM-Snapshots mit mount

Um einen LVM-Snapshot zu mounten, müssen Sie den Befehl „mount“ verwenden, den vollständigen Pfad zum logischen Volume angeben und den zu verwendenden Mount-Punkt angeben.

$ mount <snapshot_path> <mount_point>

Nehmen wir als Beispiel an, dass wir den Mount-Punkt „/ dev/vg_1/lvol0“ an den Mount-Punkt „/ mnt / lv_snapshot“ auf unserem System mounten möchten.

Um dies zu erreichen, würden wir den folgenden Befehl ausführen :

$ mount /dev/vg_1/lvol0 /mnt/snapshot

Sie können sofort überprüfen, ob der Montagevorgang wirksam ist, indem Sie den Befehl „lsblk“ erneut ausführen.

$ lsblk
 mounten eines LVM-Snapshots unter Linux

Sichern von LVM-Snapshots

Nachdem Ihr Snapshot gemountet ist, können Sie ihn entweder mit dem tar- oder dem rsync-Befehl sichern.

Wenn Sie Sicherungen durchführen, haben Sie im Wesentlichen zwei Möglichkeiten : Sie können eine lokale Kopie durchführen oder Archive direkt auf einen Remote-Sicherungsserver übertragen.

Erstellen eines lokalen LVM-Snapshot-Backups

Der einfachste Weg, einen LVM-Snapshot zu sichern, besteht darin, den Befehl „tar“ mit der Option „-c“ für „Erstellen“, der Option „z“ zum Erstellen einer GZIP-Datei und „-f“ zum Angeben einer Zieldatei zu verwenden.

$ tar -cvzf backup.tar.gz <snapshot_mount>

In unserem Fall lautet der Backup-Befehl, da der Snapshot am Einhängepunkt „/ mnt / lv_snapshot“ eingehängt ist :

$ tar -cvzf backup.tar.gz /mnt/lv_snapshot

Wenn Sie diesen Befehl ausführen, wird ein Backup in Ihrem aktuellen Arbeitsverzeichnis erstellt.

Erstellen und Übertragen eines LVM-Snapshot-Backups

In einigen Fällen besitzen Sie einen Backup-Server, auf dem regelmäßig LVM-Backups gespeichert werden können.

Um solche Backups zu erstellen, verwenden Sie den Befehl „rsync“, geben Sie das zu sichernde Dateisystem sowie den zu verwendenden Zielserver an.

# If rsync is not installed already, you will have to install using apt$ sudo apt-get install rsync$ rsync -aPh <snapshot_mount> <remote_user>@<destination_server>:<remote_destination>

Hinweis : Wenn Sie sich bei Dateiübertragungen unter Linux nicht sicher sind, sollten Sie das Tutorial lesen, das wir zu diesem Thema geschrieben haben.

Nehmen wir als Beispiel an, dass der Snapshot auf dem „/ mnt /lv_snapshot“ gemountet ist und dass wir den Snapshot an den Backup-Server senden möchten, der auf der IP-Adresse „192.168.178.33“ sitzt.

Um eine Verbindung zum Remote-Backup-Server herzustellen, verwenden wir das Konto „kubuntu“ und wählen, ob Dateien im Ordner „/backups“ gespeichert werden sollen.

$ rsync -aPh /mnt/lv_snapshot :/backups

Nachdem Ihr Snapshot des logischen Volumes gesichert wurde, können Sie ihn bei Bedarf problemlos wiederherstellen.

 lvm-Backups remote erstellen

Wiederherstellen von LVM-Snapshots

Nachdem Ihre LVM gesichert wurde, können Sie sie auf Ihrem lokalen System wiederherstellen.

Um ein logisches LVM-Volume wiederherzustellen, müssen Sie den Befehl „lvconvert“ mit der Option „–mergesnapshot“ verwenden und den Namen des logischen Volume-Snapshots angeben.

Bei Verwendung von „-mergesnapshot“ wird der Snapshot mit dem ursprünglichen logischen Volume zusammengeführt und direkt danach gelöscht.

$ lvconvert --mergesnapshot <snapshot_logical_volume>

In unserem Fall hieß der Snapshot des logischen Volumes lvol0, daher würden wir den folgenden Befehl ausführen

$ lvconvert --mergesnapshot vg_1/lvol0
 snapshot mit lvconvert zusammenführen

Wie Sie wahrscheinlich bemerkt haben, können beide Geräte (das Original und der Snapshot) nicht geöffnet sein, damit der Zusammenführungsvorgang erfolgreich ist.

Alternativ können Sie das logische Volume aktualisieren, damit es mit den neuesten Metadaten mit „lvchange“ reaktiviert werden kann“

$ lvchange --refresh vg_1/lv_1

Nachdem der Zusammenführungsvorgang erfolgreich war, können Sie überprüfen, ob Ihr logisches Volume erfolgreich aus der Liste der verfügbaren logischen Volumes entfernt wurde.

$ lvs
 anzeigen logischer Volumes ohne Snapshot

Fertig!

Der Snapshot des logischen Volumes wurde nun entfernt und die Änderungen wurden wieder mit dem ursprünglichen logischen Volume zusammengeführt.

Fazit

In diesem Tutorial lernten Sie LVM-Snapshots kennen, was sie sind und wie sie zum Sichern und Wiederherstellen von Dateisystemen verwendet werden können.

Das regelmäßige Erstellen von Backups ist unerlässlich, insbesondere wenn Sie in einem mittleren bis großen Unternehmen arbeiten.

Backups zu haben und sie einfach wiederherstellen zu können, ist der beste Weg, um sicherzustellen, dass Sie größere Datenverluste auf Ihren Systemen verhindern können.

Wenn Sie sich für die Linux-Systemadministration interessieren, haben wir einen vollständigen Abschnitt auf der Website, also schauen Sie sich das unbedingt an!