18ae28f918
Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki: raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren Grenzen in Code durchgesetzt sind statt im Prompt. Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44 Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist. Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs. Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte. Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet - siehe NOTICE.
189 lines
4.6 KiB
Markdown
189 lines
4.6 KiB
Markdown
---
|
|
type: types/entity.md
|
|
entity_type: technology
|
|
tags: [storage, volume-management, linux, disks]
|
|
created: 2026-07-31
|
|
modified: 2026-08-29
|
|
related: [Arch Linux, Disk Encryption, AUR]
|
|
sources: [Source - Arch Linux Cheat Sheet]
|
|
confidence: 0.90
|
|
confidence_base: 0.90
|
|
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/
|