# ZFS Pools & Datasets: Strukturiertes Storage-Management in Proxmox

TL;DR / Management Summary Ein ZFS-Pool ist eine Sammlung von physischen Festplatten (VDevs). Innerhalb dieses Pools strukturieren wir den Platz durch Datasets (für Datei-Ebene, z.B. LXC) und ZVOLs (für Block-Ebene, z.B. VMs). Ein Senior Admin trennt Datenströme durch verschiedene Datasets, nutzt individuelle Einstellungen für Kompression und Recordsize pro Workload und sichert die Integrität durch hierarchisches Quota-Management.


# 1. ZFS Pool Design

Das physische Fundament.

Wählen Sie das Layout passend zur Last:


# 2. Datasets vs. ZVOLs

Die logischen Container.

# 1. Datasets (File-based)

Verhalten sich wie Verzeichnisse mit Superkräften.

# 2. ZVOLs (Block-based)

Verhalten sich wie eine virtuelle Festplatte (/dev/zvol/...).


# 3. Deep Dive: Quotas & Reservations

Den Platz sicher verteilen.

ZFS teilt sich den Platz im Pool dynamisch. Ohne Limits kann ein Dataset den gesamten Pool füllen.


# 4. Day-2 Operations: Pool-Erweiterung

Wachsen im laufenden Betrieb.

Sie können einen ZFS-Pool jederzeit vergrößern:


# 5. Troubleshooting & “War Stories”

Wenn die Metadaten haken.

# Top 3 Fehlerbilder

  1. Symptom: Pool zeigt “I/O Error”, aber alle Platten sind grün.

    • Ursache: Kabel-Wackelkontakt oder Überhitzung des HBAs.
    • Lösung: zpool events -v prüfen.
  2. Symptom: Delete-Befehl dauert Minuten.

    • Ursache: Zu viele Snapshots auf einem ZVOL (Fragmentierung).
    • Fix: Anzahl der Snapshots pro Volume auf < 100 begrenzen.
  3. Symptom: “Space Mismatch” zwischen Proxmox und ZFS.

    • Lösung: Nutzen Sie zfs list -o space für die echte Wahrheit.

# “War Story”: Die “Single-Disk” Falle

Ein Admin fügte einem RAIDZ2 Pool (6 Disks) eine einzelne SSD hinzu, um den Platz schnell zu erweitern. Das Ergebnis: ZFS fügte die SSD als neues VDev hinzu. Da dieses VDev keine Redundanz hatte, hing der gesamte 60 TB Pool nun an der Lebensdauer dieser einen billigen SSD. Die Katastrophe: Die SSD starb nach 2 Monaten. Da ZFS keine Daten ohne funktionierendes VDev lesen kann, waren alle 60 TB Daten schlagartig verloren. Lehre: Prüfen Sie die VDev-Struktur immer mit zpool status, bevor Sie auf “OK” klicken. Redundanz muss auf VDev-Ebene konsistent sein.


# 6. Monitoring & Reporting

Pool-Health.

# ZFS Monitoring (CLI)

# Zeigt die Kompressionsrate pro Dataset
zfs get compression,compressratio mypool

# Zeigt alle Snapshots und deren Platzverbrauch
zfs list -t snapshot

# 7. Fazit & Empfehlung

Ein gut strukturierter ZFS-Pool ist wartungsfrei über Jahre.


# Anhang: Cheatsheet (ZFS Management)

Aufgabe Befehl
Dataset erstellen zfs create <pool>/<name>
Quota setzen zfs set quota=10G <pool>/<name>
Kompression ändern zfs set compression=zstd <pool>/<name>
Pool Detail Info zdb -C <poolname>

# Referenzen