Warum ZFS für Proxmox?
ZFS (Zettabyte File System) ist weit mehr als ein Dateisystem – es ist ein vollständiger Storage-Stack:
- Copy-on-Write: Schreiboperationen überschreiben nie vorhandene Daten direkt
- Checksummen: Jeder Block hat eine Prüfsumme – fehlerhafte Blöcke werden erkannt
- Selbstheilung: Bei RAID erkennt und korrigiert ZFS stille Datenkorrumptionen automatisch
- Snapshots: Sofortige, platzsparende Snapshots ohne Performanceverlust
- Komprimierung: Transparente Datenkomprimierung (lz4, zstd)
- ARC-Cache: Intelligenter RAM-Cache für häufig gelesene Daten
ZFS-Anforderungen
- RAM: ZFS benötigt ausreichend RAM für ARC-Cache. Faustregel: 1 GB RAM pro TB Storage (Minimum 8 GB empfohlen)
- ECC-RAM: Stark empfohlen für Produktionsumgebungen (schützt vor Bit-Rot im RAM)
- Festplatten: Mindestens 2 identische Festplatten für RAID
ZFS-RAID-Typen verstehen
Mirror (RAID1)
2 Festplatten, vollständig gespiegelt.
- Kapazität: 50% (2× 4 TB = 4 TB nutzbar)
- Ausfalltoleranz: 1 Festplatte
- Leseperformance: Sehr hoch (von beiden Platten gleichzeitig)
- Schreibperformance: Wie eine Festplatte
- Empfohlen für: 2-Platten-Systeme, Boot-Pools
RAIDZ1 (RAID5-ähnlich)
3+ Festplatten mit einfacher Parität.
- Kapazität: (n-1) × Plattenkapazität (3× 4 TB = 8 TB nutzbar)
- Ausfalltoleranz: 1 Festplatte
- Empfohlen für: 3–5 Platten, gutes Preis/Kapazität-Verhältnis
RAIDZ2 (RAID6-ähnlich)
4+ Festplatten mit doppelter Parität.
- Kapazität: (n-2) × Plattenkapazität (4× 4 TB = 8 TB nutzbar)
- Ausfalltoleranz: 2 Festplatten gleichzeitig
- Empfohlen für: Produktive Umgebungen, 4–8 Platten
RAIDZ3
5+ Festplatten mit dreifacher Parität.
- Ausfalltoleranz: 3 Festplatten
- Empfohlen für: Große Pools (8+ Platten) wo Rebuild-Zeit lang ist
RAID10 (Striped Mirror)
4+ Festplatten, gespiegelte Paare werden gestriped.
- Kapazität: 50% der Gesamtkapazität
- Ausfalltoleranz: 1 Festplatte pro Mirror-Paar
- Beste Performance: Optimale Kombination aus Speed und Redundanz
- Empfohlen für: Performance-kritische Workloads
ZFS-Pool während der Proxmox-Installation erstellen
Beim Proxmox-Setup (Schritt 3: Target Disk → Options):
- Filesystem: ZFS (RAID1 / RAIDZ-1 / RAIDZ-2 / RAIDZ-3 / RAID10)
- Alle Festplatten auswählen
- ASHIFT: 12 für 4K-Sektorfestplatten und SSDs (Standard 9 für 512B-Sektoren)
ZFS-Pool nach der Installation erstellen
Falls Sie ZFS-Pools für VM-Storage (nicht Boot) hinzufügen wollen:
Pool erstellen
Mirror (2 Festplatten):zpool create -o ashift=12 vm-pool mirror /dev/sdb /dev/sdc
RAIDZ1 (3 Festplatten):zpool create -o ashift=12 vm-pool raidz /dev/sdb /dev/sdc /dev/sdd
RAIDZ2 (4 Festplatten):zpool create -o ashift=12 vm-pool raidz2 /dev/sdb /dev/sdc /dev/sdd /dev/sde
RAID10 (4 Festplatten):zpool create -o ashift=12 vm-pool mirror /dev/sdb /dev/sdc mirror /dev/sdd /dev/sde
WICHTIG: Verwenden Sie Disk-IDs statt Devicenamen (/dev/sdb kann sich nach Reboot ändern):
ls /dev/disk/by-id/zpool create vm-pool mirror /dev/disk/by-id/ata-WDC_WD4000_... /dev/disk/by-id/ata-Seagate_...
Komprimierung aktivieren (empfohlen)
zfs set compression=lz4 vm-pool
lz4 bietet beste Performance/Kompression-Balance.
Pool in Proxmox als Storage hinzufügen
pvesm add zfspool vm-zfs --pool vm-pool --sparse
Oder in der Weboberfläche: Datacenter → Storage → Add → ZFS.
ZFS-Pool verwalten
Pool-Status prüfen
zpool status
Ausgabe bei gesundem Pool:
pool: vm-pool state: ONLINE status: Some supported features are not enabled on the pool. scan: scrub repaired 0B in 00:05:23 with 0 errors on Sun Jun 8 00:25:23 2025 config: NAME STATE READ WRITE CKSUM vm-pool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 sdb ONLINE 0 0 0 sdc ONLINE 0 0 0 errors: No known data errors
Speicherbelegung anzeigen
zpool listzfs list
Scrub ausführen (regelmäßige Datenintegrität)
zpool scrub vm-pool
Führen Sie monatlich einen Scrub durch. Proxmox kann dies automatisieren:
systemctl enable --now [email protected]
Kaputte Festplatte ersetzen (RAIDZ/Mirror)
zpool status – Zeigt defekte Festplatte (FAULTED/UNAVAIL)
Festplatte physisch ersetzen, dann:
zpool replace vm-pool /dev/disk/by-id/alt-disk-id /dev/disk/by-id/neue-disk-id
ZFS synchronisiert automatisch (Resilvering).
Fortschritt überwachen:zpool status -v vm-pool
ZFS-Cache (L2ARC) und Log (SLOG)
L2ARC (Read Cache mit SSD)
Fügen Sie eine SSD als zusätzlichen Read-Cache hinzu:
zpool add vm-pool cache /dev/nvme0n1
Sinnvoll wenn: Viele kleine Lesezugriffe auf häufig genutzte Daten.
SLOG (ZFS Intent Log mit SSD)
Beschleunigt synchrone Schreiboperationen (z. B. Datenbanken, NFS):
zpool add vm-pool log mirror /dev/nvme0n1 /dev/nvme1n1
Empfehlung: SLOG immer mit Mirror (2 SSDs) für Redundanz.
ZFS-Snapshots
Snapshot erstellen
zfs snapshot vm-pool/vm-100-disk-0@before-update
Snapshot wiederherstellen
zfs rollback vm-pool/vm-100-disk-0@before-update
Alle Snapshots anzeigen
zfs list -t snapshot
FAQ
Kann ich einem bestehenden ZFS-Mirror eine dritte Platte hinzufügen?
Nicht direkt im Mirror. Sie können aber einen zweiten Mirror-Vdev zum Pool hinzufügen (Striped Mirror = RAID10-ähnlich).
ZFS oder LVM-thin für Proxmox VMs?
ZFS bietet Snapshots, Checksummen und Selbstheilung – besser für Produktivumgebungen. LVM-thin ist einfacher und hat weniger RAM-Overhead – für einfache Setups ausreichend.
Kann ZFS Festplatten verschiedener Größen kombinieren?
Ja, aber die Kapazität des Pools wird durch die kleinste Platte begrenzt. Alle Platten eines vdevs sollten gleich groß sein.
Fazit
ZFS macht Proxmox-Storage enterprise-tauglich: Selbstheilung, Snapshots und Checksummen schützen Ihre Daten. Für Produktivumgebungen ist RAIDZ2 oder Mirror die empfohlene Konfiguration.
Als Proxmox-Storage-Spezialisten in Heidelberg planen wir ZFS-Infrastrukturen für KMU in Mannheim, Ludwigshafen und der Rhein-Neckar-Region. Jetzt Storage-Beratung anfragen.