LVM verstehen und nutzen

Aus LinuxUser 04/2013

LVM verstehen und nutzen

© Anna Liebiedieva, 123RF

Logisch partitionieren

Das ausgereifte und stabile LVM ermöglicht ein extrem flexibles Verwalten von Datenträgern und Partitionen.

Das Kürzel LVM steht für Logical Volume Manager. Dabei meint die Bezeichnung sowohl die Verwaltung-Werkzeuge für Shell und GUI als auch die im Linux-Kernel enthaltenen Treiber. Mithilfe letzterer implementiert LVM eine zusätzliche Abstraktionsebene zwischen Festplatten/Partitionen und deren Dateisystemen. Dadurch können Sie fortan mit dynamisch veränderbaren logischen Laufwerken arbeiten und sind nicht mehr an die physikalischen Partitions- und Festplattengrößen gebunden. Sie dürfen die Größe eines solchen Logical Volumes (LV) auch nach dem Anlegen eines Dateisystems nach Belieben verändern, sogar wenn Sie darin schon Daten gespeichert haben.

LVM fasst die LVs zu einem Pool zusammen, der Volumegroup (VG). Eine VG kann sich ohne weiteres über mehrere Festplatten hinweg erstrecken. Außerdem lässt sich eine VG wie ein LV zur Laufzeit vergrößern, indem Sie weitere physikalische Volumes (PVs, die eigentlichen Festplatten-Partitionen) zur Volumegroup hinzufügen.

LVM und RAID

Eine physikalische Festplatten-Partition befördern Sie durch Auswahl des Partitiontyps 8e (statt 83) in Fdisk zu einem LVM-PV. Es steht dann nicht mehr als normale physikalischen Partition zur Verfügung. Die eigentlichen Dateisysteme (LVM unterstützt Ext2/3/4, JFS, XFS und ReiserFS v3) legen Sie nicht auf der PV an, sondern auf den von LVM in einer VG verwalteten logischen LVs. Insofern ähnelt die Funktion von LVM der von RAID, bietet aber keine Redundanz und damit keine erhöhte Ausfallsicherheit. Der Vorteil von LVM liegt ausschließlich in der erhöhten Flexibilität, weil Sie sowohl LVs innerhalb der VG als auch den Pool selbst über Festplattengrenzen hinweg durch Hinzufügen von PVs zur Laufzeit vergrößern können, also mit bestehenden Daten. Generell können Sie LVM und Software-RAID vollkommen unabhängig voneinander installieren und nutzen, auch wenn viele Enterprise-Lösungen beide Funktionen zusammenfassen.

Abstrahiert

Bei LVM geht es ausschließlich um das Abbilden physikalischer auf logische Volumes und damit um das dynamische Vergrößern (oder auch Verkleinern) von Partitionen und Dateisystemen. Beim Aufbau einer auf LVM basierenden Datenträgerverwaltung bekommen Sie es der Reihe nach mit den Verwaltungsstrukturen PV, VG und LV zu tun.

Die Gerätenamen zum Ansprechen einer VG beziehungsweise eines LV lauten dann /dev/VG_Name und /dev/VG_Name/LV_Name. Ein alternatives Addressierungsschema lautet/dev/mapper/VG_Name und /dev/mapper/VG_Name-LV_Name möglich. Die kleinste Verwaltungseinheit in Analogie zur Blockgröße bei physikalischen Partitionen stellt in einer VG das Physical Extent (PE) dar, das per Default 4 MByte groß ist. Sie können die PE-Größe bei Bedarf aber über die Kommandozeile anpassen.

Viele Distributionen, darunter die meisten Enterprise-Distributionen sowie Fedora, verwenden bei der automatischen Partitionierung LVM. Jedoch unterstützen alle Linux-Systeme aufgrund des Kernels LVM von Haus aus und stellen mit Installieren des Pakets lvm2 auch die entsprechenden Kommandozeilenwerkzeuge zur Verfügung.

Erste Schritte

Für die folgenden Bespiele benutzen wir das neue Fedora 18: Als Basis für Red Hats Enterprise Linux verwendet Fedora seit Jahren standardmäßig LVM und bringt in Form von system-config-lvm ein leistungsfähiges grafisches LVM-Tool mit [1]. Dieses Werkzeug steht aber inzwischen auch in vielen anderen Distributionen zur Verfügung [2]. Seine Bedienung schildert ein ausführliches Handbuch [3].

Alle im Folgenden verwendeten Kommandos müssen Sie als Root auszuführen. Zum Aufbau einer VG benötigen Sie zunächst ein oder mehrere physikalische Volumes. Vorausgesetzt, auf der Festplatte(n) findet sich genügend freier Platz, wählen Sie beim Anlegen einer Partition in Fdisk den Partitionstyp 8e.

Eine einzige PV genügt bereits zum Aufbau einer VG. Um die Flexibilität von LVM auszureizen benötigen Sie jedoch mindestens noch eine zweite PV auf einer zweiten Festplatte. Die VG soll sich nachher über beide Festplatten erstrecken. Denken Sie beim jeweiligen Verlassen von Fdisk daran, die neue Partitionstabelle mit [W] auf den Datenträger zu schreiben und den Rechner anschließend neu zu booten. Alternativ zum Reboot können Sie die geänderte Partitionstabelle auch mittels partprobe neu einlesen. In gleicher Weise legen Sie eine zweite Partition des Typs 8e auf einer zweiten Festplatte an, schreiben wiederum die Partitionstabelle und lesen sie anschließend neu.

Zunächst gilt es die frisch angelegten PVs für LVM zu initialisieren. Dazu nutzen Sie den Befehl pvcreate (Listing 1, Zeile 1 und 2). Die im Listing angegebenen Partitionsbezeichnungen müssen Sie an Ihre Bedürfnisse anpassen. Die initialisierten PVs verwenden Sie nun zum Aufbau einer VG, die nachher als Pool für logische Laufwerke dient (Zeile 3). Deren Namen dürfen Sie frei vergeben.

Listing 1

# pvcreate /dev/sda1
# pvcreate /dev/sdb2
# vgcreate VG_Name /dev/sda1 /dev/sdb2

Alternativ geben Sie zunächst nur ein PV an und erweitern die VG später mittels des Kommandos vgextend – ein Fall, der eher dem praktischen Alltag entspricht. Im folgenden Beispiel verwenden wir exemplarisch diese Variante, weil bei einer Standard-Fedora-Installation die Volumegroup fedora_linux, bestehend auf einem PV (/dev/sda2) bereits existiert:

# vgextend fedora_linux /dev/sdb1

Hier braucht man die bestehende VG fedora_linux also nur um ein zweites PV (/dev/sdb1) zu erweitern. Die Partition /dev/sda1 auf der ersten Festplatte dient bei der automatischen Partitionierung durch Fedora 18 als Boot-Partition. Fedora mountet sie im Dateisystem nach /boot. Hierbei muss es sich zwingend eine physikalische Partition handeln, damit das darauf unter anderem abgelegte Kernel-Image schon vor dem Laden etwaiger LVM-Treiber zugänglich ist.

Mit dem Befehl vgdisplay VG_Name rufen Sie detaillierte Status-Informationen über eine VG ab. So ermitteln Sie etwa deren Größe oder finden heraus, welche PVs zur VG zählen (Abbildung 1). In einer existierenden VG legen Sie nach Belieben logische Volumes anlegen und vergrößern diese später auch bis zur maximalen Größe der Volumegroup. Auch das erledigen Sie mithilfe von Vgextend.

Abbildung 1: Mittels Vgdisplay rufen Sie Statusinformationen zur angegebenen Volumegroup auf, wie deren Größe oder die enthaltenen Physical Volumes.

Abbildung 1: Mittels Vgdisplay rufen Sie Statusinformationen zur angegebenen Volumegroup auf, wie deren Größe oder die enthaltenen Physical Volumes.

Logical Volumes

Das Anlegen eines Logical Volumes, also des LVM-Pendants zu einer physikalischen Partition, erfolgt mit dem Befehl

# lvcreate  -n LV_Name -L Größe VG_Name

Den Namen des logischen Volumens können Sie wieder frei wählen. Für VG_Name geben Sie den Namen der Volumegroup an, in der das logische Volume entstehen soll. Vorsicht bei der Parameterwahl für die Größenangabe: Nach -L erwartet Lvcreate eine Angabe in GByte (GB) oder MB (MB), nach -l jedoch die Anzahl von Extents. Für unser Beispiel erstellen wir ein LV von 6 GByte Größe:

# lvcreate  -n lv_fedora_linux -L 6GB /dev/fedora_linux

Das fällt immerhin größer aus als das erste PV auf der ersten Festplatte (4 GByte), verteilt sich also auf zwei Harddisks. Dennoch lässt es sich dank der LVM-Abstraktion wie ein gewöhnliches Laufwerk behandeln und mit mkfs formatieren. Anschließend binden Sie es Volume an der gewünschten Position im Dateisystem ein und verwenden es wie jedes andere. Sie können das Volume auch problemlos beim Booten mounten und dazu in die /etc/fstab einbinden.

Das Vergrößern einer VG durch Hinzufügen eines weiteren PVs mit Vgextend haben wir bereits gezeigt. Fehlt noch das Vergrößern eines LVs innerhalb der Volumegroup. Dazu müssen Sie lediglich sicherstellen, dass die VG über ausreichend nicht zugewiesenen Platz verfügt, etwa, indem Sie gegebenenfalls zuvor die VG. Ein Blick mit Lvdisplay gibt Aufschluss über die derzeitige Größe aller momentan vorhandenen LVs sowie über weitere Parameter der LV-Geometrie, wie etwa die Anzahl der Logical Extents sowie deren momentane Blockgröße (Abbildung 2).

Abbildung 2: Das Kommando Lvdisplay liefert Detailinformationen zum angegebenen oder zu allen Logical Volumes, darunter auch Anzahl und Größe der verwendeten Logical Extents.

Abbildung 2: Das Kommando Lvdisplay liefert Detailinformationen zum angegebenen oder zu allen Logical Volumes, darunter auch Anzahl und Größe der verwendeten Logical Extents.

Das Vergrößern eines LVs funktioniert sogar, wenn dieses bereits Daten enthält. Der erste Schritt besteht darin, das Volume selbst zu vergrößern. So erweitert das Kommando aus Zeile 1 von Listing 2 das angegebene Logical Volume um 512 Logical Extents. Wahlweise geben Sie auch mit -L die neue Größe in MByte oder GByte an (Zeile 2). Damit ist es aber noch nicht getan, weil schließlich auch das vorhandene Dateisystem mitwachsen muss. Dies erledigen Sie schließlich mit dem Kommando resize2fs (Zeile 3).

Listing 2

# lvextend -l +512 /dev/VG_Name/LV_Name
# lvextend -L 7GB /dev/VG_Name/LV_Name
# resize2fs -p /dev/VG_Name/LV_Name

Der Clou dabei: Das Dateisystem darf beim Vergrößern eingehängt und in Benutzung bleiben. Im Zusammenhang mit Lvextend müssen Sie immer daran denken, das Dateisystem anschließend mit Resize2fs anzupassen. Beim Verkleinern eines Logical Volumens mit lvreduce gehen Sie umgekehrt vor und verkleinern zuerst das Dateisystem. Im Gegensatz zum Vergrößern des Dateisystems müssen Sie beim Verkleinern mit Resize2fs allerdings vorab die Zielgröße angeben. Erst dann verkleinern Sie das logische Volume mit Lvreduce.

Grafische LVM Tools

Mit diesem Basiswissen bewaffnet, sollte es Ihnen keine Mühe bereiten, LVM mit einem beliebigen grafischen Werkzeug einzurichten. Nutzer von Distributionen aus der Red-Hat-Familie (etwa Fedora, CentOS oder Scientific Linux) installieren dazu das Paket system-config-lvm. Anwender von Ubuntu und dessen Derivaten richten über das Software-Center die Verwaltung für logische Medien ein – das Tool ist aber letztendlich das gleiche.

Zum Starten suchen Sie im Gnome3-Dash nach dem Punkt Logische Datenträgerverwaltung beziehungsweise Logical Volume Management. Hier finden Sie links einen hierarchisch organisierten Navigationsbereich mit der Wurzel Datenträgergruppen. Darunter sehen Sie die eben eingerichtete Volumegroup, die Sie wiederum mit den gleichnamigen Knoten in eine logische und eine physikalische Ansicht auffalten können (Abbildung 3).

Abbildung 3: Der Logical Volume Manager bietet eine komfortable grafische Oberfläche für das Erstellen und Verwalten von PVs, VGs und LVs.

Abbildung 3: Der Logical Volume Manager bietet eine komfortable grafische Oberfläche für das Erstellen und Verwalten von PVs, VGs und LVs.

Über die großen Schaltflächen unterhalb der grafischen Darstellung im Arbeitsbereich erzeugen Sie zum Beispiel ein neues Logical Volume. Die im Dialog Einen neuen logischen Datenträger erzeugen einzustellen Parameter sollten Ihnen jetzt keine Mühe mehr bereiten. Das zu verwendende Dateisystem können anders als beim manuellen Vorgehen hier gleich mit angeben (Abbildung 4).

Abbildung 4: Das Anlegen des vorgesehenen Dateisystems erledigt der Logical Volume Manager beim Anlegen eines LVs gleich mit.

Abbildung 4: Das Anlegen des vorgesehenen Dateisystems erledigt der Logical Volume Manager beim Anlegen eines LVs gleich mit.

System Storage Manager

Das neue Fedora 18 verfügt mit dem System Storage Manager (SSM) über ein neues LVM-Werkzeug für die Kommandozeile, das künftig auch in RHEL zum Einsatz kommen soll. Ähnlich wie bei Diskpart unter Windows können Sie mit SSM eine ganze Reihe von Aufgaben im Zusammenhang mit de Datenträgerkonfiguration in einer einheitlicher Syntax erledigen, ohne dazu eine ganzen Batterie einzelner Werkzeuge wie Fdisk, Btrfs, Cryptsetup, Lvm2 und Resize2fs kombinieren zu müssen.

Sie können SSM also nicht nur für LVM einsetzen, sondern auch für das Verwalten gewöhnlicher physikalischer Partitionen, von RAID-Arrays oder Btrfs-Pools. Trotzdem funktioniert SSM immer nach der einfachen Syntax ssm Option>. Mit dem Parameter list beispielsweise listen Sie je nach Kontext Geräte, Volumes oder Pools auf. Das Anlegen einer LVM-Volumegroup erledigen Sie in SSM durch einen einzigen Befehl:

# ssm create -s 6G --fstype ext4 /dev/sdb

Der Befehl erzeugt ein logisches Volume von 6 GByte Größe und formatiert es mit Ext4. Die dazu erforderliche Volumegroup /dev/lvm_pool legt das Kommando dabei automatisch an. Wir werden uns in einer der kommenden Ausgaben intensiver mit SSM beschäftigen.

Fazit

LVM ist ausgereift, stabil und überaus nützlich. Dass insbesondere Enterprise-Distributionen bei der automatischen Partitionierung auf LVM setzen, verwundert da wenig. Es überrascht eher, dass viele Heimanwender immer noch auf die Vorzüge von LVM verzichten, zumal die Installer aller wichtigen Distributionen LVM bereits beim Setup unterstützen. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 04/2013 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben