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 Volumes 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 physische Volume.

Erstellen einer physischen Volume-Gruppe

Eine physische Volume-Gruppe (vg) ist ein logischer Container, der mehrere physische Volumes 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

Jetzt 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

Wobei -n der Name des logischen Volumes ist, -L die Größe des logischen Volumes ist.

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 mit dem Befehl mkfs ein Dateisystem auf dem logischen Datenträger:

sudo mkfs.ext4 /dev/vg0/lv0

4. erstellen Sie mit dem Befehl mkdir einen Einhängepunkt für das neue Dateisystem:

sudo mkdir /mnt/lv0

5. mounten Sie das neue Dateisystem mit dem mount-Befehl in den Einhängepunkt:

sudo mount /dev/vg0/lv0 /mnt/lv0

Sie können nun das neue Dateisystem auf dem logischen Volume 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
Beachten Sie, dass im letzten Beispiel der Großbuchstabe l verwendet wird, während im vorherigen Beispiel der Großbuchstabe L verwendet wurde.
In diesem Format haben Sie die Möglichkeit, einen Prozentsatz für den freien Speicherplatz auf dem physischen Volume festzulegen, der dem logischen Volume hinzugefügt werden soll.

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 der 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 erstellen zu können.

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 Datenträgergruppe 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.

Dünne 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 beispielsweise 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 wir einen Thinpool erstellen. 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 mit 10 GB innerhalb des Thin-Pools 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 eingehängt und wie ein normales 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.