LVM unter Ubuntu: Volumes anlegen & vergrößern
LVM unter Ubuntu meistern: Physical Volumes, Volume Groups und Logical Volumes anlegen und ein Dateisystem online ohne Ausfallzeit vergrößern.
Feste Partitionen sind eine Planungsfalle: zu klein bemessen, geht der Platz aus; zu groß, verschenken Sie ihn. LVM (Logical Volume Manager) nimmt dieses Rätselraten heraus. Es schiebt eine flexible Schicht zwischen Ihre physischen Festplatten und Ihre Dateisysteme – so können Sie ein Volume vergrößern, dem Pool eine Platte hinzufügen oder Daten zwischen Platten verschieben, oft ganz ohne Ausfallzeit. Es ist dieselbe Elastizität, die Cloud-Block-Storage bietet, hier lokal unter Ubuntu umgesetzt.
Diese Anleitung baut einen LVM-Stack unter Ubuntu 24.04 von Grund auf: rohe Platten in Physical Volumes verwandeln, sie zu einer Volume Group bündeln, ein Logical Volume herauslösen, ein Dateisystem darauf anlegen und dieses dann im laufenden Betrieb vergrößern, während es eingehängt bleibt. Zum Schluss folgen Überprüfung und die typischen Stolperfallen.
Die drei LVM-Schichten
LVM kennt drei aufeinander gestapelte Konzepte. Ein Physical Volume (PV) ist eine rohe Platte oder Partition, die an LVM übergeben wird. Ein oder mehrere PVs bilden eine Volume Group (VG), einen einzigen Speicher-Pool. Aus diesem Pool weisen Sie Logical Volumes (LVs) zu, die sich wie Partitionen verhalten, die Sie formatieren und einhängen können. Die Stärke: LVs sind nicht an eine einzelne Platte gebunden und lassen sich nachträglich in der Größe ändern.
Voraussetzungen
- Ubuntu 24.04 LTS mit
sudo-Zugang. - Mindestens eine freie, ungenutzte Platte (diese Anleitung nutzt
/dev/sdbund später/dev/sdc). Alle Daten auf diesen Platten werden gelöscht. - Die LVM-Werkzeuge, meist vorinstalliert. Falls nicht:
sudo apt update && sudo apt install lvm2.
Schritt 1: Die Platten ermitteln
Listen Sie die Blockgeräte auf, um zu bestätigen, welche Platten frei sind:
lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
└─sda1 8:1 0 50G 0 part /
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 diskHier ist sda die OS-Platte; sdb und sdc sind leere 20-GB-Platten, die wir verwenden. Prüfen Sie doppelt, dass Sie nichts Wichtiges überschreiben.
Schritt 2: Ein Physical Volume erstellen
Initialisieren Sie die erste Platte als LVM-Physical-Volume:
sudo pvcreate /dev/sdb Physical volume '/dev/sdb' successfully created.Überprüfen:
sudo pvsSchritt 3: Eine Volume Group erstellen
Erstellen Sie eine VG namens data-vg, die das PV enthält:
sudo vgcreate data-vg /dev/sdbsudo vgsSchritt 4: Ein Logical Volume erstellen
Lösen Sie ein 10 GB großes Logical Volume namens web-lv aus der Gruppe heraus:
sudo lvcreate -L 10G -n web-lv data-vgUm stattdessen einen Prozentsatz des freien Platzes zu nutzen – etwa den gesamten –, verwenden Sie -l:
sudo lvcreate -l 100%FREE -n web-lv data-vgDas neue Gerät erscheint unter /dev/data-vg/web-lv (und unter einem passenden Pfad in /dev/mapper/). Bestätigen:
sudo lvsSchritt 5: Ein Dateisystem anlegen und einhängen
sudo mkfs.ext4 /dev/data-vg/web-lvEinen Einhängepunkt erstellen und mounten:
sudo mkdir -p /srv/web
sudo mount /dev/data-vg/web-lv /srv/webDamit der Mount Neustarts übersteht, tragen Sie ihn mit der UUID des LV in /etc/fstab ein. UUID ermitteln:
sudo blkid /dev/data-vg/web-lvDann eine Zeile in /etc/fstab ergänzen (UUID durch Ihre ersetzen):
UUID=xxxx-xxxx /srv/web ext4 defaults 0 2Den fstab-Eintrag ohne Neustart testen:
sudo systemctl daemon-reload
sudo mount -a
df -h /srv/webSchritt 6: Das Volume im laufenden Betrieb vergrößern (der Lohn)
Genau dafür verdient sich LVM seinen Platz. Angenommen, /srv/web läuft voll. Fügen Sie zunächst der Volume Group Kapazität hinzu, indem Sie die zweite Platte initialisieren und die VG erweitern:
sudo pvcreate /dev/sdc
sudo vgextend data-vg /dev/sdcDie VG hat nun mehr freien Platz. Erweitern Sie das Logical Volume und vergrößern Sie das Dateisystem in einem Befehl mit -r (resizefs), während es eingehängt bleibt:
sudo lvextend -r -L +15G /dev/data-vg/web-lvDas +15G fügt der aktuellen Größe 15 GB hinzu; -r führt anschließend automatisch resize2fs für ext4 aus. Um stattdessen den gesamten verbleibenden Platz zu belegen:
sudo lvextend -r -l +100%FREE /dev/data-vg/web-lvErweitern Sie das LV einmal ohne -r, vergrößern Sie das Dateisystem manuell:
sudo resize2fs /dev/data-vg/web-lvSchritt 7: Die neue Größe überprüfen
df -h /srv/web
sudo lvs
sudo vgsDie df-Ausgabe sollte das größere Dateisystem zeigen – sofort verfügbar, ohne Aushängen und ohne Neustart:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/data--vg-web--lv 25G 104M 24G 1% /srv/webBeachten Sie, wie der Device-Mapper-Name die Bindestriche in data-vg zu data--vg verdoppelt – das ist normales LVM-Escaping, kein Tippfehler.
Häufige Stolperfallen und Fehlerbehebung
- Die falsche Platte löschen.
pvcreatevernichtet Daten. Bestätigen Sie immer mitlsblk, dass die Zielplatte leer und nicht eingehängt ist. - Das Dateisystem nicht vergrößern.
lvextendallein vergrößert nur das Blockgerät; das Dateisystem bleibt gleich groß, bis Sieresize2fs(ext4) oderxfs_growfs(XFS) ausführen. Mit-rerledigen Sie beides auf einmal. - XFS lässt sich nicht verkleinern. ext4 kann (offline) verkleinert werden; XFS kann nur wachsen. Wählen Sie entsprechend, falls Sie ein Volume verkleinern könnten.
- fstab-Tippfehler führen zu Boot-Fehlern. Eine fehlerhafte Zeile in
/etc/fstabkann das System beim Booten in den Notfallmodus zwingen. Testen Sie immer mitsudo mount -avor dem Neustart und nutzen Sie UUIDs statt Gerätenamen. - VG ohne Platz. Scheitert
lvextendan zu wenigen freien Extents, fügen Sie zuerst mitpvcreate+vgextendeine Platte hinzu, wie in Schritt 6.
Fazit
LVM verleiht einem einzelnen Ubuntu-Host die Art von elastischem Speicher, die früher sorgfältige Vorab-Partitionierung erforderte: Bündeln Sie Ihre Platten, weisen Sie heute zu, was Sie brauchen, und vergrößern Sie morgen im laufenden Betrieb. Den Ablauf pvcreate → vgcreate → lvcreate → lvextend -r sollten Sie verinnerlichen.
Dieselbe Idee skaliert über ein ganzes Cluster. Verteilter Speicher wie ein Ceph-Cluster unter Ubuntu bündelt Platten über viele Knoten hinweg, und in OpenStack nutzen Sie diese Kapazität als elastische Cinder-Block-Volumes, die Sie nach Bedarf an Instanzen anhängen. Genau so liefert clouditiv ausfallsicheren, wachsenden Speicher in seiner verwalteten On-Premise-Cloud – die Flexibilität von LVM, im Rechenzentrumsmaßstab, ohne dass Sie Platten hüten müssen.