ZFS unter Proxmox: Datasets, Snapshots und ARC-Tuning im Produktivbetrieb
Warum ZFS die beste Wahl für Proxmox ist – wenn man es richtig macht
ZFS ist nicht einfach ein Dateisystem – es ist ein komplettes Storage-Universum mit integriertem RAID, Copy-on-Write und Checksummen. Wer Proxmox im Produktivbetrieb nutzt, kommt um ZFS kaum herum. Doch zwischen Basis-Konfiguration und optimiertem Betrieb liegen Welten. Hier zeige ich, wie Sie das Maximum aus Ihrem ZFS-Pool herausholen.
Dataset-Strategie: Mehr als nur Partitionen
ZFS-Datasets sind die scharfe Waffe gegen Storage-Chaos. Anders als klassische Partitionen können Sie sie dynamisch anpassen und mit individuellen Eigenschaften versehen.
Beispiel 1: Dedizierte Datasets für VM-Images und Container
zfs create -o recordsize=128k -o compression=lz4 rpool/vm-storage
zfs create -o recordsize=16k -o compression=zstd rpool/container-data
Beispiel 2: Quotas für Entwicklungs-Umgebungen
zfs create -o refquota=100G rpool/vm-dev
Beispiel 3: Samba-Freigaben mit ACLs
zfs create -o acltype=posixacl -o xattr=sa rpool/samba-share
Meine Einschätzung: Wer einmal mit Datasets gearbeitet hat, will nie mehr zurück. Die feingranulare Steuerung ersetzt Dutzende anderer Tools. Besonders die Kombination aus Compression und individueller Recordsize ist ein Game-Changer.
Snapshots: Zeitreisen für Ihre Daten
ZFS-Snapshots sind magisch – bis die Performance leidet. Die richtige Balance ist entscheidend.
Beispiel 1: Stündliche Snapshots mit Aufbewahrung
zfs snapshot -r rpool/vm-storage@$(date +%Y%m%d%H%M)
zfs destroy -r -nv rpool/vm-storage@$(date -d "-7 days" +%Y%m%d)
Beispiel 2: Snapshot-Transport zwischen Systemen
zfs send rpool/vm-storage@backup_20240201 | ssh backup-host "zfs recv backuppool/vm-storage"
Beispiel 3: Rollback einer VM
zfs rollback rpool/vm-storage/vm-100-disk-0@before-update
Meine Einschätzung: Snapshots sind das beste Backup-Tool – bis sie es nicht mehr sind. Ab 10.000 Snapshots wird selbst ZFS langsam. Automatisieren Sie die Bereinigung von Anfang an!
ARC-Tuning: Wenn der Cache zum Flaschenhals wird
Der Adaptive Replacement Cache (ARC) ist gleichzeitig ZFS' größte Stärke und Schwäche. Standardwerte sind selten optimal.
Beispiel 1: ARC-Statistiken auslesen
cat /proc/spl/kstat/zfs/arcstats
Beispiel 2: Maximaler ARC-Speicher auf 32GB begrenzen
echo "options zfs zfs_arc_max=34359738368" > /etc/modprobe.d/zfs.conf
Beispiel 3: Prefetch für VM-Workloads deaktivieren
echo "options zfs zfs_prefetch_disable=1" >> /etc/modprobe.d/zfs.conf
Meine Einschätzung: ARC-Tuning ist Black Magic – aber notwendig. Auf Hypervisoren mit vielen VMs sollten Sie prefetch deaktivieren. Die 50%-RAM-Regel für zfs_arc_max ist veraltet – messen Sie stattdessen den cache hit ratio!
Häufige Fehler und wie man sie vermeidet
- Recordsize-Ignoranz: 128K für VM-Images, 16K für Datenbanken – alles andere ist Verschwendung
- Snapshot-Hoarding: Mehr als 1000 Snapshots pro Dataset brechen die Performance
- RAZOR-RAID: ZFS will keine Hardware-RAID-Controller. Im Ernst. Nutzen Sie JBOD oder HBA-Mode.
- L2ARC ohne RAM: Ein L2ARC-Device ohne ausreichend primärem ARC ist kontraproduktiv
- ZIL auf langsamen Platten: SLOG muss schneller sein als Ihr Pool – sonst verzögert es nur
Fazit und nächste Schritte
ZFS bei Proxmox ist wie ein Schweizer Taschenmesser – wenn man alle Funktionen kennt. Starten Sie heute mit:
- Erstellen Sie mindestens drei separate Datasets mit angepasster Recordsize
- Richten Sie eine automatisierte Snapshot-Routine mit Bereinigung ein
- Analysieren Sie Ihre ARC-Auslastung und passen Sie zfs_arc_max an
Wer diese Schritte umsetzt, wird den Unterschied sofort sehen – weniger I/O-Wait, schnelleres Backup und vor allem: mehr Schlaf in der Nacht.
Top comments (0)