TL;DR — Kurzzusammenfassung

LVM-Anleitung für Linux: logische Volumes erweitern, Disks hinzufügen, Dateisysteme vergrößern und Root-Partitionen in Cloud-VMs ohne Neustart ausdehnen.

Die Verwaltung von Speicher auf Linux-Produktionsservern bedeutet, dass Sie früher oder später mit einem vollen Disk konfrontiert werden. Der Logical Volume Manager (LVM) wurde genau für diesen Moment entwickelt: Er ermöglicht das Online-Erweitern, Verkleinern, Erstellen von Snapshots und Migrieren von Speicher — oft ohne jegliche Ausfallzeit. Diese Anleitung deckt den vollständigen LVM-Workflow ab, von den Architekturgrundlagen bis zur Root-Partition-Erweiterung in Cloud-VMs, mit echten Befehlen die Sie sofort ausführen können.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher dass Sie haben:

  • Ein Linux-System mit installiertem lvm2 (apt install lvm2 oder dnf install lvm2)
  • Root- oder sudo-Zugriff
  • Grundlegende Vertrautheit mit Linux-Block-Geräten (lsblk, fdisk, df)
  • Für Cloud-Szenarien: Möglichkeit, den Disk im Azure-Portal oder in der AWS-Konsole zu skalieren, bevor Sie Linux anfassen

LVM-Architektur: PV → VG → LV

LVM fügt drei Abstraktionsschichten zwischen physische Disks und das Dateisystem ein:

SchichtBefehlspräfixBeschreibung
Physical Volume (PV)pv*Eine rohe Disk oder Partition, die für LVM initialisiert wurde (pvcreate)
Volume Group (VG)vg*Ein Pool aus einem oder mehreren PVs (vgcreate, vgextend)
Logical Volume (LV)lv*Ein Ausschnitt des VG-Speicherplatzes, der wie eine Partition fungiert (lvcreate, lvextend)

Das Dateisystem (ext4, XFS usw.) befindet sich innerhalb eines LV. Das Betriebssystem sieht den LV als Block-Gerät (z.B. /dev/myvg/data) und hat keine Kenntnis von den zugrunde liegenden physischen Disks. Diese Indirektion ermöglicht Online-Skalierung und transparente Migration zwischen Disks.

Aktuelles LVM-Layout prüfen

Beginnen Sie immer damit, zu verstehen was Sie haben:

# Alle Physical Volumes auflisten
pvs

# Alle Volume Groups auflisten
vgs

# Alle Logical Volumes auflisten
lvs

# Vollständige Details einer bestimmten VG
vgdisplay myvg

# Vollständige Details eines bestimmten LV
lvdisplay /dev/myvg/mylv

# Block-Gerätebaum anzeigen
lsblk

# Eingehängte Dateisystemnutzung anzeigen
df -h

Die Spalte PFree in der Ausgabe von pvs zeigt den nicht zugewiesenen Speicher in der VG — das ist es, wovon lvextend schöpft.

Neue Disk als Physical Volume hinzufügen

Wenn Sie eine neue Disk anschließen (z.B. /dev/sdb in einer VM oder eine neue EBS/Managed Disk), initialisieren Sie diese als PV:

# Bestätigen, dass der Kernel die neue Disk sieht
lsblk

# Disk als Physical Volume initialisieren
pvcreate /dev/sdb

# Überprüfen
pvs

Sie müssen die Disk nicht zuerst partitionieren — die gesamte Disk (/dev/sdb) zu verwenden ist gültig und einfacher.

VG und LV erweitern

Schritt 1 — PV zur VG hinzufügen

vgextend myvg /dev/sdb

Schritt 2 — LV erweitern

Den gesamten verbleibenden freien Speicher der VG verbrauchen:

lvextend -l +100%FREE /dev/myvg/mylv

Eine feste Menge hinzufügen (z.B. 10 GB):

lvextend -L +10G /dev/myvg/mylv

Das Flag -r kombiniert lvextend mit der Dateisystem-Skalierung in einem Schritt (funktioniert für ext4 und XFS):

lvextend -l +100%FREE -r /dev/myvg/mylv

Dateisystem skalieren

Nach der Erweiterung des LV muss das Dateisystem über den neuen Speicher informiert werden. Dieser Schritt ist auf einem eingehängten, aktiven Dateisystem sicher.

ext4 (die meisten Ubuntu/Debian-Systeme)

resize2fs /dev/myvg/mylv

Kein Größenargument erforderlich — resize2fs füllt den gesamten LV. Kann mit eingehängtem Dateisystem ausgeführt werden.

XFS (die meisten RHEL/CentOS/Rocky-Systeme)

XFS verwendet den Einhängepunkt, nicht das Gerät:

xfs_growfs /mountpoint
# oder für Root:
xfs_growfs /

Wichtig: XFS kann nur wachsen, nie schrumpfen. Das Verkleinern eines XFS-Dateisystems wird nicht unterstützt.

Root-Partition in Cloud-VMs erweitern (Ohne Neustart)

Dies ist das häufigste reale Szenario. Sie haben eine Cloud-VM (Azure oder AWS) deren OS-Disk knapp wird. Hier ist die vollständige Sequenz — kein Neustart erforderlich.

1. Disk in der Cloud-Konsole skalieren

  • Azure: Speicher → Disks → OS-Disk auswählen → Disk-Größe → erhöhen → Speichern
  • AWS: EC2 → Volumes → Modify Volume → neue Größe festlegen → Modify

Warten Sie, bis die Skalierung abgeschlossen ist, bevor Sie fortfahren.

2. Partition auf Linux-Seite erweitern

# Bestätigen, dass der Kernel die neue Größe sieht
lsblk

# Partition erweitern (z.B. Partition 2 auf /dev/sda)
sudo growpart /dev/sda 2

# Überprüfen, dass die Partition jetzt größer ist
lsblk

growpart befindet sich im cloud-utils- oder cloud-guest-utils-Paket. Es erweitert die Partition ohne Daten zu zerstören.

3. LVM über die neue PV-Größe informieren

sudo pvresize /dev/sda2

4. LV erweitern

sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

Ersetzen Sie ubuntu-vg / ubuntu-lv durch die tatsächlichen VG- und LV-Namen aus lvs.

5. Dateisystem vergrößern

Für ext4:

sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

Für XFS:

sudo xfs_growfs /

6. Bestätigen

df -h /

Das Root-Dateisystem zeigt jetzt die erweiterte Größe an. In keinem Schritt war ein Neustart erforderlich.

Logical Volume verkleinern (Gefährlich — Nur ext4)

Das Verkleinern ist riskanter als das Erweitern und sollte nur durchgeführt werden, wenn Sie ein aktuelles Backup haben. XFS kann nicht verkleinert werden — dieses Verfahren gilt nur für ext4.

# 1. Dateisystem aushängen (Root kann nicht live verkleinert werden)
umount /dev/myvg/data

# 2. Dateisystem vor dem Verkleinern prüfen und reparieren
e2fsck -f /dev/myvg/data

# 3. Dateisystem ZUERST verkleinern (auf Zielgröße, z.B. 20G)
resize2fs /dev/myvg/data 20G

# 4. LV entsprechend verkleinern (muss >= Dateisystemgröße sein)
lvreduce -L 20G /dev/myvg/data

# 5. Wieder einhängen
mount /dev/myvg/data /mnt/data

Warnung: Verkleinern Sie immer zuerst das Dateisystem, dann den LV. Den LV zuerst zu verkleinern zerstört Daten durch Abschneiden des Dateisystems.

LVM-Snapshots

Snapshots erfassen den Zustand eines LV zu einem bestimmten Zeitpunkt. Sie sind unverzichtbar vor riskanten Operationen (OS-Upgrades, Datenbankmigrationen).

# 5-GB-Snapshot von /dev/myvg/mylv erstellen
lvcreate --snapshot -L 5G -n mylv_snap /dev/myvg/mylv

# Snapshot nur lesend einhängen zur Inspektion
mount -o ro /dev/myvg/mylv_snap /mnt/snapshot

# Zurückrollen (Snapshot mit Ursprung zusammenführen)
lvconvert --merge /dev/myvg/mylv_snap

# Snapshot ohne Zurückrollen entfernen
lvremove /dev/myvg/mylv_snap

Daten zwischen Physical Volumes verschieben

pvmove migriert Extents zwischen PVs während der LV online bleibt. Verwenden Sie dies, um eine Disk vor der Entfernung zu leeren.

# Alle Extents von /dev/sdb zu einem anderen PV in der VG verschieben
pvmove /dev/sdb

# Nach Abschluss den PV aus der VG entfernen
vgreduce myvg /dev/sdb

# LVM-Metadaten von der Disk entfernen
pvremove /dev/sdb

LVM vs ZFS vs Btrfs vs Einfache Partitionen

FunktionLVMZFSBtrfsEinfache Partitionen
Online-ErweiterungJaJaJaNein
Online-VerkleinerungNur ext4 (aushängen)NeinJaNein
SnapshotsJa (CoW)Ja (CoW)Ja (CoW)Nein
Integriertes RAIDVia dm-raidJaJa (begrenzt)Via mdadm
Transparente KompressionNeinJaJaNein
Selbstheilung (Checksums)NeinJaTeilweiseNein
KomplexitätMittelHochMittelNiedrig
Cloud-StandardJa (RHEL/Ubuntu)Nur ProxmoxNur FedoraLegacy

Wann LVM verwenden: Sie benötigen flexible Skalierung auf Standard-Distributionen ohne ein neues Speichermodell zu erlernen.

Wann ZFS verwenden: Sie benötigen Checksums, integriertes RAID oder Kompression und sind auf Ubuntu oder einem Speichergerät.

Häufige Fallstricke

  • Dateisystem nach LV verkleinern zerstört Daten. Verkleinern Sie immer zuerst das Dateisystem.
  • Voller Snapshot = ungültiger Snapshot. Überwachen Sie die Nutzung mit lvs und erweitern Sie bei Bedarf.
  • XFS kann nicht verkleinert werden. Der Versuch schlägt mit einem klaren Fehler fehl.
  • pvresize nach Cloud-Disk-Skalierung vergessen bedeutet, dass LVM immer noch die alte PV-Größe sieht.
  • LVM Thin Pools haben separate Werkzeuge. Überprovisioning ohne Monitoring führt zu stillem Datenverlust.

Zusammenfassung

  • LVM fügt drei Schichten hinzu (PV, VG, LV) und ermöglicht flexible Online-Speicherverwaltung.
  • Verwenden Sie pvs / vgs / lvs und lsblk zur Prüfung des aktuellen Layouts vor Änderungen.
  • Erweitern ist immer sicher: pvcreate → vgextend → lvextend → resize2fs / xfs_growfs.
  • Cloud-VM-Root-Erweiterung erfordert growpart → pvresize → lvextend → resize2fs ohne Neustart.
  • Verkleinern ist nur auf ext4 möglich und erfordert Aushängen; erstellen Sie immer zuerst ein Backup.
  • Snapshots sind günstige CoW-Erfassungen — erstellen Sie einen vor jeder wichtigen Änderung.
  • XFS wächst nur; ZFS und Btrfs bieten reichhaltigere Funktionen bei höherer Komplexität.

Verwandte Artikel