[: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
[:]