LVM für Linux einrichten

closeDieser Beitrag gehört zu der Artikelserie LPIC-2

LVM ist eine andere Art von Festplatten Management, ähnlich einem RAID 0. Es bietet dabei, nicht wie ein normales RAID (1, 5, o.ä.) Redundanz, sondern dient nur dazu, eine weitere logische Ebene zwischen die Festplatten und das System oder die Daten zu bringen.
Der Vorteil dabei liegt auf der Hand. Sollte der Platzanspruch irgendwann mal steigen, so muss eine Platte nicht durch eine grössere Ersetzt und alle Daten umkopiert werden, sondern es reicht, eine weitere Platte dem LVM zu zufügen. somit bietet LVM, was übrigens für die Kurzform von Logical Volume Management steht, mehr Flexibilität.

Ursprünglich kommt das Konzept von LVM von IBM entwickelt für deren Baby: AIX.

Aufbau

Der Aufbau von, nennen wir es mal einer Speichermöglichkeit, ist in zwei Schichten gegliedert:

Zu unterst steht das Physical Volume wie /dev/sda, darauf kommt ein Dateisystem wie ext3.
Wird nun aber LVM verwendet, so ändert sich der Aufbau:

Es kommt auf das Physical Volume zuerst eine Volumegroup, also eine Art Speicherpool dazu und darauf die Logical Volumes, eine Art virtuelle Partition, welche dann mit dem Dateisystem formatiert wird.

Erzeugen

Nun legen wir ein LVM auf unsere Platte. Damit das klappt, säubern wir zuerst die alte Platte von der Partitionstabelle, und der passende Partitionstyp muss geschrieben werden:

dd if=/dev/zero of=/dev/sda bs=512 count=1
cfdisk /dev/sda

Nun erstellen wir ein neues Physical Volume:

pvcreate /dev/sda5

Mit pvdisplay sieht man auch gleich, was man angestellt hat:

pvdisplay

Nun können wir darauf eine Volume Group legen:

vgcreate vg1 /dev/sda6

Darauf wiederum kommt nun ein Logical Volume mit der Grösse von zum Beispiel 5GiB:

lvcreate -n lv1 -L 5120M vg1

Nun kann man auf den eben erstellten Device über /dev/vg1/lv1 zugreifen.
Damit da aber auch etwas drauf passt, muss man es zuerst noch formatieren mit einem passenden Dateisystem:

mkfs -t ext3 /dev/vg1/lv1

Und schlussendlich kann das ganze wie ein normales Dateisystem verwendet und eingehängt werden:

mount -t ext3 /dev/vg1/lv1 /data

Logical Volume vergrössern

Merkt man nun nachträglich, dass man noch mehr Platz benötigt, so kann das Logical Volume nachträglich vergrössert werden, indem diesem vom der Volume Group mehr Speicherplatz zugewiesen wird, z.B. über:

lvextend -L+2048M /dev/vg1/lv1

Nun muss man wieder die Hierarchie nach oben alles anpassen, also ist jetzt das Dateisystem dran:

umount /data
e2fsck -f /dev/vg1/lv1
resize2fs /dev/vg1/lv1
mount -t ext3 /dev/vg1/lv1 /data

Logical Volume verkleiner

Natürlich kann man mit lvreduce das ganze auch verkleinern, jedoch muss dabei zuerst dem Dateisystem etwas geklaut werden:

umount /data
e2fsck -f /dev/vg1/lv1
resize2fs /dev/vg1/lv1 2048M
lvreduce -L 2048M /dev/vg1/lv1
mount -t ext3 /dev/vg1/lv1 /data

Volume Group ändern

Doch was tun, wenn auf der VG kein Platz mehr vorhanden ist? Kein Problem! Einfach eine neu Disk rein, darauf ein neues Physical Volume, wie oben schon beschrieben, erstellen und dem VG zufügen:

pvcreate /dev/sda7
vgextend vg1 /dev/sda7

Nun wieder die Schritte von oben zum Vergrössern des LV durchführen und man hat mehr Platz zur Verfügung.
Oder wenn man etwas verkleinern möchte, so kann ich dies natürlich auch gleich dem VG klauen:

vgreduce -a vg1

Oder ich schmeisse ein ganz bestimmtes Physical Volume aus der VG:

vgreduce vg1 /dev/sda7

Natürlich nur wenn ich mit folgendem Kommando keine Daten darauf finde:

pvdisplay -v /dev/sda7

LVM löschen

Will ich mein LVM wieder los werden, so kann ich auf folgenden Befehlssatz zurückgreifen:

vgchange -a n

Snapshot-Volume

Ganz interessant, besonders für sehr grosse Installation ist das Snapshot-Volume.
Wenn man sehr viele Daten hat, so kann zum Beispiel bei einem Backup das Problem auftreten, dass während dem Sichern das System geändert wird.
Wird also während dem Sichern ein neuer Benutzer angelegt, so könnte beispielsweise eine passwd- nicht mehr zur shadow-Datei passen… Ein Restore würde dadurch relativ aufwendig!
Also kann man mittels LVM den Zustand eines Systems als Snapshot auf einem weiteren Volume einfrieren und dann von da aus wegsichern, wodurch der Betrieb nicht gestört wird!

Ein Snapshot-Volume wird auf der Ebene der LV erstellt, alles darunter muss also gegeben sein. Es wird einzig noch eine Option mehr gesetzt:

lvcreate --snapshop --size 100M --name lvs1 /dev/vg1/lv1

Dieses Volume unter /dev/vg1/lvs1 kann nun auch gemounted und dann von da aus gesichert werden.
Gut zu wissen hierbei, es wird keine 1:1 Kopie angelegt, ein Snapshot ist also keine direkte Kopie. Trotzdem sollte drauf geachtet werden, dass genügend Platz vorhanden ist.

4 Kommentare bei „LVM für Linux einrichten

    1. Kann es durchaus, aus den oben schon genannten Gründen. Dies kannst du sogar direkt bei der Installation ab CD / DVD oder Stick automatisch einrichten lassen.

      1. Kannst du mir da mal ein Beispiel nennen – also abgesehen davon, dass ich eine Festplatte austausche. Das mache ich normalerweise in einem Laptop nicht.

        1. Wenn du bei deiner Workstation mehr Speicher gönnen willst. Oder dich bei einer Partitionierung vertan hast. Also sind auch dabei die Partitionen variabler. Oder du kannst mehrere Platten ohne RAID zusammenfassen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.