Arbeiten mit LVM
LVM ist ein System zur Verwaltung des Festplattenspeichers mit einem zusätzlichen Grad an Abstraktion von der physischen Ebene. Es ermöglicht eine flexible und effiziente Verwaltung des Festplattenspeichers, eine Fehlertoleranz der Daten und hilft bei der Lösung verschiedener Aufgaben im Zusammenhang mit der Datensicherung, der Bereitstellung von Speichersystemen für Virtualisierungsumgebungen usw.
In diesem Artikel erfahren Sie, wie Sie LVM unter Linux installieren und verwenden.
Installation
LVM wird in der Regel mit Ihrem Linux-Betriebssystem installiert. Falls nicht, können Sie es mit dem Paketmanager Ihrer Linux-Distribution installieren. Bei den meisten Distributionen sieht der Befehl zur Installation von LVM wie folgt aus:
Für Debian oder Ubuntu:
sudo apt-get install lvm2
Für CentOS, Fedora und RHEL:
sudo yum install lvm2
Physische Datenträger erstellen
Bevor Sie logische Volumes erstellen, müssen Sie physische Volumes (pv) erstellen. Ein physisches Volume ist ein virtuelles Gerät, z.B. eine Festplatte oder eine Festplattenpartition, die LVM zur Erstellung logischer Volumes verwendet.
Hinweis: Es wird empfohlen, physische Volumes auf der Festplatte zu erstellen, ohne eine Partitionierung zu verwenden, da sonst der Prozess der dynamischen LVM-Größenanpassung auf lange Sicht komplizierter wird.
Um ein physisches Volume zu erstellen, gehen Sie folgendermaßen vor:
Verwenden Sie den Befehl pvcreate, um ein physisches Volume zu erstellen:
sudo pvcreate /dev/sdb
Dabei ist /dev/sdb der Pfad zu dem physischen Gerät.
2. Überprüfen Sie das erstellte physische Volume mit dem Befehl pvdisplay:
sudo pvdisplay
In der Ausgabe sehen Sie Informationen über das erstellte physikalische Volume.
Erstellen einer physischen Volume-Gruppe
Eine physische Datenträgergruppe (vg) ist ein logischer Container, der mehrere physische Datenträger in einer gemeinsamen Gruppe zusammenfassen kann. Nichts hindert Sie jedoch daran, sie innerhalb eines einzelnen physischen Volumes zu verwenden. Um eine physische Volume-Gruppe zu erstellen, gehen Sie folgendermaßen vor:
1. Verwenden Sie den Befehl vgcreate, um eine physische Volume-Gruppe zu erstellen:
sudo vgcreate vg0 /dev/sdb # либо для нескольких pv sudo vgcreate vg0 /dev/sdb /dev/sdc
Erstellen eines logischen Volumes
Nun können Sie logische Volumes erstellen, die auf herkömmliche Weise als Partitionen auf einer Festplatte dargestellt werden können.
1. Erstellen Sie ein logisches Volume in der physischen Volume-Gruppe mit dem Befehl lvcreate :
sudo lvcreate -n lv0 -L 10G vg0 # Создание логического тома lv0 размером 10 ГБ в группе физических томов vg0
Dabei steht -n für den Namen des logischen Volumes, -L für die Größe des logischen Volumes.
2. Überprüfen Sie das erstellte logische Volume mit dem Befehl lvdisplay:
sudo lvdisplay
Es werden Informationen über das erstellte logische Volume angezeigt.
3. Erstellen Sie ein Dateisystem auf dem logischen Volume mit dem Befehl mkfs:
sudo mkfs.ext4 /dev/vg0/lv0
4. erstellen Sie einen Einhängepunkt für das neue Dateisystem mit dem Befehl mkdir:
sudo mkdir /mnt/lv0
5. hängen Sie das neue Dateisystem mit dem Befehl mount in den Einhängepunkt ein:
sudo mount /dev/vg0/lv0 /mnt/lv0
Sie können nun das neue Dateisystem auf dem logischen Datenträger verwenden.
LVM verwenden
LVM bietet viele Befehle zur Verwaltung von physischen Volumes, physischen Volume-Gruppen und logischen Volumes. Einige der am häufigsten verwendeten Befehle sind im Folgenden aufgeführt:
- pvcreate: Erzeugt ein neues physisches Volume.
- pvdisplay: Zeigt Informationen über physische Volumes an.
- vgcreate: Erstellt eine neue Gruppe von physischen Volumes.
- vgextend: Fügt ein physisches Volume zu einer physischen Volume-Gruppe hinzu.
- vgdisplay: Zeigt Informationen über physische Volume-Gruppen an.
- lvcreate: Erzeugt ein neues logisches Volume.
- lvextend: Erhöht die Größe eines logischen Volumes.
- lvdisplay: Zeigt Informationen über logische Volumes an.
LVM erlaubt es Ihnen auch, die Größe von physischen Volumes, physischen Volume-Gruppen und logischen Volumes im laufenden Betrieb zu erhöhen. Zu diesem Zweck gibt es entsprechende Befehle:
- pvresize: Verändert die Größe eines physischen Volumes.
- vgresize: Verändert die Größe einer physischen Volume-Gruppe.
- lvresize: Ändert die Größe eines logischen Volumes.
Wenn Sie einen der oben genannten Befehle mit dem Parameter --help ausführen, können Sie sich mit den zusätzlichen Parametern der Befehlsargumente vertraut machen.
Steuern Sie die Größe eines logischen Volumes:
Um zum Beispiel die Größe des logischen Volumes lv0 in der physischen Volume-Gruppe vg0 um 5 GB zu erhöhen, verwenden Sie den Befehl:
sudo lvresize -L +5G /dev/vg0/lv0
oder den gesamten verbleibenden freien Speicherplatz auf dem physischen Volume:
sudo lvresize -l +100%FREE /dev/vg0/lv0
Mit dem Befehl resize2fs können Sie dann die Größe des Dateisystems im laufenden Betrieb ändern:
sudo resize2fs /dev/vg0/lv0
LVM-Schnappschüsse
LVM in Linux unterstützt einen Snapshot-Mechanismus, mit dem Sie exakte Kopien von logischen Volumes zu einem bestimmten Zeitpunkt erstellen können. Dies ist eine nützliche Funktion, mit der Sie den Zustand von Daten zu einem bestimmten Zeitpunkt speichern und bei Bedarf wiederherstellen können.
Die LVM-Snapshot-Technologie funktioniert folgendermaßen: Ein Snapshot wird erstellt, indem der Zustand eines logischen Volumes zu dem Zeitpunkt gespeichert wird, zu dem der Snapshot erstellt wird. Nach der Erstellung des Snapshots werden alle Änderungen, die im ursprünglichen logischen Volume auftreten, in zusätzlichem differentiellen Speicherplatz gespeichert. Dies kann bei der Sicherung und Wiederherstellung von Daten zum Zeitpunkt der Erstellung des Snapshots hilfreich sein.
Sehen wir uns nun an, wie man den LVM-Snapshot-Mechanismus erstellt und verwendet.
Erstellen eines LVM-Snapshots
Die Erstellung eines LVM-Snapshots wird mit dem Befehl lvcreate durchgeführt. Um zum Beispiel einen Snapshot des logischen Volumes myvolume in der Volume-Gruppe myvg zu erstellen, verwenden Sie den folgenden Befehl:
sudo lvcreate --snapshot --name myvolume_snap --size 1G /dev/myvg/myvolume
Mit diesem Befehl wird ein Snapshot des logischen Volumes myvolume mit dem Namen myvolume_snap und einer Größe von 1 GB erstellt.
Beachten Sie, dass Sie die Snapshot-Größe angeben müssen, um einen Snapshot zu erstellen.
Verwendung eines LVM-Snapshots
Nachdem Sie einen Snapshot erstellt haben, können Sie ihn für verschiedene Aufgaben verwenden. Sie können den Snapshot beispielsweise zur Wiederherstellung von Daten oder zur Erstellung eines Backups verwenden. Verwenden Sie den folgenden Befehl, um den Snapshot in das Dateisystem einzuhängen:
sudo mount /dev/myvg/myvolume_snap /mnt/snapshot
Dabei ist /mnt/snapshot der Einhängepunkt, an dem der Snapshot eingehängt wird. Sobald der Snapshot eingehängt ist, können Sie Daten von ihm kopieren oder ihn zur Datenwiederherstellung verwenden.
Löschen eines LVM-Snapshots
Sobald ein Snapshot verwendet wurde, kann er gelöscht werden. Um einen Snapshot zu löschen, verwenden Sie den Befehl lvremove. Um beispielsweise den Snapshot myvolume_snapshot in der Volume-Gruppe myvg zu löschen, verwenden Sie den folgenden Befehl:
sudo lvremove /dev/myvg/myvolume_snap
Beachten Sie, dass beim Löschen eines Snapshots alle Daten, die nach der Erstellung des Snapshots geändert wurden, verloren gehen.
Thin-Pools
Thin-Pool ist ein LVM-Mechanismus, mit dem Sie ein logisches Volume erstellen können, das nur den Teil der physischen Festplattengeräte verwendet, der tatsächlich Daten enthält. Dadurch können Sie den Speicherplatzverbrauch reduzieren und den Speicherplatz effizienter verwalten. Diese Funktion von LVM hat sich in Virtualisierungssystemen als bequeme und wirtschaftliche Lösung für die Zuweisung von Speicherplatz für virtuelle Maschinen und Container durchgesetzt. Schauen wir uns nun an, wie man einen Thin-Pool in LVM erstellt.
Erstellen eines LVM-Thin-Pools
Thin-Pools werden mit dem bekannten Befehl lvcreate erstellt. Um zum Beispiel einen Thin-Pool mythinpool in der Volume-Gruppe myvg auf den physischen Volumes /dev/sdb und /dev/sdc zu erstellen, verwenden Sie den folgenden Befehl:
sudo lvcreate -L 50G -T myvg/mythinpool /dev/sdb /dev/sdc
Dabei gibt -L die Größe des Thinpools in Gigabyte an und -T zeigt an, dass es sich um einen Thinpool handelt. Mit diesem Befehl wird ein Thin-Pool mythinpool von 50 GB erstellt.
Erstellen eines LVM-Thin-Volumes
Ein Thin-Volume ist ein logisches Volume, das innerhalb eines Thin-Pools erstellt wird. Thin-Volumes können mit dem Befehl lvcreate erstellt werden. Um zum Beispiel ein Thin-Volume mythinvolume der Größe 10 GB im Thin-Pool mythinpool in der Volume-Gruppe myvg zu erstellen, verwenden Sie den folgenden Befehl:
sudo lvcreate -V 10G -T myvg/mythinpool -n mythinvolume
Dabei gibt -V die Größe des Thin-Volumes in Gigabyte und -n den Namen des Thin-Volumes an. Mit diesem Befehl wird ein Thin-Volume mythinvolume von 10 GB im Thin-Pool mythinpool erstellt.
Verwendung von LVM-Thin-Volumes
Ein Thin-Volume kann wie ein normales logisches Volume verwendet werden. Um zum Beispiel ein ext4-Dateisystem auf einem Thin-Volume mythinvolume zu erstellen, verwenden Sie den folgenden Befehl:
sudo mkfs.ext4 /dev/myvg/mythinvolume
Sobald das Thin-Volume-Dateisystem erstellt ist, kann es gemountet und wie ein reguläres logisches Volume verwendet werden.
Mit Thin Pool können Sie flexiblere und effizientere Speicherkonfigurationen in Linux erstellen. Thin Pool wird in Kombination mit Thin Volume verwendet, um den Speicherplatz optimal zu nutzen.