Die traditionelle Linux-Partitionierung zwingt Sie dazu, Festplattengroessen bei der Installation festzulegen. Brauchen Sie sechs Monate spaeter mehr Platz auf /var? Dann heisst es: Backup, Neupartitionierung und Wiederherstellung. LVM (Logical Volume Manager) beseitigt diese Starrheit, indem es eine Abstraktionsschicht zwischen physischen Festplatten und Dateisystemen einfuegt. So koennen Sie Volumes vergroessern, Speicher hinzufuegen und Snapshots auf einem laufenden System erstellen — ohne Ausfallzeit.
Dieser Leitfaden behandelt den vollstaendigen LVM-Workflow: Erstellen physischer Volumes, Gruppieren in Volume-Gruppen, Zuweisen logischer Volumes und Durchfuehren der Groessenaenderungs- und Snapshot-Operationen, die LVM fuer die Serveradministration unverzichtbar machen.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Ein Linux-System mit systemd (Ubuntu 20.04+, Debian 11+, RHEL/CentOS 8+, oder aehnlich)
- Terminal-Zugang mit sudo-Berechtigungen
- Eine oder mehrere verfuegbare Festplatten oder Partitionen (ungenutzte Blockgeraete)
- Grundlegende Kenntnisse der Linux-Festplattenkonzepte (Partitionen, Dateisysteme, Mountpoints)
Warnung: Die Befehle in diesem Leitfaden werden Partitionstabellen aendern und Dateisysteme erstellen. Ueberpruefen Sie immer sorgfaeltig die Geraetnamen, bevor Sie Befehle ausfuehren. Die Verwendung des falschen Geraets kann Daten zerstoeren.
LVM-Architektur
LVM arbeitet in drei Schichten:
┌─────────────────────────────────────────┐
│ Dateisysteme (ext4, XFS) │
├─────────────────────────────────────────┤
│ Logische Volumes (LV) │
│ /dev/vg_name/lv_name │
├─────────────────────────────────────────┤
│ Volume-Gruppen (VG) │
│ Speicherpool aus einem oder │
│ mehreren physischen Volumes │
├─────────────────────────────────────────┤
│ Physische Volumes (PV) │
│ /dev/sdb, /dev/sdc, usw. │
├─────────────────────────────────────────┤
│ Physische Festplatten / Partitionen│
└─────────────────────────────────────────┘
- Physisches Volume (PV): Eine Festplatte oder Partition, die fuer LVM initialisiert wurde
- Volume-Gruppe (VG): Ein Speicherpool aus einem oder mehreren PVs
- Logisches Volume (LV): Eine virtuelle Partition aus einer VG, auf der Sie Dateisysteme erstellen
Der entscheidende Vorteil: VGs koennen sich ueber mehrere physische Festplatten erstrecken, und LVs koennen im laufenden Betrieb in der Groesse geaendert werden.
LVM installieren
LVM ist auf den meisten Server-Distributionen vorinstalliert. Ueberpruefen oder installieren Sie es:
# Debian/Ubuntu
sudo apt update && sudo apt install lvm2
# RHEL/Fedora/CentOS
sudo dnf install lvm2
# Installation ueberpruefen
lvm version
Verfuegbare Festplatten identifizieren
Bevor Sie physische Volumes erstellen, identifizieren Sie Ihre verfuegbaren Blockgeraete:
# Alle Blockgeraete auflisten
lsblk
# Detaillierte Festplatteninformationen anzeigen
sudo fdisk -l
# Pruefen, welche Festplatten bereits von LVM verwendet werden
sudo pvs
Beispiel einer lsblk-Ausgabe mit zwei ungenutzten Festplatten:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 512M 0 part /boot
└─sda2 8:2 0 49.5G 0 part /
sdb 8:16 0 100G 0 disk
sdc 8:32 0 100G 0 disk
In diesem Beispiel sind sdb und sdc fuer LVM verfuegbar.
Physische Volumes erstellen
Initialisieren Sie die Festplatten fuer die LVM-Nutzung:
sudo pvcreate /dev/sdb /dev/sdc
Ausgabe:
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
Ueberpruefen Sie die physischen Volumes:
# Zusammenfassende Ansicht
sudo pvs
# Detaillierte Ansicht
sudo pvdisplay /dev/sdb
Die pvs-Ausgabe zeigt:
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 --- 100.00g 100.00g
/dev/sdc lvm2 --- 100.00g 100.00g
Hinweis: Sie koennen auch Partitionen anstelle von ganzen Festplatten verwenden. Zum Beispiel funktioniert
sudo pvcreate /dev/sdb1, wenn Sie die Festplatte zuerst mitfdiskoderpartedpartitionieren moechten. Die Verwendung ganzer Festplatten ist einfacher und empfohlen, wenn die gesamte Festplatte fuer LVM bestimmt ist.
Eine Volume-Gruppe erstellen
Kombinieren Sie die physischen Volumes zu einer Volume-Gruppe:
sudo vgcreate vg_data /dev/sdb /dev/sdc
Ausgabe:
Volume group "vg_data" successfully created
Ueberpruefen Sie die Volume-Gruppe:
# Zusammenfassende Ansicht
sudo vgs
# Detaillierte Ansicht
sudo vgdisplay vg_data
Die vgs-Ausgabe zeigt den kombinierten Speicher:
VG #PV #LV #SN Attr VSize VFree
vg_data 2 0 0 wz--n- 199.99g 199.99g
Sie verfuegen nun ueber einen 200-GB-Speicherpool (aus zwei 100-GB-Festplatten), den Sie flexibel zuweisen koennen.
Logische Volumes erstellen
Weisen Sie Speicherplatz aus der Volume-Gruppe zu, um logische Volumes zu erstellen:
# Ein 50-GB-logisches Volume fuer Anwendungen erstellen
sudo lvcreate -L 50G -n lv_apps vg_data
# Ein 30-GB-logisches Volume fuer Datenbanken erstellen
sudo lvcreate -L 30G -n lv_databases vg_data
# Ein Volume mit Prozentanteil des verbleibenden freien Speicherplatzes erstellen
sudo lvcreate -l 50%FREE -n lv_logs vg_data
Gaengige Groessenoptionen:
| Option | Bedeutung | Beispiel |
|---|---|---|
-L 50G | Exakte Groesse | 50 Gigabyte |
-L 500M | Exakte Groesse | 500 Megabyte |
-l 100%FREE | Gesamter verbleibender Speicher | Nutzt alles, was uebrig ist |
-l 50%VG | Prozentanteil der VG | Haelfte der Volume-Gruppe |
-l 50%FREE | Prozentanteil des freien Speichers | Haelfte des verbleibenden Speichers |
Ueberpruefen Sie Ihre logischen Volumes:
# Zusammenfassende Ansicht
sudo lvs
# Detaillierte Ansicht
sudo lvdisplay /dev/vg_data/lv_apps
Formatierung und Einhaengen
Erstellen Sie Dateisysteme auf den logischen Volumes:
# Mit ext4 formatieren
sudo mkfs.ext4 /dev/vg_data/lv_apps
sudo mkfs.ext4 /dev/vg_data/lv_databases
# Oder mit XFS formatieren (bevorzugt fuer grosse Volumes)
sudo mkfs.xfs /dev/vg_data/lv_logs
Erstellen Sie Mountpoints und haengen Sie ein:
sudo mkdir -p /srv/apps /srv/databases /var/log/central
sudo mount /dev/vg_data/lv_apps /srv/apps
sudo mount /dev/vg_data/lv_databases /srv/databases
sudo mount /dev/vg_data/lv_logs /var/log/central
Persistentes Einhaengen mit fstab
Fuegen Sie Eintraege in /etc/fstab hinzu, damit die Volumes automatisch beim Booten eingehaengt werden:
# UUIDs ermitteln (zuverlaessiger als Geraetepfade)
sudo blkid /dev/vg_data/lv_apps
sudo blkid /dev/vg_data/lv_databases
sudo blkid /dev/vg_data/lv_logs
Zu /etc/fstab hinzufuegen:
/dev/vg_data/lv_apps /srv/apps ext4 defaults 0 2
/dev/vg_data/lv_databases /srv/databases ext4 defaults 0 2
/dev/vg_data/lv_logs /var/log/central xfs defaults 0 2
Tipp: Fuer LVM-Volumes ist die Verwendung des Pfads
/dev/vg_name/lv_namein fstab ueblich und zuverlaessig, da LVM konsistente Device-Mapper-Symlinks erstellt. UUIDs funktionieren ebenfalls, wenn Sie diese bevorzugen.
Testen Sie die fstab-Eintraege ohne Neustart:
sudo umount /srv/apps
sudo mount -a
df -h /srv/apps
Erweitern (Vergroessern) eines logischen Volumes
Dies ist die wertvollste Operation von LVM. Wenn einem Volume der Platz ausgeht, erweitern Sie es ohne Ausfallzeit.
Mit freiem Platz in der Volume-Gruppe erweitern
# 20 GB zum Anwendungs-Volume hinzufuegen
sudo lvextend -L +20G /dev/vg_data/lv_apps
# Dann das Dateisystem vergroessern
# Fuer ext4:
sudo resize2fs /dev/vg_data/lv_apps
# Fuer XFS:
sudo xfs_growfs /srv/apps
Oder beides in einem Befehl:
# Die Option -r aendert die Groesse des Dateisystems automatisch
sudo lvextend -r -L +20G /dev/vg_data/lv_apps
Eine neue Festplatte zur Volume-Gruppe hinzufuegen
Wenn der Volume-Gruppe der Platz ausgeht, fuegen Sie eine weitere physische Festplatte hinzu:
# Die neue Festplatte initialisieren
sudo pvcreate /dev/sdd
# Zur bestehenden Volume-Gruppe hinzufuegen
sudo vgextend vg_data /dev/sdd
# Die neue Kapazitaet ueberpruefen
sudo vgs
Jetzt koennen Sie logische Volumes mit dem neu hinzugefuegten Speicherplatz erweitern.
Verkleinern (Schrumpfen) eines logischen Volumes
Warnung: Das Verkleinern von Volumes birgt das Risiko eines Datenverlusts. Sichern Sie immer vor dem Verkleinern. XFS-Dateisysteme koennen nicht verkleinert werden — nur ext4 unterstuetzt diese Operation.
Fuer ext4-Volumes:
# Volume zuerst aushaengen
sudo umount /srv/apps
# Dateisystem pruefen
sudo e2fsck -f /dev/vg_data/lv_apps
# Dateisystem zuerst verkleinern, dann das LV (-r macht beides)
sudo lvreduce -r -L 30G /dev/vg_data/lv_apps
# Wieder einhaengen
sudo mount /dev/vg_data/lv_apps /srv/apps
Die Option -r stellt sicher, dass das Dateisystem vor dem logischen Volume verkleinert wird, um Datenbeschaedigung zu verhindern.
LVM-Snapshots
Snapshots erstellen eine Momentaufnahme eines logischen Volumes mittels Copy-on-Write. Sie sind ideal fuer Backups auf laufenden Systemen.
Einen Snapshot erstellen
# Einen 5-GB-Snapshot von lv_databases erstellen
sudo lvcreate -L 5G -s -n snap_databases /dev/vg_data/lv_databases
Die Snapshot-Groesse (5 GB) stellt die maximale Menge geaenderter Daten dar, die verfolgt werden kann. Wenn sich das Original-Volume um mehr als 5 GB aendert, waehrend der Snapshot existiert, wird der Snapshot ungueltig.
Einen Snapshot fuer Backup verwenden
# Snapshot einhaengen (nur lesen)
sudo mkdir -p /mnt/snap
sudo mount -o ro /dev/vg_data/snap_databases /mnt/snap
# Vom Snapshot sichern
sudo tar czf /backup/databases-$(date +%Y%m%d).tar.gz -C /mnt/snap .
# Aushaengen und Snapshot entfernen
sudo umount /mnt/snap
sudo lvremove /dev/vg_data/snap_databases
Aus einem Snapshot wiederherstellen
# Einen Snapshot zurueck ins Original zusammenfuehren (Rollback)
sudo lvconvert --merge /dev/vg_data/snap_databases
Hinweis: Die Zusammenfuehrung erfordert, dass das Original-Volume ausgehaengt ist (oder das System neu gestartet wird, wenn das Volume das Root-Dateisystem ist). Der Snapshot wird nach der Zusammenfuehrung automatisch geloescht.
Ueberwachung und Wartung
Speicherplatznutzung pruefen
# Nutzung der physischen Volumes
sudo pvs -o +pv_used,pv_free
# Zusammenfassung der Volume-Gruppe
sudo vgs -o +vg_free
# Details der logischen Volumes
sudo lvs -o +lv_size,seg_count
Daten zwischen physischen Volumes verschieben
Wenn Sie eine Festplatte ausser Betrieb nehmen muessen:
# Alle Extents von /dev/sdb auf andere PVs der Gruppe verschieben
sudo pvmove /dev/sdb
# Das PV aus der Volume-Gruppe entfernen
sudo vgreduce vg_data /dev/sdb
# Das PV-Label loeschen
sudo pvremove /dev/sdb
Vollstaendige Konfiguration anzeigen
# Vollstaendige Systemuebersicht
sudo lvm fullreport
Fehlerbehebung
Volume-Gruppe nach Neustart nicht gefunden
# Alle physischen Volumes scannen
sudo pvscan
# Alle Volume-Gruppen aktivieren
sudo vgchange -ay
# Wenn gefunden, initramfs aktualisieren
sudo update-initramfs -u
Snapshot laeuft voll
# Snapshot-Nutzung pruefen
sudo lvs -o +snap_percent
# Wenn sich 100% naehert, Snapshot erweitern
sudo lvextend -L +5G /dev/vg_data/snap_databases
Wenn ein Snapshot 100% Kapazitaet erreicht, wird er ungueltig und muss entfernt werden.
Volume kann nicht verkleinert werden
- XFS: Kann nicht verkleinert werden. Sie muessen sichern, das LV in kleinerer Groesse neu erstellen, das Dateisystem neu erstellen und wiederherstellen.
- ext4: Muss zuerst ausgehaengt werden. Fuehren Sie
e2fsck -fvor jeder Groessenaenderung aus. - Volume noch aktiv: Verwenden Sie
sudo umountoder pruefen Sie Prozesse, die den Mount verwenden, mitlsof +D /mount/point.
LVM-Befehlsreferenz
| Befehl | Beschreibung |
|---|---|
pvcreate | Festplatte fuer LVM initialisieren |
pvs / pvdisplay | Physische Volumes anzeigen |
vgcreate | Volume-Gruppe erstellen |
vgs / vgdisplay | Volume-Gruppen anzeigen |
vgextend | Ein PV zu einer VG hinzufuegen |
vgreduce | Ein PV aus einer VG entfernen |
lvcreate | Logisches Volume erstellen |
lvs / lvdisplay | Logische Volumes anzeigen |
lvextend -r | LV erweitern und Dateisystem vergroessern |
lvreduce -r | LV verkleinern und Dateisystem verkleinern |
lvcreate -s | Snapshot erstellen |
lvremove | Logisches Volume loeschen |
pvmove | Daten von einem physischen Volume verschieben |
Zusammenfassung
LVM ist ein unverzichtbares Werkzeug fuer die flexible Festplattenverwaltung auf Linux-Servern:
- Drei-Schichten-Architektur: Physische Volumes → Volume-Gruppen → Logische Volumes
- Erweitern Sie Volumes im laufenden Betrieb mit
lvextend -r— ohne Ausfallzeit - Fuegen Sie neue Festplatten zu bestehenden Volume-Gruppen mit
vgextendhinzu, um Ihren Speicherpool zu vergroessern - Verwenden Sie Snapshots fuer konsistente Backups auf laufenden Systemen ohne Dienste anzuhalten
- Verkleinern Sie Dateisysteme immer vor den logischen Volumes, um Datenverlust zu vermeiden
- LVM ist kein Ersatz fuer RAID — verwenden Sie es auf RAID fuer sowohl Flexibilitaet als auch Redundanz
- Ueberwachen Sie die Snapshot-Nutzung, um eine Invalidierung bei 100% Kapazitaet zu vermeiden
Fuer verwandte Themen lesen Sie unsere Anleitungen zu ZFS Storage und Snapshots und Rsync Backup und Synchronisation.