Eine Einführung in LVM-Konzepte, Terminologie und Operationen

Einführung

LVM, oder Logical Volume Management, ist eine Technologie zur Verwaltung von Speichergeräten, die Benutzern die Möglichkeit gibt, die physische Aufteilung der Komponentenspeichergeräte für eine flexible Verwaltung zu poolen und abstrahieren. Unter Verwendung des Device Mapper-Linux-Kernel-Frameworks kann die aktuelle Version, LVM2, vorhandene Speichergeräte zu Gruppen zusammenfassen und bei Bedarf logische Einheiten aus dem kombinierten Speicherplatz zuweisen.

Die Hauptvorteile von LVM sind erhöhte Abstraktion, Flexibilität und Kontrolle. Logische Volumes können aussagekräftige Namen wie „Datenbanken“ oder „root-backup“ haben. Volumes können auch dynamisch in ihrer Größe geändert werden, wenn sich die Speicheranforderungen ändern, und auf einem laufenden System zwischen physischen Geräten innerhalb des Pools migriert oder exportiert werden. LVM bietet auch erweiterte Funktionen wie Snapshotting, Striping und Spiegelung.

In diesem Leitfaden lernen Sie, wie LVM funktioniert, und können grundlegende Befehle üben, um schnell auf einer physischen Maschine startklar zu sein.

LVM-Architektur und Terminologie

Bevor Sie sich mit LVM-Verwaltungsbefehlen befassen, ist es wichtig, grundlegende Kenntnisse darüber zu haben, wie LVM Speichergeräte organisiert und welche Terminologie es verwendet.

LVM-Speicherverwaltungsstrukturen

LVM funktioniert, indem es Abstraktionen über physischen Speichergeräten schichtet. Die grundlegenden Schichten, die LVM verwendet, beginnend mit den primitivsten, sind:

  • Physikalische Volumes: Das Präfix des LVM-Dienstprogramms für physische Volumes lautet pv.... Diese blockieren physische Geräte oder andere festplattenähnliche Geräte (zum Beispiel andere Geräte, die vom Gerätemapper erstellt wurden, wie RAID-Arrays) und werden von LVM als das Rohmaterial für höhere Abstraktionsebenen verwendet. Physische Volumes sind reguläre Speichergeräte. LVM schreibt einen Header auf das Gerät, um es für die Verwaltung zuzuweisen.

  • Volumengruppen: Das Präfix des LVM-Dienstprogramms für Volumengruppen lautet vg....
    LVM kombiniert physische Volumes zu Speicher-Pools, die als Volumengruppen bekannt sind. Volumengruppen abstrahieren die Eigenschaften der zugrunde liegenden Geräte und fungieren als einheitliches logisches Gerät mit kombinierter Speicherkapazität der Komponenten-Physische Volumes.

  • Logische Volumes: Das LVM-Dienstprogrammpräfix für logische Volumes lautet lv..., allgemeine LVM-Dienstprogramme könnten mit lvm... beginnen. Eine Volumengruppe kann in beliebig viele logische Volumes unterteilt werden. Logische Volumes sind funktional äquivalent zu Partitionen auf einer physischen Festplatte, aber mit viel mehr Flexibilität. Logische Volumes sind die Hauptkomponente, mit der Benutzer und Anwendungen interagieren werden.

LVM kann verwendet werden, um physische Volumes in Volumengruppen zu kombinieren, um den verfügbaren Speicherplatz auf einem System zu vereinheitlichen. Anschließend können Administratoren die Volumengruppe in beliebige logische Volumes segmentieren, die als flexible Partitionen fungieren.

Verständnis von Extents

Jeder Band innerhalb einer Volumengruppe ist in kleine, feste Abschnitte unterteilt, die als Extents bezeichnet werden. Die Größe der Extents wird von der Volumengruppe bestimmt. Alle Bände innerhalb der Gruppe entsprechen derselben Extentgröße.

Die Extents auf einem physischen Volume werden als physische Extents bezeichnet, während die Extents eines logischen Volumes als logische Extents bezeichnet werden. Ein logisches Volume ist eine Zuordnung, die LVM zwischen logischen und physischen Extents aufrechterhält. Aufgrund dieser Beziehung repräsentiert die Extentgröße den kleinsten Speicherplatz, der von LVM allokiert werden kann.

Extents sind wesentlich für die Flexibilität und Leistungsfähigkeit von LVM. Die logischen Extents, die von LVM als einheitliches Gerät präsentiert werden, müssen nicht zu kontinuierlichen physischen Extents abgebildet werden. LVM kann die physischen Extents, die ein logisches Volume bilden, kopieren und neu organisieren, ohne dabei die Benutzer zu unterbrechen. Logische Volumes können auch erweitert oder verkleinert werden, indem Extents zum Volume hinzugefügt oder entfernt werden.

Typische Anwendungsfälle

Jetzt, da Sie mit einigen Begriffen und Strukturen vertraut sind, die LVM verwendet, können Sie einige übliche Methoden zur Verwendung von LVM erkunden. Sie beginnen mit einem Verfahren, bei dem zwei physische Festplatten verwendet werden, um vier logische Volumes zu bilden.

Markierung der physischen Geräte als physische Volumes

Beginnen Sie mit dem Scannen des Systems nach Blockgeräten, auf die LVM zugreifen und sie verwalten kann. Dies können Sie mit folgendem Befehl tun:

  1. sudo lvmdiskscan

Die Ausgabe zeigt alle verfügbaren Blockgeräte an, mit denen LVM interagieren kann:

Output
/dev/ram0 [ 64.00 MiB] /dev/sda [ 200.00 GiB] /dev/ram1 [ 64.00 MiB] . . . /dev/ram15 [ 64.00 MiB] /dev/sdb [ 100.00 GiB] 2 disks 17 partitions 0 LVM physical volume whole disks 0 LVM physical volumes

In diesem Beispiel sehen Sie, dass derzeit zwei Festplatten und 17 Partitionen vorhanden sind. Die Partitionen sind hauptsächlich /dev/ram*-Partitionen, die im System als RAM-Disk für Leistungssteigerungen verwendet werden. Die Festplatten in diesem Beispiel sind /dev/sda mit 200G Speicherplatz und /dev/sdb mit 100G.

Warnung: Stellen Sie sicher, dass die Geräte, die Sie mit LVM verwenden möchten, keine wichtigen Daten enthalten, die bereits darauf geschrieben wurden. Die Verwendung dieser Geräte in LVM überschreibt den aktuellen Inhalt. Wenn Sie wichtige Daten auf Ihrem Server haben, erstellen Sie Sicherungen, bevor Sie fortfahren.

Jetzt, da Sie die physischen Geräte kennen, die Sie verwenden möchten, markieren Sie sie als physische Volumes in LVM mit dem Befehl pvcreate:

  1. sudo pvcreate /dev/sda /dev/sdb
Output
Physical volume "/dev/sda" successfully created Physical volume "/dev/sdb" successfully created

Dies schreibt einen LVM-Header auf die Geräte, um anzuzeigen, dass sie bereit sind, einer Volume Group hinzugefügt zu werden.

Überprüfen Sie, ob LVM die physischen Volumes registriert hat, indem Sie pvs ausführen:

  1. sudo pvs
Output
PV VG Fmt Attr PSize PFree /dev/sda lvm2 --- 200.00g 200.00g /dev/sdb lvm2 --- 100.00g 100.00g

Beachten Sie, dass beide Geräte unter der PV-Spalte vorhanden sind, die für physisches Volume steht.

Hinzufügen der physischen Volumes zu einer Volume Group

Jetzt, da Sie physische Volumes aus Ihren Geräten erstellt haben, können Sie eine Volume Group erstellen. In den meisten Fällen gibt es nur eine Volume Group pro System für maximale Flexibilität bei der Zuweisung. Das folgende Beispiel für eine Volume Group ist als LVMVolGroup benannt. Sie können Ihre Volume Group nach Belieben benennen.

Um die Volume Group zu erstellen und beide physischen Volumes hinzuzufügen, führen Sie folgenden Befehl aus:

  1. sudo vgcreate LVMVolGroup /dev/sda /dev/sdb
Output
Volume group "LVMVolGroup" successfully created

Die erneute Überprüfung der Ausgabe von pvs zeigt an, dass Ihre physischen Volumes nun mit der neuen Volume Group verbunden sind:

  1. sudo pvs
Output
PV VG Fmt Attr PSize PFree /dev/sda LVMVolGroup lvm2 a-- 200.00g 200.00g /dev/sdb LVMVolGroup lvm2 a-- 100.00g 100.00g

Listen Sie eine kurze Zusammenfassung der Volume Group mit vgs auf:

  1. sudo vgs
Output
VG #PV #LV #SN Attr VSize VFree LVMVolGroup 2 0 0 wz--n- 299.99g 299.99g

Ihre Volume Group hat derzeit zwei physische Volumes, keine logischen Volumes und verfügt über die kombinierte Kapazität der zugrunde liegenden Geräte.

Erstellen von logischen Volumes aus dem Volume Group Pool

Nun, da Sie über eine Volume-Gruppe verfügen, können Sie sie als Pool verwenden, um logische Volumes zuzuweisen. Anders als bei herkömmlicher Partitionierung müssen Sie bei der Arbeit mit logischen Volumes nicht das Layout des Volumes kennen, da LVM dies für Sie abbildet und verwaltet. Sie müssen nur die Größe des Volumes und einen Namen angeben.

In folgendem Beispiel erstellen Sie vier separate logische Volumes aus Ihrer Volume-Gruppe:

  • 10G-Volume „Projekte“
  • 5G-Volume „www“ für Webinhalt
  • 20G-Volume „db“ für eine Datenbank
  • Volume „Arbeitsbereich“, der den verbleibenden Platz füllen wird

Um logische Volumes zu erstellen, verwenden Sie den Befehl lvcreate. Sie müssen die Volume-Gruppe angeben, aus der Sie ziehen möchten, und das logische Volume mit der Option -n benennen. Um die Größe direkt anzugeben, können Sie die Option -L verwenden. Wenn Sie die Größe stattdessen in Bezug auf die Anzahl der Extents angeben möchten, können Sie die Option -l verwenden.

Erstellen Sie die ersten drei logischen Volumes mit der Option -L:

  1. sudo lvcreate -L 10G -n projects LVMVolGroup
  2. sudo lvcreate -L 5G -n www LVMVolGroup
  3. sudo lvcreate -L 20G -n db LVMVolGroup
Output
Logical volume "projects" created. Logical volume "www" created. Logical volume "db" created.

Sie können die logischen Volumes und ihre Beziehung zur Volume-Gruppe anzeigen, indem Sie eine benutzerdefinierte Ausgabe aus dem Befehl vgs auswählen:

  1. sudo vgs -o +lv_size,lv_name
Output
VG #PV #LV #SN Attr VSize VFree LSize LV LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 10.00g projects LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 5.00g www LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 20.00g db

In diesem Beispiel haben Sie die letzten beiden Spalten der Ausgabe hinzugefügt. Sie zeigen an, wie viel Speicherplatz Ihren logischen Volumes zugewiesen ist.

Jetzt können Sie den restlichen Platz in der Volumengruppe dem „Arbeitsbereich“ Volumen zuweisen, indem Sie das Flag „-l“ verwenden, das in Extents funktioniert. Sie können auch einen Prozentsatz und eine Einheit angeben, um Ihre Absichten besser zu kommunizieren. In diesem Beispiel weisen Sie den verbleibenden freien Speicherplatz zu, indem Sie „100%FREE“ übergeben:

  1. sudo lvcreate -l 100%FREE -n workspace LVMVolGroup
Output
Logical volume "workspace" created.

Überprüfen Sie die Informationen zur Volumengruppe mit dem benutzerdefinierten Befehl „vgs“ und stellen Sie fest, dass der gesamte verfügbare Speicherplatz verwendet wurde:

  1. sudo vgs -o +lv_size,lv_name
Output
VG #PV #LV #SN Attr VSize VFree LSize LV LVMVolGroup 2 4 0 wz--n- 299.99g 0 10.00g projects LVMVolGroup 2 4 0 wz--n- 299.99g 0 5.00g www LVMVolGroup 2 4 0 wz--n- 299.99g 0 20.00g db LVMVolGroup 2 4 0 wz--n- 299.99g 0 264.99g workspace

Das „Arbeitsbereich“ Volumen wurde erstellt und die Volumengruppe „LVMVolGroup“ ist vollständig zugewiesen.

Formatieren und Einbinden der logischen Volumen

Jetzt, da Sie logische Volumen haben, können Sie sie als normale Blockgeräte verwenden.

Die logischen Geräte sind im Verzeichnis „/dev“ wie andere Speichergeräte verfügbar. Sie können sie an zwei Stellen zugreifen:

  • /dev/volumengruppenname/logischesvolumenname
  • /dev/mapper/volumengruppenname-logischesvolumenname

Um Ihre vier logischen Volumen mit dem Ext4-Dateisystem zu formatieren, führen Sie die folgenden Befehle aus:

  1. sudo mkfs.ext4 /dev/LVMVolGroup/projects
  2. sudo mkfs.ext4 /dev/LVMVolGroup/www
  3. sudo mkfs.ext4 /dev/LVMVolGroup/db
  4. sudo mkfs.ext4 /dev/LVMVolGroup/workspace

Alternativ können Sie Folgendes ausführen:

  1. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-projects
  2. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-www
  3. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-db
  4. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-workspace

Nach dem Formatieren erstellen Sie Einhängepunkte:

  1. sudo mkdir -p /mnt/{projects,www,db,workspace}

Dann binden Sie die logischen Volumen am entsprechenden Ort ein:

  1. sudo mount /dev/LVMVolGroup/projects /mnt/projects
  2. sudo mount /dev/LVMVolGroup/www /mnt/www
  3. sudo mount /dev/LVMVolGroup/db /mnt/db
  4. sudo mount /dev/LVMVolGroup/workspace /mnt/workspace

Um die Mounts dauerhaft zu machen, verwenden Sie Ihren bevorzugten Texteditor, um sie zur Datei /etc/fstab hinzuzufügen. Das folgende Beispiel verwendet nano:

  1. sudo nano /etc/fstab
/etc/fstab
. . .

/dev/LVMVolGroup/projects /mnt/projects ext4 defaults,nofail 0 0
/dev/LVMVolGroup/www /mnt/www ext4 defaults,nofail 0 0
/dev/LVMVolGroup/db /mnt/db ext4 defaults,nofail 0 0
/dev/LVMVolGroup/workspace /mnt/workspace ext4 defaults,nofail 0 0

Nachdem Sie Ihre Datei bearbeitet haben, speichern Sie und beenden Sie. Wenn Sie nano verwenden, drücken Sie CTRL+c, dann y, dann ENTER.

Das Betriebssystem sollte nun die LVM-Logikvolumes automatisch beim Booten einhängen.

Schlussfolgerung

Sie haben nun ein Verständnis für die verschiedenen Komponenten, die LVM verwaltet, um ein flexibles Speichersystem zu erstellen, und wie man Speichergeräte in einem LVM-Setup zum Laufen bringt.

Um mehr über die Arbeit mit LVM zu erfahren, werfen Sie einen Blick auf unseren Anleitung zur Verwendung von LVM mit Ubuntu 18.04.

Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-lvm-concepts-terminology-and-operations