LVM-Backup und Wiederherstellungs-Snapshot unter Linux
Logical Volume Manager (LVM) wird unter Linux zur Verwaltung von Festplatten und anderen Speichergeräten verwendet. Wie der Name schon sagt, kann es Rohspeicher in logische Volumes sortieren, was die Konfiguration und Verwendung erleichtert.
In diesem Tutorial erfahren Sie, wie Sie LVM-Backups und -Wiederherstellungen in einem Linux-System erstellen. LVM funktioniert auf jeder Linux-Distribution gleich, sodass Sie jeden der folgenden Befehle auf Ihrem eigenen System verwenden können.
Folgen Sie uns, wie wir LVM verwenden, um Partitionen, physische Volumes, eine Volume-Gruppe, logische Volumes und Dateisysteme auf einer Festplatte zu erstellen. Außerdem zeigen wir, wie Sie unsere neu erstellten logischen Volumes bereitstellen, erweitern und entfernen. Am Ende dieses Tutorials erstellen wir einen Snapshot des Volumes und zeigen dann, wie die Sicherung wiederhergestellt wird.
In diesem Tutorial lernen Sie:
- So erstellen Sie einen logischen Datenträger in LVM
- Erstellen eines Snapshots eines logischen Volumes
- Funktionsweise logischer Datei-Überblicke
- So stellen Sie eine Sicherung eines logischen Volumes wieder her
LVM-Backup und -Wiederherstellung unter Linux Schritt für Schritt
Installieren Sie LVM auf den wichtigsten Linux-Distributionen
Auf Ihrem Linux-System ist LVM möglicherweise bereits installiert, aber es ist nicht standardmäßig auf jeder Distribution installiert. Verwenden Sie den entsprechenden Befehl unten, um LVM mit dem Paketmanager Ihres Systems zu installieren.
So installieren Sie LVM unter Ubuntu, Debian und Linux Mint:
sudo apt install lvm2
So installieren Sie LVM unter CentOS, Fedora, AlmaLinux und Red Hat:
sudo dnf install lvm2
So installieren Sie LVM auf Arch Linux und Manjaro:
sudo pacman -S lvm2
Erstellen von Partitionen
Das erste, was wir tun werden, ist, Partitionen auf unserer Festplatte zu erstellen. Dies soll die Erstellung physischer Volumes im nächsten Abschnitt erleichtern, die entweder auf unformatierten, unpartitionierten Blockgeräten oder einzelnen Partitionen erstellt werden können. In diesem Tutorial werden wir uns mit Letzterem befassen.
In diesem Beispiel ist der Datenträger, mit dem wir arbeiten werden, /dev/sdb, d. h. eine (und derzeit nicht partitionierte) Festplatte mit 5 GB.
Wir können unsere /dev/sdb-Festplatte und die zugehörigen Details mit dem folgenden Befehl sehen.
fdisk -l
Als nächstes partitionieren wir die Festplatte mit cfdisk.
cfdisk /dev/sdb
In Ihrer Konsole öffnet sich eine Benutzeroberfläche, die recht intuitiv zu bedienen ist. Wir haben die folgenden beiden Partitionen als Beispiel erstellt.
Schließen Sie Ihre Änderungen ab, indem Sie auf "Schreiben" klicken, und beenden Sie das Dienstprogramm, wenn Sie fertig sind. Wir können jetzt unsere Partition aufgelistet sehen, wenn wir fdisk -l erneut ausführen.
Erstellen physischer Volumes
Wir können jetzt physische Volumes auf unseren neuen Partitionen erstellen, indem wir den Befehl pvcreate verwenden.
pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
Verwenden Sie den Befehl pvdisplay, um Informationen zu allen physischen Datenträgern auf Ihrem System anzuzeigen, oder geben Sie ein bestimmtes Laufwerk an, zu dem Sie Details anzeigen möchten.
pvdisplay
OR
pvdisplay /dev/sdb1
Erstellen einer Volume-Gruppe
In dieser Phase müssen wir eine Volume-Gruppe erstellen, die als Container für unsere physischen Volumes dient. In diesem Beispiel nennen wir unsere Volume-Gruppe "mynew_vg", die die Partition /dev/sdb1 enthält, mit dem folgenden Linux-Befehl:
vgcreate mynew_vg /dev/sdb1
Oder, um beide Partitionen gleichzeitig einzuschließen:
vgcreate mynew_vg /dev/sdb1 /dev/sdb2
Verwenden Sie den folgenden Befehl, um Informationen zu den Datenträgergruppen anzuzeigen.
vgdisplay
Wir können der Gruppe weitere physische Volumes hinzufügen, indem wir den Befehl vgextend verwenden.
vgextend mynew_vg /dev/sdb2
Volume group "mynew_vg" successfully extended
Erstellen logischer Volumes
Jetzt können wir mit der Erstellung logischer Volumes fortfahren. Es kann hilfreich sein, sich unsere Volume-Gruppe als einen "großen Kuchen" vorzustellen, aus dem wir "Stücke" (logische Volumes) herausschneiden können, die als Partitionen auf unserem Linux-System behandelt werden.
Mit dem folgenden Befehl wird ein logischer Datenträger mit dem Namen vol01 und einer Größe von 400 MB erstellt.
lvcreate -L 400 -n vol01 mynew_vg
Anschließend erstellen wir ein weiteres Volume mit dem Namen vol02 und einer Größe von 1 GB.
lvcreate -L 1000 -n vol02 mynew_vg
Schließlich können wir den Befehl lvdisplay verwenden, um die logischen Volumes zu sehen, die wir gerade erstellt haben.
Erstellen eines Dateisystems auf logischen Datenträgern
Das logische Volume ist fast einsatzbereit. Alles, was wir tun müssen, ist, mit dem Befehl mkfs ein Dateisystem darauf zu erstellen.
mkfs.ext4 -m 0 /dev/mynew_vg/vol01
Die Option -m gibt den Prozentsatz an, der für den Superuser reserviert ist, wir können diesen auf 0 setzen, um den gesamten verfügbaren Speicherplatz zu nutzen (der Standardwert ist 5%).
Logischer Volume-Snapshot
Schließlich sind wir an dem Punkt angelangt, an dem wir einen Schnappschuss unseres logischen Volumes erstellen können, das in den vorherigen Abschnitten erstellt wurde. Dazu benötigen wir auch einige Beispieldaten auf unserem logischen Volume "volume1", damit wir nach dem Zurücksetzen vom Snapshot den gesamten Prozess bestätigen können, indem wir die ursprünglichen Daten mit den aus dem Snapshot wiederhergestellten Daten vergleichen.
Snaphosts verstehen
Um zu verstehen, wie Snapshots funktionieren, müssen wir zunächst verstehen, woraus ein logisches Volume besteht und wie Daten gespeichert werden. Dieses Konzept ähnelt den bekannten symbolischen Verknüpfungen. Wenn Sie einen symbolischen Link zu einer Datei erstellen, erstellen Sie keine Kopie der eigentlichen Datei, sondern lediglich einen Verweis darauf. Das logische Volume speichert Daten auf ähnliche Weise und besteht aus zwei wesentlichen Teilen:
- Metadaten-Zeiger
- Datenblock
Wenn ein Snapshot erstellt wird, erstellt Logical Volume Manager einfach eine Kopie aller Metadatenzeiger auf ein separates logisches Volume. Metadaten verbrauchen nicht viel Speicherplatz und daher können Sie einen Snapshot von, sagen wir, 2 GB logischem Volume auf 5 MB Snapshot-Volume erstellen.
Das Snapshot-Volume beginnt erst dann zu wachsen, wenn Sie beginnen, die Daten des ursprünglichen logischen Volumes zu ändern. Das bedeutet, dass jedes Mal, wenn Sie eine Datei auf dem ursprünglichen logischen Datenträger entfernen oder bearbeiten, eine Kopie dieser Datei (Daten) auf dem Snapshot-Datenträger erstellt wird. Für eine einfache Änderung müssen Sie möglicherweise ein Snapshot-Volume erstellen, das etwa 5 bis 10 % der ursprünglichen Größe des logischen Volumes beträgt. Wenn Sie bereit sind, viele Änderungen an Ihrem ursprünglichen logischen Volume vorzunehmen, benötigen Sie viel mehr als 10 %.
LVM-Sicherung und -Wiederherstellung unter Linux aus dem Logical Volume Snapshot
Jetzt kann es losgehen. Befolgen Sie die nachstehenden Schritt-für-Schritt-Anweisungen, um LVM-Sicherungen und -Wiederherstellungen unter Linux aus dem logischen Volume-Snapshot zu erstellen.
Zuerst erstellen wir einen neuen Bereitstellungspunkt für unser logisches Volume und mounten dann das Volume.
sudo mkdir -p /mnt/volume1 sudo mount /dev/mynew_vg/vol01 /mnt/volume1Wie bereits erwähnt, müssen wir einige Beispieldaten auf unserem logischen Volume ablegen. Auf diese Weise können wir später überprüfen, ob eine Sicherung und Wiederherstellung erfolgreich war. In diesem Schritt kopieren wir einfach das Verzeichnis
/usr/binauf das Volume.sudo cp -av /usr/bin/* /mnt/volume1 du -s /usr/bin 162528Jetzt erstellen wir einen Snapshot des logischen Volumes "volume1 ". Dabei erstellt der Logical Volume Manager ein neues, separates logisches Volume. Dieses neue logische Volume hat eine Größe von 20 MB und wird als "volume1_snapshot" bezeichnet:
sudo lvcreate -s -L 20M -n volume1_snapshot /dev/mynew_vg/vol01 Logical volume "volume1_snapshot" createdNachdem der Snapshot erstellt wurde, können wir mit der Änderung der Daten auf "volume1" beginnen, indem wir beispielsweise den gesamten Inhalt entfernen, den wir zuvor kopiert haben:
sudo rm -rf /mnt/volume1/*- Als nächstes verwenden wir den folgenden
lvconvert-Befehl, um unseren Snapshot wiederherzustellen.
Wie in der obigen Ausgabe des Befehls du zu sehen ist, beträgt die Gesamtgröße Ihres /usr/bin-Verzeichnisses 162528 Byte. Wir werden diese Informationen verwenden, um später zu überprüfen, ob unsere Sicherung und Wiederherstellung erfolgreich war.
sudo lvconvert --merge /dev/mynew_vg/vol01/volume1_snapshot
Can't merge over open origin volume
Merging of snapshot volume1_snapshot will start next activation.
Nach der Ausführung des obigen Befehls wird das logische Volume "volume1" zurückgesetzt, sobald es aktiviert ist. Daher muss als nächstes "volume1" wieder aktiviert werden. Stellen Sie zunächst sicher, dass Sie die Bereitstellung des Volumes aufheben, das wir wiederherstellen möchten.
sudo umount /mnt/volume1Nun können wir die Lautstärke deaktivieren und aktivieren:
sudo lvchange -a n /dev/mynew_vg/vol01 sudo lvchange -a y /dev/mynew_vg/vol01Für den letzten Schritt mounten Sie erneut Ihr logisches Laufwerk "volume1" und bestätigen Sie, dass alle gelöschten Daten wiederhergestellt wurden.
sudo mount /dev/mynew_vg/vol01 /mnt/volume1 du -s /mnt/volume1 162528
Wie in dieser Ausgabe zu sehen ist, wurde unser logisches Volume vollständig in den Zustand zum Zeitpunkt des Snapshots zurückversetzt.
Abschließende Gedanken
Das Obige war ein grundlegendes Beispiel für die Manipulation von Snapshots mit dem Logical Volume Manager und wie man LVM-Backups und -Wiederherstellungen unter Linux durchführt. Der Nutzen von logischen Datei-Überblicken ist enorm und wird Ihnen sicherlich bei Ihren Aufgaben helfen, egal ob Sie Systemadministrator oder Entwickler sind. Obwohl Sie das obige Setup verwenden können, um mehrere Snapshots für eine Backup-Wiederherstellung zu erstellen, müssen Sie auch wissen, dass Ihre Sicherung innerhalb Ihrer logischen Volume-Gruppe an ihre Grenzen stößt. Daher können Probleme mit physischen Volumes auf niedriger Ebene dazu führen, dass Ihr Snapshot unbrauchbar wird.







