Der Logical Volume Manager (LVM) löst ein Problem, dass jeden von uns irgendwann auf irgendeinem Computersystem ereilt: Auf einer Partition geht der Speicherplatz zur Neige. Mit Glück kannst du genügend Platz durch Löschen unbenötigter Daten freiräumen., sonst bleibt dir meistens nichts anderes übrig, als einen weiteren Datenträger anzuschließen oder den Datenträger neu zu partitionieren und das System neu zu installieren. Der LVM fasst mehrere physische Datenträger zu einem logischen zusammen, dessen Größe du später noch ändern kannst.
Material
Für diesen Post habe ich zwei ältere SSDS (1 ADATA SD700 1TB, 1 Intenso Portable 512MB SSD und 1 SanDisk Milan II 2TB SSD) zusammengesucht und mit einem aktiven USB-Hub an meinen DietPiOS Raspberry Pi angeschlossen. Du kannst diese Anleitung aber mit jeder Kombination von Festplatten, SSD oder auch USB-Sticks nachvollziehen. Du solltest für eigene Versuche keine Laufwerke verwenden, auf denen noch wichtige Daten liegen!
Vorbereitung
Zunächst musst du erstmal die benötigten Programme installieren. Ich arbeite im weiteren mit dem User root, um mir das sudo
zu ersparen.
apt install lvm2
Auf den beiden SSDs habe ich alle vorhandenen Partitionen gelöscht, da nur auf unpartitionierten Datenträgern der LVM eingerichtet werden kann.
physical volume anlegen
Im nächsten Schritt müssen wir für den Logical Volume Manager die physical volumes (pv) anlegen
pvcreate /dev/sda
pvcreate /dev/sdb
Sollte bei diesen Kommandos folgende Meldung „Cannot use /dev/sda: device is partitioned“ erscheinen, obwohl keine Partition mehr vorhanden ist, Kannst du entweder eine neue DOS-Partition-Table anlegen oder mit
wipefas --all /dev/sda
Alle vorhandenen Signaturen löschen lassen.
Die erzeugten pv kannst du dir mit pvdisplay
anzeigen lassen
Ein pv kannst du mit dem Befehl pvremove
wieder löschen.
Volume Group erzeugen
In einer Volume Group (vg) werden mehrere physical volumes zu einem abstrakten Datenträger gebündelt. Dieser hat dann eine Gesamtkapazität aller verwendeten pv.
Die Volume Group erzeugst du ganz einfach mit dem Kommando
vgcreate raspithek_vg /dev/sda /dev/sdb
Mit dem Kommando vgdisplay
kannst du dir die neue VolumeGroup anzeigen lassen.
Die Zeilen „Cur PV“ und „Act PV“ zeigen, dass zwei Physical Volumes in der Volume Group präsent sind.
Logical Volume anlegen
Bislang haben wir nur Vorarbeiten erledigt. Jetzt erzeugen wir ein Logical Volume (lv) auf unserer Virtual Group, dass wir dann auch ins System einbinden können.
lvcreate -L 100GB -n lvm1 raspithek_vg
Unser neues lv soll eine Kapazität von 100GB haben und den Namen lvm1 tragen und auf der vg raspithek_vg liegen.
Jetzt haben wir etwas, dass wir benutzen können.
Dateisystem anlegen
Du kannst jetzt, wie bei jeder anderen Partition auch, ein System anlegen. Die Bezeichnung der Partition ist etwas anderes, da nicht der Kernel sondern der Logical Volume Manager die Partition verwaltet.
mkfs.ext4 /dev/raspithek_vg/lvm1
Zu guter Letzt bindest du die Partition ein
mount -t ext4 /dev/raspithek_vg/lvm1 /lvm-test/
Du siehst, unsere Partition hat eine Größe von 100GB, die wir beim lvcreate
angegeben haben.
LV vergrößern
Mittels des Kommandos lvresize
kannst du das Logical Volume vergrössern, in diesem Beispiel im 20GB
lvresize -L +20GB raspithek_vg/lvm1
Jetzt hat das LV eine Kapazität von 120GB, aber die Partition hat noch die alte Größe. Das beheben wir mit em Kommando
resize2fs /dev/raspithek_vg/lvm1
Genau das macht raspi-config auch mit dem Menüpunkt Advanced Options/Expand Filesystem.
Um ein Logical Volume zu verkleinern benutzt du lvresize mit einer negativen Größenangabe. Allerdings geht das maximal nur in Höhe des freien Platzes auf dem lv, sonst gehen Daten verloren.
neues Laufwerk hinzufügen
Auch die SanDisk Milan II 2TB SSD habe ich von allen Daten und Partitions befreit habe, sie wird unter /dev/sdc aufgeführt. Mit dem Kommando
vgextend raspithek_vg /dev/sdc
Habe ich sie der bestehenden Volume Group hinzugefügt. Wodurch sie jetzt eine Gesamtkapazität von 4TB besitzt. Danach habe ich mit den Schritten lvresize
und resize2fs
von oben die bestehende Partition noch weiter vergrößert und erhalte jetzt eine Gesamtkapazität von 3,2TB
Fazit
Der Logical Volume Manager bringt unglaubliche Flexibilität in die Aufteilung des vorhandenen Plattenplatzes. Du solltest dabei aber bedenken, dass er kein RAID System ersetzt, da ihm die Redundanz fehlt. Ich werde meinen nächsten Rechner mit dem LVM installieren, um Problemen mit volllaufenden Partitionen besser begegnen zu können.