Kategorien
Allgemein

Cheatsheet zum Logical Volume Manager (LVM)

[:de]Der Logical Volume Manager unter Linux erlaubt es logische Laufwerke zu erstellen ohne sich Gedanken machen zu müssen ob diese zu den verwendeten Festplattengrößen passen. Reicht der Platz nicht mehr aus, baut man einfach eine neue Festplatte ein und bindet diese in die Volume Group ein und kann so wieder neue Laufwerke erstellen.

Je nach Device Mapper finden sich die Partitionen zum Beispiel unter /dev/volumegroup/logicalvolume

Eine mögliche weitere Abstraktion ist es für die Physical Volumes, Raid Partitionen zu verwenden. Dies ist auch sinnvoll da man nicht weiß wo genau die Daten für ein logical Volume gespeichert werden. Bei einem Festplatten Problem ggf. alle logischen Volumes beschädigt werden.

Physical Volumes

Aus Partitionen werden zunächst Physical Volumes für die Verwendung für den LVM gemacht.

Ein Physical Volume erstellen
Folgender Befehl erstellt ein Physical Volume.

pvcreate /dev/sdb1

Übersicht über die vorhandenen Volumes
Um sich Übersicht zu verschaffen kann man folgenden Befehl ausführen.

pvdisplay /dev/sdb1

Dieser Befehl zeigt Informationen über alle Volumes an oder nur über ein bestimmtes.

Virtual Groups

Physical Volumes können nun einer Volume Group hinzugefügt werden. Einem Pool der erweiterbar ist und aus dem wir den Speicherplatz für unsere späteren Logical Volumes beziehen.

Virtual Group erstellen.
So werden ein oder mehrere Physical Volumes zu einer Virtual Group zusammen geschlossen.

# Fügt ein Physical Volume der Virtual Group hinzu
vgcreate mynew_vg /dev/sdb1 
# Fügt mehrere Physical Volume der Virtual Group hinzu
vgcreate mynew_vg /dev/sdb1 /dev/sdb2

Virtual Group erweitern.
Virtual Group um ein Physical Volume erweitern. Z.B. nach dem Einbau einer neuen Festplatte.

vgextend mynew_vg /dev/sdc1

Übersicht über die Virtual Groups
Folgende Befehle helfen die verbleibende Größe, sowie Details über die Virtual Groups im Auge zu behalten.

vgdisplay
vgdisplay mynew_vg
vgs
vgs mynew_vg

Logical Volumes

Die Logical Volumes sind schließlich die Partitionen mit denen wir arbeiten können. Logical Volumes werden aus einer Volume Group erstellt und können wie normale Festplatten verwendet werden.

Ein Logical Volume erstellen
Es wird ein Logical Volume mit 20Gb und dem Namen lv01 in der Volume Group mynew_vg erstellt.

lvcreate --size 20G --name lv01 mynew_vg

Übersicht über die Logical Volumes
Folgende Befehlt helfen die Übersicht zu behalten.

lvs 
lvs mynew_vg
lvdisplay 
lvdisplay mynew_vg

Vergrößern eines Logical Volumes
Ein Vorteil des LVM ist es dass die Volumes sich leicht vergrößern lassen.

lvextend -L +800 /dev/mynew_vg/lv01

Dies vergrößert unser lv01 Volume um 800Mb. Sollte der Speicherplatz in der Volume Group einmal nicht mehr ausreichen, müssten nur weitere Physical Volumes der Virtual Group hinzugefügt werden.

Hinweis: Dies vergrößert nur die Partition an sich, nicht dass darauf befindliche Filesystem. Dies lässt sich z.B. bei ext mit resize2fs erledigen.

resize2fs /dev/mynew_vg/vl01

Entfernen eines Logical Volumes
Löschen lassen sich Logical Volumes natürlich auch. Die Daten sind dann natürlich verloren.

lvremove /dev/mynew_vg/vl01

Snapshots

Ein großer Vorteil von Logical Volumes ist dass diese snapshot-fähig sind. Wird ein Snapshoot erstellt repräsentiert dieser den Stand zum Zeitpunkt des Snapshots ohne lästige Kopiervorgänge.

Ein Snapshot wird mit einer bestimmten Größe angelegt, bei Änderungen im Quellvolume werden die zu überschreibenden Daten im Snapshot Volume zwischengespeichert (Copy-on-Write). Reicht die Größe dafür nicht mehr aus wird der Snapshot ungültig. Bei einem 10G Snapshot können im Quellvolume also 10G an Daten geändert werden bevor der Snapshot ungültig wird.

Macht man einen Snapshot rückgängig werden die geänderten Daten zurück kopiert. Dies dauert natürlich etwas da Daten kopiert werden müssen. Alternativ kann man den Snapshot natürlich wieder löschen, z.B. nachdem man die Daten gesichert hat.

Übliche Anwendungsbereiche wären ein Backup vor einem Systemupgrade. Oder um eine Partition zu Sichern ohne sich um gelockte Dateien kümmern zu müssen. Hilfreich ist auch einen Snapshot zu erstellen und auf diesem Änderungen vorzunehmen. Quasi als Testlauf. Klappt alles kann man den Snapshoot löschen, einen neuen als Backup anlegen und die Änderungen am Original durchführen.

Snapshot anlegen
Wir erstellen einen 10GB großen Snapshot von /dev/mynew_vg/v101.

lvcreate -L10G -s -n v101_snap/ /dev/mynew_vg/vl01

Mit v101_snap existiert ein Snapshoot der bis zu 10GB an Änderungen speichern kann.

Snapshot verwerfen
Wie ein anderes Logical Volume auch lassen sich Snapshots mit lvremove entfernen

lvremove /dev/mynew_vg/vl01_snap

Snapshot wieder herstellen
Ging ein Systemupgrade daneben möchte man den Snapshot stand wieder herstellen. Dies sollte offline durchgeführt werden bzw. die ehemalige Quellpartition nicht mehr gemounted sein. Ist dies nicht möglich kann die Rücksicherung dennoch gemacht werden danach muß das System aber gebootet werden.

lvconvert --merge /dev/vgroup/vl01_snap

[:]

Von Christian Stengel

Geek, PHP Entwickler, Linux Admin

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.