LVM on SUSE: Enterprise Storage Management (Artikel 151)
Konfiguration und Verwaltung von Logical Volumes unter SUSE. Erfahren Sie alles über die Kombination von LVM mit Btrfs und XFS sowie das Management via YaST LVM.
# LVM on SUSE: Flexibilität unter dem Standard-Layout
TL;DR / Management Summary Obwohl SUSE standardmäßig auf Btrfs setzt, ist LVM (Logical Volume Manager) weiterhin das Rückgrat für viele Enterprise-Setups, besonders bei der Nutzung von XFS für Datenbanken oder beim Management von großen Storage-Arrays. Ein Senior Admin nutzt den YaST LVM Manager, um Volume Groups über mehrere SAN-LUNs zu spannen und Snapshots für Applikationen zu erstellen, die kein Btrfs unterstützen.
# 1. Einführung & Architektur
Das Schichtenmodell unter SUSE.
In SUSE wird LVM oft als Unterbau für Dateisysteme genutzt, die kein natives Volume-Management mitbringen (wie XFS oder Ext4).
# Die Hierarchie (Mermaid)
graph TD
A[Hardware: SAN / Local Disk] --> B[Physical Volume: PV]
B --> C[Volume Group: VG system_vg]
C --> D[Logical Volume: lv_root - Btrfs]
C --> E[Logical Volume: lv_data - XFS]
C --> F[Logical Volume: lv_swap]
D --> G[OS / Subvolumes]
E --> H[Database / Apps]
# 2. LVM Management mit YaST
Der visuelle Weg.
Das Modul yast2 lvm ist Teil des Expert Partitioners.
# Volume Group erstellen
sudo yast2 lvm.- Wählen Sie die freien Partitionen/Platten aus und fügen Sie diese einer neuen Volume Group hinzu.
- Erstellen Sie darauf Logical Volumes.
- Vorteil: YaST berechnet automatisch die korrekten Offsets und stellt sicher, dass die Boot-Parameter (initrd) angepasst werden.
# 3. Besonderheit: Btrfs über LVM
Zwei Welten kombinieren.
Manchmal wird SLES so installiert, dass das Btrfs-Root-Dateisystem in einem LVM-Volume liegt.
- Warum?: Um die Flexibilität von LVM (Disk-übergreifend) mit den Snapshots von Btrfs zu kombinieren.
- Achtung: Doppeltes Snapshotting (LVM Snapshots + Btrfs Snapshots) sollte vermieden werden, da es unübersichtlich ist und Performance kostet.
# 4. Day-2 Operations: Resizing in SUSE
Kapazität anpassen.
# LV vergrößern via CLI
# 1. VG erweitern (falls nötig)
vgextend data_vg /dev/sdc
# 2. LV vergrößern und Dateisystem anpassen
lvextend -r -L +20G /dev/data_vg/lv_data
Das Flag -r (resizefs) erkennt in SUSE automatisch, ob XFS, Ext4 oder Btrfs vorliegt und führt den passenden Befehl aus.
# 5. Troubleshooting & “War Stories”
Wenn die Metadaten hängen.
# Story 1: “Der Boot-Hänger nach VG-Umbenennung”
Symptom: Ein Admin benennt die System-VG um (vgrename). Nach dem Reboot landet der Server in der Grub-Rescue Shell.
Ursache: Der Bootloader und das Initramfs suchen nach dem alten Namen.
Lösung: Nutzen Sie für solche Operationen immer YaST. Es führt im Hintergrund mkinitrd und grub2-mkconfig aus, damit die neuen Namen überall bekannt sind.
# Story 2: “Duplicate PV Warning”
Symptom: pvs zeigt Warnungen über doppelte UUIDs an.
Ursache: Eine LUN wurde via Multipath doppelt erkannt (einmal pro Pfad) oder eine Disk wurde 1:1 geklont.
Lösung: Konfigurieren Sie den LVM-Filter in /etc/lvm/lvm.conf, um Multipath-Devices zu bevorzugen und die rohen Devices zu ignorieren: filter = [ "a|/dev/mapper/.*|", "r|.*|" ].
# 6. Fazit & Empfehlung
- Datenbanken: Nutzen Sie XFS auf LVM für maximale I/O Performance bei relationalen DBs.
- System: Nutzen Sie das Standard Btrfs-Layout ohne LVM für die Root-Partition, um die Komplexität gering zu halten.
- Snapshots: Nutzen Sie LVM-Snapshots nur für Applikationen, die kein natives Snapshotting unterstützen.
# Anhang: Cheatsheet
| Aufgabe | SUSE / LVM Befehl |
|---|---|
| PV scannen | pvscan |
| VG Details | vgdisplay |
| LV erstellen | lvcreate -L 10G -n mylv myvg |
| LV Snapshot | lvcreate -L 1G -s -n mysnap /dev/myvg/mylv |
| Alles löschen | lvremove, vgremove, pvremove |
| YaST Modul | yast2 lvm |
| Metadata Check | pvck /dev/sda2 |