--- type: types/entity.md entity_type: technology tags: [storage, volume-management, linux, disks] created: 2026-07-31 modified: 2026-08-29 related: - runs-on: Arch Linux - see-also: Disk Encryption sources: [Source - Arch Linux Cheat Sheet] provenance: sourced summary: Device-Mapper-Framework unter Linux für flexible Datenträgerverwaltung mit Logical Volumes, Snapshots und Online-Vergrößerung jenseits klassischer Partitionierung. --- # LVM **Typ:** technology ## Beschreibung Logical Volume Manager (LVM) ist ein Device-Mapper-Framework für Linux, das eine logische Volumenverwaltung für Festplattenspeicher bietet. Es ermöglicht flexible Speicherzuweisung, Größenänderung und Verwaltung über die Grenzen traditioneller Partitionierungsschemata hinaus. ## Kerndaten - **Vollständiger Name:** Logical Volume Manager - **Zweck:** Flexible Disk-Speicherverwaltung - **Status:** Aktiv, reife Technologie - **Kernel-Komponente:** Device Mapper - **Upstream:** Teil des Linux-Kernels - **Paket:** `lvm2` in den meisten Distributionen ## Komponenten ### Physical Volumes (PV) Roh-Speichergeräte oder Partitionen, die für LVM-Nutzung initialisiert werden. Dies sind die Bausteine von LVM-Speicherpools. ### Volume Groups (VG) Sammlungen von physischen Volumes, die einen Speicherpool bilden. Mehrere PVs können in einem einzigen VG kombiniert werden. ### Logical Volumes (LV) Virtuelle Partitionen, die aus Volume Groups erstellt werden. LVs erscheinen dem System als normale Block-Geräte. ## Funktionen - **Flexible Größenanpassung:** Größe von Volumes online ändern (auch während des Betriebs) - **Dynamische Zuweisung:** Speicher nach Bedarf zuweisen - **Snapshots:** Zeitpunktgenaue Kopien von Volumes erstellen - **Thin Provisioning:** Speicher bei Bedarf zuweisen - **Striping:** Daten auf mehrere Festplatten für Leistung verteilen - **Mirroring:** Redundante Kopien für Zuverlässigkeit erstellen ## Häufige Befehle ### Physical Volumes ```bash # Initialize a disk or partition as PV pvcreate /dev/sdX1 # Display PV information pvdisplay pvs # Remove PV pvremove /dev/sdX1 ``` ### Volume Groups ```bash # Create VG from one or more PVs vgcreate myvg /dev/sdX1 /dev/sdX2 # Display VG information vgdisplay vgs # Extend VG with additional PV vgextend myvg /dev/sdX3 # Remove VG vgremove myvg ``` ### Logical Volumes ```bash # Create LV lvcreate -n mylv -L 10G myvg # Display LV information lvdisplay lvs # Resize LV lvresize -L +5G myvg/mylv lvresize -L 15G myvg/mylv # Remove LV lvremove myvg/mylv ``` ## Ändern der Größe verschlüsselter LVM-Disks Bei Verwendung von LVM mit LUKS-Verschlüsselung (häufige Konfiguration) ist der vollständige Größenänderungs-Workflow: **Example from [[Source - Arch Linux Cheat Sheet]]:** ```bash # 1. Expand the disk in virtualization layer (ESXi, etc.) # 2. Rescan SCSI bus to see expanded disk echo "1" > /sys/class/block/sdb/device/rescan # 3. Verify disk size fdisk -l /dev/xyz # 4. Check LUKS status cryptsetup status crypted # 5. Resize LUKS container cryptsetup resize crypted # 6. Verify LUKS status cryptsetup status crypted # 7. Resize LVM Physical Volume pvresize /dev/mapper/crypted # 8. Verify PV size pvdisplay # 9. Allocate additional space to Logical Volume lvresize -L+750g /dev/isp/owncloud # 10. Verify LV size lvs # 11. Resize filesystem resize2fs /dev/mapper/isp-owncloud # 12. Verify df -h ``` ## Snapshot-Verwaltung ```bash # Create snapshot lvcreate -L 1G -s -n mysnap /dev/myvg/mylv # Mount snapshot (read-only) mount /dev/myvg/mysnap /mnt/snapshot # Remove snapshot lvremove /dev/myvg/mysnap ``` ## Thin Provisioning ```bash # Create thin pool lvcreate -L 100G --thinpool mypool myvg # Create thin LV lvcreate -V 10G --thin mypool -n mythinlv ``` ## Beziehungen - **Verwendet mit:** [[Disk Encryption]] (dm-crypt/LUKS) für verschlüsselte Volumes - **Läuft auf:** [[Arch Linux]] und andere Linux-Distributionen und andere Infrastruktur - **Teil von:** Speicherverwaltung in Linux-Systemen ## Bewährte Praktiken 1. **Aussagekräftige Namen verwenden:** VG- und LV-Namen sollten ihren Zweck beschreiben 2. **Freien Speicher überwachen:** `vgs` und `lvs` regelmäßig verwenden 3. **Metadaten sichern:** `vgcfgbackup` und `vgcfgrestore` 4. **Partitionen ausrichten:** Richtige Ausrichtung für SSDs verwenden (normalerweise 1 MiB) 5. **Redundanz erwägen:** Mirroring für kritische Daten verwenden ## Siehe auch - [[Disk Encryption]] - dm-crypt/LUKS für verschlüsselte LVM - [[Arch Linux]] - Distribution mit LVM-Unterstützung - [[Source - Arch Linux Cheat Sheet]] - https://wiki.archlinux.org/title/LVM - https://sourceware.org/lvm2/ ## Beziehungen - **runs-on:** [[Arch Linux]] - **see-also:** [[Disk Encryption]]