LVM – Logical Volume Manager unter Linux einrichten und verwalten | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

303 Dokumentationen verfügbar

Wissensdatenbank

LVM Logical Volume Manager Linux Tutorial

Zuletzt aktualisiert: 05.04.2026 um 19:42 Uhr

LVM – Logical Volume Manager unter Linux einrichten und verwalten

Was ist LVM und warum sollte man es nutzen?

LVM (Logical Volume Manager) ist ein System zur Abstraktion und Virtualisierung von physischen Festplatten und Partitionen. Anstatt direkt mit Partitionen zu arbeiten, erstellt man Logical Volumes (LV), die flexible Größe haben und über mehrere physische Disks verteilt sein können. LVM ermöglicht es, Speicher dynamisch zu verwalten, ohne Downtime zu verursachen.

Hauptvorteile von LVM

  • Flexible Speicherverwaltung: LVs können online vergrößert und verkleinert werden (für ext4, XFS)
  • Online-Erweiterung ohne Neustart: Neue Disks hinzufügen und Volumes erweitern während das System läuft
  • Snapshots: Point-in-Time Kopien ohne zusätzliche physische Speicherung, ideal für Backups
  • Migration: Daten zwischen Disks migrieren ohne Ausfallzeit
  • Redundanz: RAID-ähnliche Funktionen ohne Hardware-RAID-Controller
  • Mehrere Disks kombinieren: Ein LV kann über mehrere physische Disks verteilt sein
  • Thin Provisioning: Mehr Speicher zuteilen als physisch vorhanden ist

LVM Architektur und Konzepte

LVM basiert auf einer hierarchischen Struktur aus vier Ebenen. Hier ist die grundlegende Architektur:

Physical Disks (/dev/sdb, /dev/sdc, etc.)
        |
        V
Physical Volumes (PV) - /dev/sdb1, /dev/sdc1
        |
        V
Volume Groups (VG) - data-vg, backup-vg
        |
        V
Logical Volumes (LV) - data-lv, backup-lv, logs-lv
        |
        V
Filesystems (ext4, xfs, btrfs, etc.)
        |
        V
Mount Points (/mnt/data, /var/backup, etc.)

Schlüsselkonzepte erklärt

  • Physical Volume (PV): Eine Festplattenpartition oder ganze Disk, die LVM zur Verwendung initialisiert wird. Mehrere PVs bilden einen Speicher-Pool.
  • Volume Group (VG): Ein logischer Speicher-Pool aus einem oder mehreren PVs. Aus einer VG können mehrere LVs erstellt werden.
  • Logical Volume (LV): Ein virtuelles Volume wie eine normale Festplattenpartition, aber mit flexibler Größe. LVs werden aus VG-Space erstellt.
  • Physical Extent (PE): Die kleinste Allokationseinheit in einer VG (standardmäßig 4 MB). Ein LV besteht aus mehreren dieser PEs.
  • Logical Extent (LE): Die Zuordnung eines PE zu einem LV.
💡 Tipp: LVM ist ideal für Server mit variablem Speicherbedarf. Der Performance-Overhead ist minimal (unter 1%). Ubuntu und die meisten Linux-Distributionen unterstützen LVM nativ seit Jahren.

Installation von LVM

Installieren Sie das LVM2-Paket, das alle notwendigen Tools enthält:

sudo apt update
sudo apt install -y lvm2

Überprüfen Sie die Installation:

lvm version

Die Ausgabe sollte die Versionsnummer und "LVM version" anzeigen.

Schritt 1: Festplatten vorbereiten

Listen Sie alle verfügbaren Block-Geräte auf, um zu sehen, welche Disks zur Verfügung stehen:

lsblk
fdisk -l

Für dieses Beispiel verwenden wir /dev/sdb (eine zusätzliche Festplatte). Partitionieren Sie die Disk mit fdisk:

sudo fdisk /dev/sdb

Folgen Sie diesen Schritten im interaktiven fdisk-Menü:

Command (m for help): n              # Neue Partition erstellen
Partition type (p for primary): p    # Primäre Partition
Partition number (1-4, default 1): 1 # Partitionsnummer 1
First sector: [Enter]                # Standard akzeptieren (erste verfügbar)
Last sector: [Enter]                 # Standard akzeptieren (ganze Disk)

Command (m for help): t              # Partitionstyp ändern
Partition number (1-4): 1            # Partition 1
Hex code (type L to list all codes): 8e # LVM-Typ (8e ist Linux LVM)

Command (m for help): w              # Änderungen schreiben und beenden

Überprüfen Sie die neue Partition:

sudo lsblk /dev/sdb
sudo fdisk -l /dev/sdb

Sie sollten /dev/sdb1 mit Typ "Linux LVM" sehen.

Schritt 2: Physical Volume (PV) erstellen

Initialisieren Sie die Partition als Physical Volume für LVM:

sudo pvcreate /dev/sdb1

Überprüfen Sie den erstellten Physical Volume:

sudo pvdisplay

Dies zeigt alle PVs mit Details. Oder verwenden Sie die kompakte Ansicht:

sudo pvs

Detaillierte Informationen für einen spezifischen PV:

sudo pvdisplay /dev/sdb1

Schritt 3: Volume Group (VG) erstellen

Erstellen Sie eine Volume Group aus einem oder mehreren Physical Volumes:

sudo vgcreate data-vg /dev/sdb1

Dies erstellt eine VG namens "data-vg" mit dem PV /dev/sdb1. Überprüfen Sie:

sudo vgdisplay
sudo vgs

Detaillierte Informationen:

sudo vgdisplay data-vg

Die Ausgabe zeigt verfügbare Space, Anzahl PEs, PE-Größe (standardmäßig 4 MB) und andere Details.

Schritt 4: Logical Volume (LV) erstellen

Erstellen Sie ein Logical Volume innerhalb der Volume Group:

sudo lvcreate -L 20G -n data-lv data-vg

Dies erstellt ein LV namens "data-lv" mit 20 GB Größe in der VG "data-vg". Alternativ können Sie eine prozentuale Größe verwenden:

sudo lvcreate -l 50%VG -n data-lv data-vg

Dies würde 50% des gesamten VG-Space verwenden. Überprüfen Sie die neuen LVs:

sudo lvdisplay
sudo lvs

Das neue LV ist unter /dev/data-vg/data-lv oder /dev/mapper/data--vg-data--lv verfügbar.

Schritt 5: Dateisystem erstellen und mounten

Erstellen Sie ein Dateisystem auf dem Logical Volume (ext4 ist am weitesten verbreitet):

sudo mkfs.ext4 /dev/data-vg/data-lv

Oder für XFS (bessere Performance bei großen Volumes):

sudo mkfs.xfs /dev/data-vg/data-lv

Erstellen Sie ein Mount-Verzeichnis:

sudo mkdir -p /mnt/data

Mounten Sie das Volume:

sudo mount /dev/data-vg/data-lv /mnt/data

Überprüfen Sie das Mounting:

lsblk
df -h /mnt/data

Um das Mount persistent zu machen, fügen Sie es zu /etc/fstab hinzu:

sudo nano /etc/fstab

Fügen Sie diese Zeile am Ende hinzu:

/dev/data-vg/data-lv /mnt/data ext4 defaults,nofail 0 2

Speichern Sie die Datei und testen Sie, ob die Konfiguration korrekt ist:

sudo mount -a

Schritt 6: Neue Disk zu Volume Group hinzufügen

Wenn Sie mehr Speicher benötigen, können Sie neue Disks zur bestehenden VG hinzufügen, ohne bestehende LVs zu beeinflussen.

Bereiten Sie die neue Disk vor (z.B. /dev/sdc):

sudo fdisk /dev/sdc
# Wiederholen Sie die Schritte vom Step 1 (neue Partition mit Typ 8e)

Erstellen Sie einen PV auf der neuen Partition:

sudo pvcreate /dev/sdc1

Erweitern Sie die VG mit dem neuen PV:

sudo vgextend data-vg /dev/sdc1

Überprüfen Sie die erweiterte VG:

sudo vgdisplay data-vg
sudo pvs

Schritt 7: Logical Volume erweitern (Online-Erweiterung)

Das ist einer der Hauptvorteile von LVM - Sie können ein LV erweitern OHNE es zu unmounten:

sudo lvextend -L +10G /dev/data-vg/data-lv

Das LV ist nun vergrößert, aber das Dateisystem muss auch erweitert werden:

sudo resize2fs /dev/data-vg/data-lv

Für XFS verwenden Sie xfs_growfs:

sudo xfs_growfs /mnt/data

Überprüfen Sie das Ergebnis:

sudo lvs
df -h /mnt/data

Alle verfügbaren Space verwenden

Um alle freien Space in der VG zu verwenden:

sudo lvextend -l +100%FREE /dev/data-vg/data-lv
sudo resize2fs /dev/data-vg/data-lv
✅ Gut zu wissen: Sie können LVs online erweitern, ohne Downtime oder Neustart zu verursachen. Dies ist einer der Hauptvorteile von LVM gegenüber fixen Partitionen.

Schritt 8: Logical Volume verkleinern (mit Vorsicht)

⚠️ Wichtig: Das Verkleinern eines LV ist ein riskanter Prozess! Sie können Daten verlieren. Sichern Sie IMMER Ihre Daten vollständig vor dieser Operation.

Um ein LV zu verkleinern, müssen Sie mehrere Schritte in der richtigen Reihenfolge durchführen:

1. Unmounten Sie das Dateisystem:

sudo umount /mnt/data

2. Überprüfen Sie das Dateisystem auf Fehler:

sudo e2fsck -f /dev/data-vg/data-lv

3. Verkleinern Sie das Dateisystem (nicht das LV!) - z.B. auf 15 GB:

sudo resize2fs /dev/data-vg/data-lv 15G

4. Verkleinern Sie dann das LV selbst:

sudo lvreduce -L 15G /dev/data-vg/data-lv

5. Mounten Sie es wieder:

sudo mount /dev/data-vg/data-lv /mnt/data

6. Überprüfen Sie die neue Größe:

df -h /mnt/data
sudo lvs

Schritt 9: Snapshots erstellen und verwalten

Snapshots erstellen eine Point-in-Time-Kopie eines LV für schnelle Backups oder Tests, ohne zusätzliche physische Speicherung.

Snapshot erstellen

Erstellen Sie einen Snapshot des data-lv:

sudo lvcreate -s -n data-snap -L 5G /dev/data-vg/data-lv

Dies erstellt einen Read-Only Snapshot namens "data-snap" mit 5 GB Space für Änderungen am Original-LV während der Snapshot existiert.

Überprüfen Sie die Snapshots:

sudo lvs -o lv_name,lv_size,pool_lv /dev/data-vg/

Snapshot mounten (Read-Only)

Sie können einen Snapshot als Read-Only Filesystem mounten, um von einem bestimmten Zeitpunkt zu arbeiten:

sudo mkdir -p /mnt/data-snap
sudo mount -o ro /dev/data-vg/data-snap /mnt/data-snap

Jetzt können Sie Dateien vom Snapshot kopieren, wiederherstellen oder überprüfen, ohne das Original zu beeinflussen.

Snapshot löschen

Wenn Sie den Snapshot nicht mehr benötigen:

sudo umount /mnt/data-snap
sudo lvremove /dev/data-vg/data-snap

Aus Snapshot wiederherstellen (Rollback)

Um den gesamten LV zu seinem Snapshot-Zustand zurückzufahren:

sudo umount /mnt/data
sudo lvconvert --merge /dev/data-vg/data-snap

Das LV wird beim nächsten Mounten zum Snapshot-Zustand zurückgesetzt. Der Snapshot wird nach dem Merge gelöscht.

Schritt 10: Logical Volumes entfernen

Um ein LV zu entfernen, müssen Sie es zuerst unmounten:

sudo umount /mnt/data
sudo lvremove /dev/data-vg/data-lv

Um eine ganze Volume Group zu entfernen (alle LVs müssen zuerst gelöscht sein):

sudo vgremove data-vg

Um Physical Volumes zu entfernen:

sudo pvremove /dev/sdb1

Praktisches Szenario: Server-Disk fast voll

Ein reales Beispiel für die Verwendung von LVM zum Beheben eines vollen Dateisystems:

Das Problem

Ihr /data-Partition ist zu 95% voll und Sie benötigen schnell mehr Speicher, ohne Downtime zu verursachen oder das System neu zu partitionieren.

Die Lösung mit LVM

1. Neue Festplatte an Server anschließen (/dev/sdc)

2. Physical Volume erstellen:

sudo pvcreate /dev/sdc1

3. Zur bestehenden VG hinzufügen:

sudo vgextend data-vg /dev/sdc1

4. LV online erweitern um 100 GB:

sudo lvextend -L +100G /dev/data-vg/data-lv

5. Dateisystem erweitern (während es mounted ist!):

sudo resize2fs /dev/data-vg/data-lv

6. Überprüfen Sie das Ergebnis:

df -h /mnt/data

Fertig! Alles ist erledigt - KEIN Neustart erforderlich! Die Benutzer erleben KEINE Downtime und der Speicher ist sofort verfügbar.

LVM Thin Provisioning

Thin Provisioning ermöglicht es, mehr Speicher zuzuteilen, als physisch vorhanden ist. Der Speicher wird nur bei Bedarf tatsächlich verwendet.

Erstellen Sie einen Thin Pool:

sudo lvcreate -L 100G --thinpool tp_data data-vg

Erstellen Sie LVs aus dem Thin Pool:

sudo lvcreate -V 50G -T data-vg/tp_data -n thin-lv1
sudo lvcreate -V 75G -T data-vg/tp_data -n thin-lv2

Dies erstellt zwei LVs mit zusammen 125 GB Größe, obwohl der Pool nur 100 GB hat. Der Speicher wird bei tatsächlicher Verwendung aus dem Pool allokiert. Dies ist sehr nützlich für virtuelle Maschinen oder Container mit variablem Speicherbedarf.

Vergleich: LVM vs Plain Partitions vs ZFS

Feature LVM Plain Partitions (fdisk) ZFS
Online-Erweiterung Ja (sehr einfach) Nein (Neustart nötig) Ja (native)
Online-Verkleinerung Ja (mit Vorsicht) Nein (sehr kompliziert) Ja
Snapshots Ja (Copy-on-Write) Nein Ja (native)
Mehrere Disks kombinieren Ja (flexibel) Nein (einzelne Partitionen) Ja (native Pools)
Dateisystem-Checksummen Nein (vom FS abhängig) Nein (vom FS abhängig) Ja (SHA-256 native)
Komplexität Mittel (lernenswert) Einfach Komplex (viele Features)
Hardwareunterstützung Alle Linux-Systeme Alle Betriebssysteme Linux, BSD, Solaris
Performance Gut (minimal Overhead) Sehr gut (kein Overhead) Ausgezeichnet (mit ARC)
Lizenz GPL (kostenlos) N/A CDDL
Best für Linux-Server, Flexibilität Einfache Setups, USB-Sticks High-End Storage, NAS

Wichtigste LVM-Befehle Übersicht

Befehl Funktion
sudo pvcreate /dev/sdb1 Physical Volume erstellen
sudo pvdisplay Alle PVs anzeigen (detailliert)
sudo pvs Alle PVs anzeigen (kompakt)
sudo vgcreate vg-name /dev/sdb1 Volume Group erstellen
sudo vgdisplay Alle VGs anzeigen (detailliert)
sudo vgs Alle VGs anzeigen (kompakt)
sudo vgextend vg-name /dev/sdc1 VG mit neuem PV erweitern
sudo lvcreate -L 20G -n lv-name vg-name Logical Volume (20 GB) erstellen
sudo lvdisplay Alle LVs anzeigen (detailliert)
sudo lvs Alle LVs anzeigen (kompakt)
sudo lvextend -L +10G /dev/vg-name/lv-name LV um 10 GB erweitern
sudo resize2fs /dev/vg-name/lv-name Ext4-Dateisystem erweitern
sudo xfs_growfs /mount/point XFS-Dateisystem erweitern
sudo lvreduce -L 15G /dev/vg-name/lv-name LV verkleinern (mit Vorsicht!)
sudo lvcreate -s -n snap-name -L 5G /dev/vg-name/lv-name Snapshot erstellen
sudo lvremove /dev/vg-name/lv-name LV entfernen
sudo vgremove vg-name VG entfernen (LVs müssen weg)
sudo pvremove /dev/sdb1 PV entfernen

Best Practices und Tipps

  • Immer Backups vor Verkleinerung: Sichern Sie IMMER Ihre Daten, bevor Sie LVs verkleinern. Dies ist eine gefährliche Operation.
  • Snapshot-Größe berechnen: Ein Snapshot sollte 30-50% der LV-Größe sein, um alle Änderungen am Original-LV zu speichern.
  • Aussagekräftige Naming Convention: Verwenden Sie beschreibende Namen (z.B. "data-lv", "backup-lv", "logs-lv") statt "lv1", "lv2".
  • Regelmäßig monitoren: Überprüfen Sie die Auslastung mit: watch -n 1 'lvs; echo; vgs'
  • Space-Puffer halten: Halten Sie immer 10-20% freien Space in VGs für Operationen und Snapshots.
  • Dokumentation führen: Dokumentieren Sie Ihre LVM-Struktur für zukünftige Wartung (z.B. welche LVs welchen Services entsprechen).
  • Ext4 über XFS: Für ext4 können Sie Dateisysteme online vergrößern und verkleinern. XFS kann nur vergrößert werden.

Fehlerbehebung

LV wird beim Boot nicht gemountet

Überprüfen Sie /etc/fstab auf Fehler und führen Sie aus:

sudo mount -a

Falls Fehler auftreten, überprüfen Sie die Device-Pfade und stellen Sie sicher, dass lvm2 installiert ist.

VG zeigt fehlende Physical Volumes

Wenn ein PV ausfällt, können Sie es entfernen:

sudo vgdisplay
sudo vgreduce --removemissing data-vg

Snapshot ist voll

Snapshots haben endliche Größe. Wenn der Snapshot voll ist, können Sie ihn löschen oder erweitern:

sudo lvextend -L +5G /dev/data-vg/data-snap

Keine freie Space in VG für Erweiterung

Überprüfen Sie freie Space und fügen Sie ggf. neue Disks hinzu:

sudo vgs
sudo vgextend data-vg /dev/sdd1

Zusammenfassung

LVM ist ein mächtiges und flexibles Werkzeug für Speicherverwaltung unter Linux. Mit LVM können Sie Ihre Infrastruktur agiler gestalten, ohne physische Umpartitionierung oder Neustarts durchzuführen. Die grundlegende Hierarchie ist: Physical Volumes → Volume Groups → Logical Volumes → Filesystems. Starten Sie mit einfachen Setups und erweitern Sie schrittweise nach Bedarf.

Die Hauptvorteile sind Online-Erweiterung, Snapshots für Backups und die Flexibilität, mehrere Disks zu kombinieren. Mit LVM sparen Sie Zeit und vermeiden teure Downtime bei Speichererweiterungen.

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120