DEV Community

Uhltak Therestismysecret
Uhltak Therestismysecret

Posted on

ZFS auf Proxmox: Performance-Tuning und Datensicherung in der Praxis

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
Enter fullscreen mode Exit fullscreen mode

Beispiel 2: Quotas für Entwicklungs-Umgebungen

zfs create -o refquota=100G rpool/vm-dev
Enter fullscreen mode Exit fullscreen mode

Beispiel 3: Samba-Freigaben mit ACLs

zfs create -o acltype=posixacl -o xattr=sa rpool/samba-share
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

Beispiel 2: Snapshot-Transport zwischen Systemen

zfs send rpool/vm-storage@backup_20240201 | ssh backup-host "zfs recv backuppool/vm-storage"
Enter fullscreen mode Exit fullscreen mode

Beispiel 3: Rollback einer VM

zfs rollback rpool/vm-storage/vm-100-disk-0@before-update
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Beispiel 2: Maximaler ARC-Speicher auf 32GB begrenzen

echo "options zfs zfs_arc_max=34359738368" > /etc/modprobe.d/zfs.conf
Enter fullscreen mode Exit fullscreen mode

Beispiel 3: Prefetch für VM-Workloads deaktivieren

echo "options zfs zfs_prefetch_disable=1" >> /etc/modprobe.d/zfs.conf
Enter fullscreen mode Exit fullscreen mode

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

  1. Recordsize-Ignoranz: 128K für VM-Images, 16K für Datenbanken – alles andere ist Verschwendung
  2. Snapshot-Hoarding: Mehr als 1000 Snapshots pro Dataset brechen die Performance
  3. RAZOR-RAID: ZFS will keine Hardware-RAID-Controller. Im Ernst. Nutzen Sie JBOD oder HBA-Mode.
  4. L2ARC ohne RAM: Ein L2ARC-Device ohne ausreichend primärem ARC ist kontraproduktiv
  5. 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:

  1. Erstellen Sie mindestens drei separate Datasets mit angepasster Recordsize
  2. Richten Sie eine automatisierte Snapshot-Routine mit Bereinigung ein
  3. 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)