3.2 Rein logisch: Logical Volume Manager »LVM«
Partitionierungen auf Linux-Systemen sind relativ starr. Es ist nicht möglich, nach einer begonnenen Installation die einzelnen beteiligten Geräte zu vergrößern oder zu verkleinern. (SAN-Speicher bildet hier eine Ausnahme.) Eine einmal getroffene Entscheidung für das Layout lässt sich im Nachhinein nur noch dadurch ändern, dass weitere Festplatten oder – allgemeiner gesagt – Geräte irgendwo in den Verzeichnisbaum eingehängt werden.
[»] Nehmen wir an, wir hätten eine Festplatte von 50 GB, die so wie in Tabelle 3.3 aufgebaut ist (das Beispiel vereinfacht die Grundsituation, um das Prinzip zu erläutern):
Device | Größe | Beschreibung |
---|---|---|
/dev/sda | 50 GB | die gesamte Festplatte |
/dev/sda1 | 10 GB | Mountpunkt / (das System) |
/dev/sda2 | 36 GB | Mountpunkt /home (die Homeverzeichnisse) |
/dev/sda5 | 4 GB | Swap |
Tabelle 3.3 Beispiel-Layout ohne LVM
Im Laufe des Lebens dieser Maschine stellt sich heraus, dass der Mountpunkt mit den Homeverzeichnissen vergrößert werden muss, weil es noch weitere Nutzer gibt, die das System benutzen sollen. Eine weitere Festplatte mit 50 GB wird angeschafft, und für die neuen User werden die neuen Homeverzeichnisse als separate Partitionen erstellt:
Device | Größe | Beschreibung |
---|---|---|
/dev/sda | 50 GB | die gesamte Festplatte |
/dev/sda1 | 10 GB | Mountpunkt / (das System) |
/dev/sda2 | 36 GB | Mountpunkt /home (die Homeverzeichnisse) |
/dev/sda5 | 4 GB | Swap |
/dev/sdb | 50 GB | die neue Festplatte |
/dev/sdb5 | 5 GB | Mountpunkt /home/neuernutzer1 |
/dev/sdb6 | 5 GB | Mountpunkt /home/neuernutzer2 |
Tabelle 3.4 Beispiel-Layout ohne LVM mit neuer Festplatte
Wie Sie in Tabelle 3.4 feststellen können, ist klar abzusehen, dass nach spätestens zehn neuen Nutzern diese Vorgehensweise an ihre Grenzen stößt – und das, obwohl eventuell die Verzeichnisse der neuen Benutzer gar nicht oder nur sehr gering gefüllt sind. Alternativ können Sie natürlich ein Backup des kompletten Systems erstellen, eine größere primäre Festplatte anschaffen und das Backup auf die neue Festplatte übertragen, wobei Sie die Partitionsgrößen anpassen. Dieses Vorgehen erfordert allerdings ein längeres Wartungsfenster, in dem das System nicht verfügbar ist.
Wenn aber beim ursprünglichen Design des Layouts LVM einbezogen wird, bekommen Sie die Möglichkeit geschenkt, auch im Nachhinein noch Spiegelungen und Erweiterungen aufbauen und verwalten zu können. Wenn jetzt der Platz zur Neige geht, können Sie, wie in Abbildung 3.1 gezeigt, auf die Logical Volume Group ausweichen. Mit der gleichen Vorbedingung wie in Tabelle 3.4 kann man den Platz, den sda2 bietet, einer sogenannten Logical Volume Group zuweisen, sodass das Beispiel-Layout so wie in Abbildung 3.1 oder Tabelle 3.5 aussieht.
Device | Größe | Beschreibung |
---|---|---|
/dev/sda | 50 GB | die gesamte Festplatte |
/dev/sda1 | 10 GB | Mountpunkt / (das System) |
/dev/vg1/lv1 | 36 GB | Mountpunkt /home (die Homeverzeichnisse) |
/dev/sda5 | 4 GB | Swap |
Tabelle 3.5 Beispiel-Layout mit LVM
Abbildung 3.1 Das neue Layout, grafisch dargestellt
Es ist an dieser Stelle wichtig, zu erwähnen, dass alle modernen Filesysteme (mehr zu Dateisystemen finden Sie in Kapitel 4, »Dateisysteme«) in der Größe veränderbar sind und dass nicht der gesamte Platz den Homeverzeichnissen zugewiesen werden muss. Das Beispiel vereinfacht die Situation stark, um das Prinzip zu verdeutlichen (siehe Tabelle 3.6).
Device | Größe | Beschreibung |
---|---|---|
/dev/sda | 50 GB | die gesamte Festplatte |
/dev/sda1 | 10 GB | Mountpunkt / (das System) |
/dev/vg1/lv1 | 86 GB | Mountpunkt /home (die Homeverzeichnisse) |
/dev/sda5 | 4 GB | Swap |
/dev/sdb | 50 GB | neue Festplatte, der Platz kommt der Logical Volume Group zugute |
Tabelle 3.6 Beispiel-Layout mit LVM und mit neuer Festplatte
3.2.1 Grundlagen und Begriffe
Um mit LVM sicher umgehen zu können, müssen Sie einige Begriffe beherrschen.
LVM-Begriffe
Das sind die wichtigsten Vokabeln und Abkürzungen, die Sie im Umgang mit LVM benötigen:
-
Volume Group (VG): Volumengruppe oder Diskgruppe, die Speicherplatz für Devices verwaltet
-
Physical Volume (PV): ein Festplattenbereich oder eine Partition oder eine LUN, die einer Volume Group zur Verfügung gestellt wird
-
Physical Extent (PE): kleinste Verwaltungseinheit eines Physical Volumes, die global für eine Volume Group festgelegt wird
-
Logical Extent (LE): die zum Physical Extent passende und gleich große logische Verwaltungseinheit; sie verweist auf einen Physical Extent
-
Logical Volume (LV): logisches Volumen oder Disk, auf die ein Dateisystem aufgebracht werden kann
[+] Bitte beachten Sie, dass die Begriffe bei anderen Volume Managern anders verwendet werden können.
Abbildung 3.2 Übersicht über die Struktur von LVM
Wenn von Disks die Rede ist, kann es sich sowohl um Festplatten als auch um USB-Speicher oder LUNs von SAN-Systemen – wir sprechen hier auch von Block Devices – handeln. LVM setzt auf die physische Schicht, also auf die Disks, eine logische Verwaltungsschicht. Das hat den Vorteil, dass man an den Disks Veränderungen vornehmen kann, ohne dass die logische Schicht davon beeinträchtigt wird. Abbildung 3.2 gibt Ihnen einen groben Überblick darüber, wie die Begriffe zusammenhängen (»mp« steht dabei für Mountpunkt).
3.2.2 Setup
In diesem Abschnitt befassen wir uns mit der Installation des Logical Volume Managers. In allen von uns beschriebenen Distributionen müssen Sie das Paket »lvm2« installieren, um den Logical Volume Manager nutzen zu können.
Nach der Installation gibt es ein großes Bündel von neuen Programmen:
pvck pvdisplay pvremove pvs pvchange
pvcreate pvmove pvresize pvscan
vgcfgbackup vgconvert vgextend vgmknodes vgs
vgcfgrestore vgcreate vgimport vgreduce vgscan
vgchange vgdisplay vgimportclone vgremove vgsplit
vgck vgexport vgmerge vgrename
lvchange lvextend lvmdiskscan lvmsadc lvrename
lvconvert lvm lvmdump lvmsar lvresize
lvcreate lvmconf lvmetad lvreduce lvs
lvdisplay lvmconfig lvmpolld lvremove lvscan
Listing 3.17 Programme, die mit LVM installiert werden
Es sei an dieser Stelle darauf hingewiesen, dass bei LVM – anders als bei anderen Volume Managern – die Benennung der Befehle über die einzelnen Ebenen hinweg konsistent ist.
Das Erzeugen funktioniert mit create und der »Vorsilbe« pv für Physical Volumes, vg für Volume Groups, lv für Logical Volumes. Gleiches gilt für viele andere Befehle.
3.2.3 Aufbau einer Volume Group mit einem Volume
In diesem Beispiel nehmen wir einmal an, dass wir ein System mit einer Festplatte haben und diese so wie in Tabelle 3.5 beschrieben partitionieren wollen.
Wenn das Partitionstool selbst keine Erzeugung von LVMs zulässt, legen wir bei der Installation eine root-Partition an (beispielsweise /dev/sda1), erstellen danach – wie gewohnt – die swap-Partion und erzeugen zum Schluss eine Partition (beispielsweise /dev/sda2), der wir noch kein Dateisystem zuweisen. Sollte das Anlegen einer leeren Partition nicht möglich sein, lassen wir den Platz unkonfiguriert und legen nach erfolgter Installation mittels fdisk /dev/sda die leere Partition /dev/sda2 von Hand an.
Um diese Partition – es könnte auch durchaus eine komplette Festplatte sein – zur Benutzung durch LVM vorzubereiten, führen wir den Befehl pvcreate /dev/sda2 aus. pvcreate erzeugt einige Daten im Header der Partition, die LVM benötigt, um die Partition ansprechen und verwalten zu können. Die Anwendung des Befehls zeigt auch schon, dass nur komplette Devices einer Volume Group hinzugefügt werden können.
pvdisplay -v /dev/sda2 zeigt die Informationen, die wir über das Physical Volume haben:
Using physical volume(s) on command line
Wiping cache of LVM-capable devices
"/dev/sda2" is a new physical volume of "1019.75 MB"
--- NEW Physical volume ---
PV Name /dev/sda2
VG Name
PV Size 1019.75 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID pVmej8-2azX-rl0B-J1TK-RBhv-gMXU-coAq3Z
Listing 3.18 »pvdisplay«
Nun erzeugen wir die Volume Group mittels vgcreate vgreichlichplatz /dev/sda2. Das Resultat lässt sich mithilfe von vgdisplay -v vgreichlichplatz überprüfen:
Using volume group(s) on command line
Finding volume group "vgreichlichplatz"
--- Volume group ---
VG Name vgreichlichplatz
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 1016.00 MB
PE Size 4.00 MB
Total PE 254
Alloc PE / Size 0 / 0
Free PE / Size 254 / 1016.00 MB
VG UUID rYGiiM-NwNN-K131-nvX8-89Fr-RxzU-B10tYy
--- Physical volumes ---
PV Name /dev/sda2
PV UUID pVmej8-2azX-rl0B-J1TK-RBhv-gMXU-coAq3Z
PV Status allocatable
Total PE / Free PE 254 / 254
Listing 3.19 »vgdisplay«
Die Informationen über das Physical Volume haben sich auch entsprechend verändert. Die Größe des Physical Volumes wurde etwas verringert, da ein paar Verwaltungsinformationen gespeichert werden müssen. Wir sehen, dass das PV jetzt zu einer Volume Group gehört, es ist benutzbar (allocatable), die Physical Extent Size ist jetzt gesetzt, und die Größe sehen wir ebenfalls.
Nun legen wir ein Volume mit dem Namen lvhome an. Wir haben 254 freie Physical Extents, die wir auch alle nutzen wollen. Also heißt der Befehl lvcreate -l 254 -n lvhome vgreichlichplatz, und wir schauen uns gleich danach das Resultat mit lvdisplay /dev/vgreichlichplatz/lvhome an:
Using logical volume(s) on command line
--- Logical volume ---
LV Name /dev/vgreichlichplatz/lvhome
VG Name vgreichlichplatz
LV UUID 1J163f-64rc-s6Rc-i5DE-A28I-XRM4-1a3v0f
LV Write Access read/write
LV Status available
# open 0
LV Size 1016.00 MB
Current LE 254
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:0
Listing 3.20 »lvdisplay«
Als Nächstes legen wir ein Dateisystem an, der Einfachheit halber nehmen wir ext4 (andere Dateisysteme finden Sie in Kapitel 4, »Dateisysteme«).
mkfs -t ext4 /dev/vgreichlichplatz/lvhome
Listing 3.21 Dateisystem auf dem Logical Volume anlegen
Hiernach lässt sich das gerade erzeugte Dateisystem überall da einhängen, wo wir es haben wollen: mount /dev/vgreichlichplatz/lvhome /home. Um das Volume auch nach einem Reboot verfügbar zu haben, muss es noch in der /etc/fstab eingetragen werden.
/dev/vgreichlichplatz/lvhome /home ext4 errors=remount-ro 0 1
Listing 3.22 Eintrag in der »/etc/fstab«
Damit haben wir den ersten Teil abgeschlossen: Wir haben ein Physical Volume erzeugt, dieses benutzt, um eine neue Volume Group zu erzeugen, und anschließend haben wir ein neues Volume erzeugt und in den Verzeichnisbaum eingefügt.
Folgende Kommandos wurden in diesem Abschnitt behandelt:
-
pvcreate /dev/PLATTE
-
vgcreate VGNAME /dev/PLATTE
-
lvcreate -L <GROESSE> -n LVNAME VGNAME
-
mkfs -t <DATEISYSTEM> /dev/VGNAME/LVNAME
-
mount /dev/VGNAME/LVNAME MOUNTPUNKT
-
Eintrag in /etc/fstab
-
pvdisplay /dev/PLATTE
-
lvdisplay /dev/VGNAME/LVNAME
-
vgdisplay VGNAME
3.2.4 Erweiterung eines Volumes
Die Erweiterung eines Volumes erfolgt in zwei Schritten: Zum einen muss das zugrunde liegende Logical Volume vergrößert werden, und anschließend muss das enthaltene Filesystem angepasst werden.
lvextend -L +500M /dev/vgreichlichplatz/lvhome vergrößert das Logical Volume um 500 MB, wenn in der Volume Group der nötige Platz vorhanden ist. Allerdings ist davon im Filesystem nichts sichtbar, da es zusätzlich noch vergrößert werden muss.
[ ! ] Achtung bei der Verkleinerung eines Dateisystems
Auch wenn sich Dateisysteme mittlerweile verkleinern lassen, sieht die sicherste und empfohlene Methode anders aus: Legen Sie zunächst ein Backup der Daten an. Löschen Sie dann das Dateisystem, und legen Sie es wieder neu an. Spielen Sie nun die Daten aus dem Backup wieder ein (Recovery).
Im Fall von ext4 und einem Kernel 2.6 oder größer lässt sich das Filesystem online vergrößern. resize2fs /dev/vgreichlichplatz/lvhome vergrößert das Dateisystem online auf die maximal zulässige Größe, wie Sie leicht mit df -h überprüfen können. Folgende Kommandos wurden in diesem Abschnitt behandelt:
-
lvextend -L +<VERGROESSERUNG> /dev/VGNAME/LVNAME
-
resize2fs /dev/VGNAME/LVNAME
Damit ist es möglich – genügend Platz in der Volume Group vorausgesetzt –, Logical Volumes nachträglich zu vergrößern.
3.2.5 Eine Volume Group erweitern
Analog zur Erweiterung eines Volumes mit lvextend heißt der Befehl bei Volume Groups vgextend. pvcreate /dev/sdb erzeugt ein neues Physical Volume aus der zweiten Festplatte, und vgextend vgreichlichplatz /dev/sdb fügt diese Platte dann zur Volume Group hinzu. vgdisplay vgreichlichplatz gibt die Information zur Volume Group heraus, und vgdisplay -v vgreichlichplatz liefert zusätzlich die Informationen zu allen enthaltenen Objekten:
Using volume group(s) on command line
Finding volume group "vgreichlichplatz"
--- Volume group ---
VG Name vgreichlichplatz
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 2.99 GB
PE Size 4.00 MB
Total PE 765
Alloc PE / Size 254 / 1016.00 MB
Free PE / Size 511 / 2 GB
VG UUID rYGiiM-NwNN-K131-nvX8-89Fr-RxzU-B10tYy
--- Logical volume ---
LV Name /dev/vgreichlichplatz/lvhome
VG Name vgreichlichplatz
LV UUID 1J163f-64rc-s6Rc-i5DE-A28I-XRM4-1a3v0f
LV Write Access read/write
LV Status available
# open 1
LV Size 1016.00 MB
Current LE 379
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:0
--- Physical volumes ---
PV Name /dev/sda2
PV UUID pVmej8-2azX-rl0B-J1TK-RBhv-gMXU-coAq3Z
PV Status allocatable
Total PE / Free PE 254 / 0
PV Name /dev/sdb
PV UUID pU2C5h-nEEI-jgB0-4Eg8-RsTK-KIvO-I9AUlh
PV Status allocatable
Total PE / Free PE 511 / 511
Listing 3.23 »vgdisplay« mit neuem Device
Folgende Kommandos wurden in diesem Abschnitt behandelt:
-
vgextend VGNAME PVNAME
-
vgdisplay -v VGNAME
Eine bestehende Volume Group kann nun mit zusätzlichen Disks vergrößert werden.
3.2.6 Spiegelung zu einem Volume hinzufügen
LVM können Sie auch benutzen, um Volumes zu spiegeln. Allerdings müssen Sie beachten, dass bei Vergrößerungen der Platz auf allen benutzten Physical Volumes vorhanden sein muss.
Der Befehl lvconvert -m 1 --mirrorlog core /dev/vgreichlichplatz/lvhome fügt unserem lvhome-Volume einen Spiegel hinzu. Das ist sehr zeitintensiv. Dieser Spiegel muss zwangsweise auf einem zweiten Physical Volume liegen, sonst wäre er kein echter Spiegel. Der Parameter core von mirrorlog besagt, dass der Spiegel bei jedem Neustart wieder neu aufgebaut wird.
[+] Es ist ebenfalls möglich, LVM auf einem Hardware- oder Software-RAID zu betreiben. Wie ein solches RAID aufgebaut wird, ist in Abschnitt 3.1, »RAID«, beschrieben.
Die knappe Eingabe lvs zeigt alle Daten zur Spiegelung an. Zur Komplettierung der Informationen folgen hier auch noch die Ausgaben von vgs und pvs:
testserver:~# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 vgreichlichplatz lvm2 a- 1016.00M 0
/dev/sdb vgreichlichplatz lvm2 a- 2.00G 1.00G
testserver:~# vgs
VG #PV #LV #SN Attr VSize VFree
vgreichlichplatz 2 1 0 wz--n- 2.99G 1.00G
testserver:~# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lvhome vgreichlichplatz mwi-a- 1016.00M 100.00
Listing 3.24 »pvs«, »vgs« und »lvs«
Wenn Sie den Neuaufbau des Spiegels bei jedem Neustart verhindern möchten, können Sie den Parameter weglassen. Das wäre gleichbedeutend mit mirrorlog disk, aber das bedingt, dass es ein drittes Physical Volume in der Volume Group gibt, auf dem Sie die Spiegelungslogs ablegen können.
Eine Spiegelung können Sie – wenn eine ausreichende Anzahl von Physical Volumes vorhanden ist – auch direkt bei der Erstellung einrichten. Wie das geht, wird in Abschnitt 3.2.9, »Mirroring ausführlich«, beschrieben. Es kann auch mehr als einmal gespiegelt werden: Der Parameter -m 2 sorgt dafür, dass zwei Spiegelungen angelegt werden.
[+] An dem Dateisystem, das auf dem Logical Volume liegt, muss nichts geändert werden. Das Verhalten des Logical Volumes ist transparent.
Folgende Kommandos wurden in diesem Abschnitt behandelt:
-
lvconvert -m x -mirrorlog y /dev/VGNAME/LVNAME
-
lvcreate -L GROESSE -n LVNAME -m 1 -mirrorlog y VGNAME
-
pvs
-
vgs
-
lvs
Mit den beiden ersten Befehlen können Sie Spiegelungen mittels LVM durchführen. Die neuen dreibuchstabigen Befehle helfen Ihnen zudem, einen schnellen Überblick zu bekommen.
3.2.7 Eine defekte Festplatte ersetzen
Wenn es erforderlich ist, eine Festplatte zu wechseln, sollten Sie wie folgt vorgehen: Geben Sie dem System eine weitere Festplatte (das darf auch eine USB-Festplatte sein), und verschieben Sie alle belegten Extents vom defekten Physical Volume auf die neue Festplatte. Entfernen Sie anschließend die defekte Platte aus der Volume Group, und bauen Sie die defekte Festplatte aus.
Mit dem Kommando pvmove /dev/sdb1 /dev/sda2 verschieben Sie alle belegten Extents der defekten Platte /dev/sdb1 auf die intakte Festplatte /dev/sda2.
Das Kommando vgreduce vgreichlichplatz /dev/sdb1 entfernt die defekte Platte aus der Volume Group. Nach diesem Schritt können Sie die Platte ausbauen.
Folgende Kommandos wurden in diesem Abschnitt behandelt:
-
pvmove PV1 PV2
-
vgreduce VGNAME PV
Damit können Sie ohne Datenverluste eine Disk einer Volume Group entfernen.
3.2.8 Backups mit Snapshots
Snapshots sind eine gute Möglichkeit, Backups eines Systems im laufenden Betrieb zu erstellen. Ein Snapshot (»Schnappschuss«) erstellt eine Sicht auf ein Logical Volume zu einem bestimmten Zeitpunkt. Dieses Verfahren wird sehr häufig bei Datenbanken angewendet. Man hält den Datenbankserver an, macht einen Snapshot und lässt den Server danach weiterlaufen. Von dem Snapshot kann man danach eine Sicherung machen, ohne den laufenden Betrieb zu unterbrechen.
Die Technik, die LVM dabei verwendet, nennt man Copy-on-Write oder abgekürzt COW. In dem Moment, in dem der Schnappschuss angelegt wird, überwacht der Logical Volume Manager das Ursprungs-Volume auf Änderungen und schreibt im Moment der Änderung eines Logical Extents die unveränderte Originalversion in den Snapshot. Wir erstellen nun eine neue Volume Group namens vg_adminbuch und darin ein Logical Volume mit dem Namen lv_daten:
root@debian:~# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
root@debian:~# vgcreate vg_adminbuch /dev/sdb
Volume group "vg_adminbuch" successfully created
root@debian:~# lvcreate --name lv_daten -L 100M vg_adminbuch
Logical volume "lv_daten" created
root@debian:~# mkfs -t ext4 /dev/vg_adminbuch/lv_daten
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
root@debian:~# mount /dev/vg_adminbuch/lv_daten /mnt
Listing 3.25 Eine neue Volume Group mit einem neuen Logical Volume
Um ein paar Daten im Logical Volume zu haben, schreiben wir einfach den Inhalt des Systemlogs von systemd in das neu erstellte Volume: journalctl /mnt/journal. Um einen Kontrollpunkt für unsere Bemühungen zu haben, hängen wir mit dem folgenden Befehl echo "*** LVM- TEST ***" >> /mnt/journal noch eine aussagekräftige Nachricht an das Ende der Datei.
Nun erstellen wir einen Snapshot und prüfen, ob die letzte Zeile der Datei im Original und im Schnappschuss übereinstimmt:
# lvcreate -L 4M --snapshot --name lv_snapshot /dev/vg_adminbuch/lv_daten
Logical volume "lv_snapshot" created
# rmdir snapshot
# mkdir /root/snapshot
# mount /dev/vg_adminbuch/lv_snapshot /root/snapshot
# tail -n 1 /mnt/journal /root/snapshot/journal
==> /mnt/journal <==
*** LVM-TEST ***
==> /root/snapshot/journal <==
*** LVM-TEST ***
Listing 3.26 Erstellen eines Snapshots
Bei der Erstellung des Snapshots müssen Sie angeben, von welchem ursprünglichen Volume der Schnappschuss erstellt werden soll und wie viel Platz für die Ursprungsdaten vorgehalten werden soll. Erfahrungsgemäß sollten Sie zwischen 20 und 30 % der Ursprungsgröße vorhalten. Auf »Nummer sicher« gehen Sie, wenn Sie 100 % zusätzlichen Platz bereitstellen.
[+] Die für den Snapshot tatsächlich benötigte Größe ist immer davon abhängig, wie viele Daten sich wirklich ändern.
Die Informationen, die das Kommando lvdisplay über ein Snapshot-Volume zur Verfügung stellt, zeigt Ihnen Listing 3.27:
root@debian:~# lvdisplay -v /dev/vg_adminbuch/lv_snapshot
Using logical volume(s) on command line
--- Logical volume ---
LV Name /dev/vg_adminbuch/lv_snapshot
VG Name vg_adminbuch
LV UUID nd2bdE-J2sv-9THR-6fN6-hQNC-s5YZ-BVwaRS
LV Write Access read/write
LV snapshot status active destination for /dev/vg_adminbuch/lv_daten
LV Status available
# open 1
LV Size 100.00 MiB
Current LE 25
COW-table size 4.00 MiB
COW-table LE 1
Allocated to snapshot 0.29%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:1
Listing 3.27 Ausgabe von »lvdisplay« für ein Snapshot-Volume
Nun hängen wir mit echo "*** ORIGINAL ***" >> /mnt/journal eine weitere Zeile an das Ende der Originaldatei und überprüfen den Snapshot:
root@debian:~# ls -l /mnt/journal /root/snapshot/journal
-rw-r----- 1 root root 448254 May 25 16:20 /mnt/journal
-rw-r----- 1 root root 448237 May 25 16:13 /root/snapshot/journal
root@debian:~# tail -n 1 /mnt/journal /root/snapshot/journal
==> /mnt/journal <==
*** ORIGINAL ***
==> /root/snapshot/journal <==
*** LVM-TEST ***
Listing 3.28 Überprüfen des Snapshots
Es hat also funktioniert. Die Originaldatei wurde verändert, und die Datei im Snapshot hat noch den alten Inhalt. Mit dem Befehl lvremove /dev/vg_adminbuch/lv_snapshot sollten Sie nach Abschluss des Backups den Schnappschuss wieder löschen, da einiges an Performance gebraucht wird, wenn jeder Schreibvorgang an den Originaldaten einen Schreibvorgang im Snapshot auslöst.
[✓] Schnappschüsse sind auch beschreibbar! Damit bieten sie neben der Backupfunktionalität auch ein gutes Mittel, um schnell virtuelle Kopien von Daten zu erstellen und mit diesen Kopien Programme zu testen.
[ ! ] Es kann selbstverständlich passieren, dass sich mehr Daten ändern, als man an Platz bei der Erstellung des Schnappschusses vorgesehen hat. In diesem Fall wird der Schnappschuss ungültig. Mit den Originaldaten kann aber wie gewohnt weitergearbeitet werden.
In diesem Beispiel schreiben wir 50 MB an Daten in das Original-Volume. Wir haben für den Snapshot aber nur 4 MB vorgesehen, daher ändert sich der Status von active auf INACTIVE:
root@debian:~# dd if=/dev/zero of=/mnt/nullen bs=1024 count=50000
50000+0 records in
50000+0 records out
51200000 bytes (51 MB) copied, 5.24652 s, 9.8 MB/s
root@debian:~# lvdisplay -v /dev/vg_adminbuch/lv_snapshot
Using logical volume(s) on command line
/dev/dm-1: read failed after 0 of 2048 at 0: Input/output error
--- Logical volume ---
LV Name /dev/vg_adminbuch/lv_snapshot
VG Name vg_adminbuch
LV UUID nd2bdE-J2sv-9THR-6fN6-hQNC-s5YZ-BVwaRS
LV Write Access read/write
LV snapshot status INACTIVE destination for /dev/vg_adminbuch/lv_daten
LV Status available
# open 1
LV Size 100.00 MiB
Current LE 25
COW-table size 4.00 MiB
COW-table LE 1
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:1
Listing 3.29 Überlauf des Snapshot-Volumes
Wir beenden das Beispiel, indem wir den Schnappschuss aushängen und ihn anschließend löschen:
root@debian:~# lvremove /dev/vg_adminbuch/lv_snapshot
/dev/dm-1: read failed after 0 of 2048 at 0: Input/output error
Do you really want to remove active logical volume lv_snapshot? [y/n]: y
Logical volume "lv_snapshot" successfully removed
Listing 3.30 Das Schnappschuss-Volume entfernen
Das folgende Kommando wurde in diesem Abschnitt behandelt:
-
lvcreate -L GROESSE --snapshot --name LVNAME ORIGINALLV
Mit diesem Kommando können Sie einen Snapshot erstellen und mit der Kopie weiterarbeiten, ohne die Originaldaten zu verändern.
3.2.9 Mirroring ausführlich
LVM ist ebenfalls in der Lage, Ihre Daten zu spiegeln. Dazu schreibt LVM die Daten auf zwei verschiedene Physical Volumes und stellt damit sicher, dass die Daten auch dann verfügbar bleiben, falls eine der Physical Volumes ausfällt. Um den Status der Spiegelung festzustellen, nutzt LVM eine Log-Datei, in der der Status der Schreibvorgänge festgehalten wird. Diese Datei wird Mirrorlog genannt. Für das Mirrorlog wird ein wenig Speicher im Verwaltungsbereich der Devices benötigt. Dieser Speicherplatz steht nicht für Daten zur Verfügung. Es gibt drei verschiedene konfigurierbare Methoden, um das Mirrorlog anlegen zu lassen:
-
disk – das ist der Standard. Damit wird das Mirrorlog auf eine Disk geschrieben. Idealerweise wird es auf ein Physical Volume geschrieben, das nicht im Spiegel verwendet wird. Wenn dort aber kein Platz mehr ist, wird es auf ein Volume geschrieben, das auch eine Seite des Spiegels enthält.
-
core – damit wird das Mirrorlog im Speicher angelegt. Bei jeder Aktivierung des Logical Volumes werden alle Daten vom ersten Physical Volume des Spiegels auf das zweite Volume kopiert, um sicherzustellen, dass der Spiegel komplett ist. Davon wird abgeraten, und diese Option sollte nur in Notfällen – gegebenenfalls temporär – verwendet werden.
-
mirrored – das ist der empfohlene Weg: Das Mirrorlog wird in diesem Fall ebenfalls gespiegelt, sodass im Fehlerfall eine Spiegelung schnell wieder aufgebaut werden kann.
Spiegel können über mehr als zwei Physical Volumes verteilt werden, sodass der Ausfall eines einzigen Device nicht zum Ausfall des Spiegels führt.
Für die Beispiele hier im Buch werden zwei Physical Volumes mit jeweils 50 MB Größe verwendet. Diese werden zum Aufbau einer neuen Volume Group vg_mirror verwendet (eine neue Volume Group wäre nicht nötig, sie dient hier nur der Verdeutlichung):
root@debian:~# pvs /dev/sdb /dev/sdc
PV VG Fmt Attr PSize PFree
/dev/sdb vg_mirror lvm2 a-- 48.00m 48.00m
/dev/sdc vg_mirror lvm2 a-- 48.00m 48.00m
root@debian:~# vgs vg_mirror
VG #PV #LV #SN Attr VSize VFree
vg_mirror 2 0 0 wz--n- 96.00m 96.00m
Listing 3.31 Ausgangssituation
Die einfachste Form, ein gespiegeltes Logical Volume zu erzeugen, ist, zusätzlich den Parameter -m 1 beim Erstellen zu verwenden:
root@debian:~# lvcreate -L 42M -m 1 -n lv_spiegel vg_mirror
Rounding up size to full physical extent 44.00 MiB
Logical volume "lv_spiegel" created
root@debian:~# lvs --all vg_mirror
LV VG Attr LSize Pool Origin Data% \
Move Log Copy% Convert
lv_spiegel vg_mirror mwi-a-m- 44.00m \
lv_spiegel_mlog 100.00
[lv_spiegel_mimage_0] vg_mirror iwi-aom- 44.00m
[lv_spiegel_mimage_1] vg_mirror iwi-aom- 44.00m
[lv_spiegel_mlog] vg_mirror lwi-aom- 4.00m
root@debian:~# pvs /dev/sdb /dev/sdc
PV VG Fmt Attr PSize PFree
/dev/sdb vg_mirror lvm2 a-- 48.00m 4.00m
/dev/sdc vg_mirror lvm2 a-- 48.00m 0
Listing 3.32 Erzeugen eines gespiegelten Logical Volumes
Es ist bei der Ausgabe des Befehls lvs deutlich zu sehen, aus welchen Teilen das gespiegelte Voume besteht (Spiegelteil 1, 2 und das Mirrorlog) und die Ausgabe von pvs zeigt durch den freien Speicherplatz, dass die Log-Datei nur auf einer Seite angelegt wurde. Der Spiegel ist zu 100 % synchron.
Bei Spiegeln, die aus großen Teilen bestehen, lohnt es sich, den Parameter --nosync mitzugeben. Das sorgt dafür, dass initial nicht der Inhalt des ersten Teils mit dem zweiten (oder weiteren) Teil(en) des Spiegels synchronisiert wird. Das führt uns direkt zur empfohlenen Verwendungsweise von Spiegelungen unter LVM.
root@debian:~# lvremove -f /dev/vg_mirror/lv_spiegel
Logical volume "lv_spiegel" successfully removed
root@debian:~# lvcreate -L 42M -m 1 --mirrorlog mirrored -n lv_spiegel --nosync \
vg_mirror /dev/sdb /dev/sdc
Rounding up size to full physical extent 44.00 MiB
WARNING: New mirror won't be synchronised. Don't read what you didn't write!
Logical volume "lv_spiegel" created
root@debian:~# lvs --all vg_mirror
LV VG Attr LSize Pool Origin Data% \
Move Log Copy% Convert
lv_spiegel vg_mirror Mwi-a-m- 44.00m \
lv_spiegel_mlog 100.00
[lv_spiegel_mimage_0] vg_mirror iwi-aom- 44.00m
[lv_spiegel_mimage_1] vg_mirror iwi-aom- 44.00m
[lv_spiegel_mlog] vg_mirror mwi-aom- 4.00m \
100.00
[lv_spiegel_mlog_mimage_0] vg_mirror iwi-aom- 4.00m
[lv_spiegel_mlog_mimage_1] vg_mirror iwi-aom- 4.00m
root@debian:~# pvs /dev/sdb /dev/sdc
PV VG Fmt Attr PSize PFree
/dev/sdb vg_mirror lvm2 a-- 48.00m 0
/dev/sdc vg_mirror lvm2 a-- 48.00m 0
root@debian:~# mkfs -t ext4 /dev/vg_mirror/lv_spiegel
Listing 3.33 Erzeugen eines gespiegelten Logical Volumes (empfohlener Weg)
Die Ausgabe von lvs zeigt in diesem Fall, dass das Mirrorlog aus zwei Teilen besteht und ebenfalls zu 100 % synchron ist. In diesem Beispiel wurden die Physical Volumes für die Spiegelung explizit angegeben. Bei Volume Groups, die nur aus zwei Volumes bestehen, wäre das nicht nötig. Wenn Sie aber mehr als zwei Volumes haben, können Sie darüber selbst steuern, wo der Spiegel aufgebaut wird. Der letzte Befehl im Beispiel zeigt nur, dass das Logical Volume wie jedes andere Volume zu verwenden ist. Wenn eine Festplatte aus diesem Verbund wegfällt, kann die Volume Group nicht mehr automatisch aktiviert werden. Wir müssen die Volumes explizit aktivieren, um zu zeigen, dass wir das auch wollen.
root@debian:~# vgs
Couldn't find device with uuid 6hRPHi-6ob8-oIzi-p8He-l0WZ-zXyn-fd6r1s.
VG #PV #LV #SN Attr VSize VFree
debian 1 2 0 wz--n- 9.76g 0
vg_mirror 2 1 0 wz-pn- 96.00m 0
root@debian:~# ls -ld /dev/vg_mirror
ls: cannot access /dev/vg_mirror: No such file or directory
Listing 3.34 Die Situation bei einem weggefallenen Device
Die Vorgehensweise ist, das Physical Volume aus der Volume Group zu entfernen, um danach die Volume Group aktivieren und wieder auf die Daten zugreifen zu können:
root@debian:~# vgreduce --removemissing --force vg_mirror
Couldn't find device with uuid 6hRPHi-6ob8-oIzi-p8He-l0WZ-zXyn-fd6r1s.
Wrote out consistent volume group vg_mirror
root@debian:~# vgs
VG #PV #LV #SN Attr VSize VFree
debian 1 2 0 wz--n- 9.76g 0
vg_mirror 1 1 0 wz--n- 48.00m 4.00m
root@debian:~# vgchange -ay --partial vg_mirror
Partial mode. Incomplete logical volumes will be processed.
1 logical volume(s) in volume group "vg_mirror" now active
root@debian:~# mount /dev/vg_mirror/lv_spiegel /mnt
Listing 3.35 Defektes Physical Volume entfernen
Der letzte Befehl mountet das jetzt nicht mehr gespiegelte Logical Volume. Wenn wir jetzt eine neue Festplatte oder allgemeiner gesagt ein neues Device haben, so können wir dieses der Volume Group hinzufügen und eine neue Spiegelung aufsetzen:
root@debian:~# pvcreate /dev/sdc
Writing physical volume data to disk "/dev/sdc"
Physical volume "/dev/sdc" successfully created
root@debian:~# vgextend vg_mirror /dev/sdc
Volume group "vg_mirror" successfully extended
root@debian:~# lvconvert -m 1 --mirrorlog mirrored /dev/vg_mirror/lv_spiegel
vg_mirror/lv_spiegel: Converted: 0.0%
vg_mirror/lv_spiegel: Converted: 100.0%
Listing 3.36 Neues Physical Volume zur Spiegelung verwenden
Der letzte Befehl dauert je nach Größe des zu spiegelnden Logical Volumes sehr lange. Mit dem Parameter --background wird die Synchronisation im Hintergrund durchgeführt.
[ ! ] Achtung! Die Spiegelung muss für jedes betroffene Logical Volume neu aufgesetzt werden.
3.2.10 Thin Provisioning
Mit Thin Provisioning bezeichnet man die Bereitstellung von Speicherplatz, der häufig im virtuellen Umfeld zu finden ist. Anders als bei der normalen Provisionierung wird nicht sofort der komplette Speicherplatz zur Verfügung gestellt, sondern es wird dem System »vorgegaukelt«, dass der Speicher vorhanden ist. Es wird jedoch nur der Speicher benutzt, der auch tatsächlich belegt wird.
Der Hintergrund dieses Verfahrens ist eine Mischkalkulation, zum Beispiel bei Heimatverzeichnissen: Wenn Sie jedem Nutzer 5 GB zugestehen, wird es immer solche geben, die nur einige wenige MB nutzen, und andere, die den Speicherplatz ausschöpfen. Thin Provisioning sorgt dafür, dass nur der Speicherplatz vergeben wird, der auch tatsächlich genutzt wird.
[+] Aber Achtung! Sollten Sie weniger Gesamtspeicherplatz haben als Speicher, den Sie zur Verfügung stellen, spricht man von Überprovisionierung oder Over provisioning. Das ist der Normalfall und der häufigste Anwendungszweck für Thin Provisioning. In diesem Fall müssen Sie den wirklich verwendeten Speicherplatz überwachen!
Ein zweiter Grund dafür, Thin Provisioning einzusetzen, besteht in der Bereitstellungsgeschwindigkeit. Der Speicher kann sofort zugewiesen werden, und die Volume Group muss erst dann erweitert werden, wenn es notwendig wird.
Begriffe
Im Umfeld von Thin Provisioning innerhalb von Logical Volume Groups gibt es Begriffe, die immer wieder auftauchen. Das Verständnis dieser Begriffe ist elementar, um sicher mit dem Thema umgehen zu können:
-
ThinDataLV
In diesem Logical Volume werden die Daten von zur Verfügung gestellten »thin provisioned« Logical Volumes – ThinLV – verwaltet. -
ThinMetaLV
enthält die Zuordnungen der Blöcke aus dem ThinDataLV zu ThinLVs. -
ThinPoolLV
besteht aus einem ThinDataLV und einem ThinMetaLV. Der Pool bildet die Basis für ThinLVs. -
ThinLV
ist das eigentliche Volume zur Benutzung durch das System. Es ist am Anfang leer und wird bei Benutzung vergrößert. -
SnapLV
sind Logical Volumes, die Snapshots von ThinLVs enthalten.
Vorgehensweise
[+] Bitte beachten Sie, dass Sie unter Ubuntu zusätzlich das Paket thin-provisioning-tools installieren müssen.
Zunächst erstellen wir in der Volume Group daten die beiden Bestandteile eines ThinPools, nämlich das Logical Volume für die Daten und das Pendant für die Metadaten. Die nötigen Befehle werden in Listing 3.37 gezeigt:
# lvcreate -n ThinDataLV -L 3G daten
Logical volume "ThinDataLV" created.
# lvcreate -n ThinMetaLV -L 52M daten
Logical volume "ThinMetaLV" created.
# lvs daten
LV VG Attr LSize Pool Origin Data% Meta% Move Log ...
ThinDataLV daten -wi-a----- 3.00g
ThinMetaLV daten -wi-a----- 52.00m
Listing 3.37 Erstellung der Bestandteile eines Thinpools
Im nächsten Schritt kombinieren wir die beiden Teile zu einem Thinpool. In Listing 3.38 sehen Sie, wie das gemacht wird.
In diesem Schritt wird das bestehende ThinDataLV umbenannt, und zwar in das versteckte ThinDataLV_tdata. Das Gleiche passiert mit ThinMetaLV, das umbenannt wird zu ThinDataLV_tmeta. Das ThinPoolLV bekommt den Namen des vorherigen Datenvolumes ThinDataLV.
Wie Sie in der Ausgabe von lvs sehen können, gibt die Prozentzahl hinter ThinDataLV an, wie viel vom Daten- und Metadaten-Volume bereits verwendet wird. Das lvol0_pmspare dient als »Überlaufschutz«, falls das Metadaten-Volume vollzulaufen droht.
# lvconvert --type thin-pool --poolmetadata daten/ThinMetaLV daten/ThinDataLV
WARNING: Converting logical volume daten/ThinDataLV and daten/ThinMetaLV to \
pool's data and metadata volumes.
THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)
Do you really want to convert daten/ThinDataLV and daten/ThinMetaLV? [y/n]: y
Converted daten/ThinDataLV to thin pool.# lvconvert --type thin-pool \
--poolmetadata daten/ThinMetaLV daten/ThinDataLV
WARNING: Converting logical volume daten/ThinDataLV and daten/ThinMetaLV to \
pool's data and metadata volumes.
THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)
Do you really want to convert daten/ThinDataLV and daten/ThinMetaLV? [y/n]: y
Converted daten/ThinDataLV to thin pool.
# lvs --all daten
LV VG Attr LSize Pool Origin Data% Meta% Move Log […]
ThinDataLV daten twi-a-tz-- 3.00g 0.00 0.09
[ThinDataLV_tdata] daten Twi-ao---- 3.00g
[ThinDataLV_tmeta] daten ewi-ao---- 52.00m
[lvol0_pmspare] daten ewi------- 52.00m
Listing 3.38 Erstellung des Thinpools
Viel mehr ist schon gar nicht mehr zu tun, außer dass wir unser erstes ThinLV anlegen wollen. Listing 3.39 zeigt Ihnen, wie das geht:
# lvcreate -n gigabyte -V 1G --thinpool daten/ThinDataLV
Logical volume "gigabyte" created.
# lvcreate -n terrabyte -V 1T --thinpool daten/ThinDataLV
WARNING: Sum of all thin volume sizes (1.00 TiB) exceeds the size of thin pool \
daten/ThinDataLV and the size of whole volume group (3.98 GiB)!
For thin pool auto extension activation/thin_pool_autoextend_threshold should be \
below 100.
Logical volume "terrabyte" created.
# lvs daten
LV VG Attr LSize Pool Origin Data% Meta% Move Log ...
ThinDataLV daten twi-aotz-- 3.00g 0.00 0.11
gigabyte daten Vwi-a-tz-- 1.00g ThinDataLV 0.00
terrabyte daten Vwi-a-tz-- 1.00t ThinDataLV 0.00
Listing 3.39 Erstellung von ThinLVs
Die Warnmeldung – wir haben mehr Speicherplatz zugewiesen, als verfügbar ist – wird standardmäßig leider nur bei CentOS und Debian ausgegeben.
Eine Besonderheit von Snapshots im Thin-Provisioning-Umfeld ist, dass den Snapshots kein Speicher zugewiesen werden muss und dass sie separat aktiviert werden. Das zeigt das kleine »k« in der Tabelle von lvs daten aus Listing 3.40. Das fehlende »a« und die fehlende Zahl in der Spalte Data deuten darauf hin, dass ein Volume noch nicht aktiviert ist.
# lvcreate -n gb_snap -s daten/gigabyte
Logical volume "gb_snap" created.
# lvcreate -n tb_snap -s daten/terrabyte
Logical volume "tb_snap" created.
# lvchange -ay -K tb_snap
# lvs daten
LV VG Attr LSize Pool Origin Data% Meta% Move Log ...
ThinDataLV daten twi-aotz-- 3.00g 0.00 0.11
gb_snap daten Vwi---tz-k 1.00g ThinDataLV gigabyte
gigabyte daten Vwi-a-tz-- 1.00g ThinDataLV 0.00
tb_snap daten Vwi-a-tz-k 1.00t ThinDataLV terrabyte 0.00
terrabyte daten Vwi-a-tz-- 1.00t ThinDataLV 0.00
Listing 3.40 Erstellung von ThinLVs
In diesem Abschnitt haben wir keine neuen Befehle angewendet, nur neue Optionen von bereits bekannten Befehlen eingesetzt. Weitere Informationen zu Thin Provisioning finden Sie auf der Manpage lvmthin.
3.2.11 Kommandos
Die Bedeutung der Abkürzungen von wichtigen LVM-Begriffen finden Sie im Kasten zu Beginn von Abschnitt 3.2.1, »Grundlagen und Begriffe«. Hier folgen zusammengefasst die Befehle, die Sie bei LVM einsetzen können:
-
pvdisplay: Attribute eines PVs anzeigen
-
vgdisplay: Attribute einer VG anzeigen
-
lvdisplay: Attribute eines LVs anzeigen
-
pvs: Informationen über PVs anzeigen
-
vgs: Informationen über VGs anzeigen
-
lvs: Informationen über LVs anzeigen
-
pvscan: alle Disks nach PVs durchsuchen
-
vgscan: alle Disks nach VGs durchsuchen und Caches erneuern
-
lvscan: alle Disks nach LVs durchsuchen
-
pvck: Metadaten eines PVs prüfen
-
vgck: Metadaten einer VG prüfen
-
pvcreate: ein PV für die Nutzung mit LVM vorbereiten
-
vgcreate: eine VG erstellen
-
lvcreate: ein LV in einer bestehenden VG erzeugen
-
pvchange: Attribute eines PVs ändern
-
vgchange: Attribute einer VG ändern
-
lvchange: Attribute eines LVs ändern
-
vgextend: ein PV zu einer VG hinzufügen
-
lvextend: die Größe eines LVs ändern
-
vgreduce: eine VG durch das Entfernen von PVs verkleinern
-
lvreduce: die Größe eines LVs ändern
-
pvresize: ein PV in der Größe verändern bzw. anpassen
-
lvresize: die Größe eines LVs ändern
-
pvremove: ein PV entfernen (Löschen der LVM-Metadaten)
-
vgremove: eine VG entfernen
-
lvremove: ein LV entfernen
-
pvmove: ein PE von einem PV auf ein anderes kopieren
-
vgexport: eine VG für das System unsichtbar machen
-
vgimport: eine exportierte VG wieder sichtbar machen
-
vgcfgbackup: eine Sicherung der VG-Metadaten erstellen
-
vgcfgrestore: Rücksicherung der VG-Metadaten
-
vgconvert: Konvertieren der Metadaten (von/zu LVM1 nach/von LVM2)
-
lvconvert: ein LV von linear nach Mirror oder Snapshot konvertieren
-
vgrename: eine VG umbenennen
-
lvrename: ein LV umbenennen
-
vgmerge: zwei VGs zusammenführen
-
vgsplit: ein VG in zwei VGs teilen, LVs von einer VG in die andere durch das Verschieben der PVs übertragen
-
vgmknodes: ein VG-Verzeichnis und LV-special files neu erzeugen
-
lvmchange: Attribute des LVMs ändern
-
lvmdiskscan: nach allen Devices scannen, die für LVM2 sichtbar sind
-
lvmdump: LVM2-Dumps zur Diagnose erstellen