ZFS Grundlagen am Beispiel Proxmox VE(Stand Dezember 2025) ZFS Grundlagen mit Proxmox VE – Praxiswissen für sichere Server, Backups und Storage-Systeme Erfahrung aus rund 150 produktiven Proxmox- und ZFS-Systemen Der Verfasser dieser Dokumentation, Christian-Peter Zengel, verfügt über rund 18 Jahre Praxiserfahrung mit ZFS und Proxmox und betreibt aktuell etwa 150 Systeme mit Proxmox VE und ZFS. Die hier beschriebenen Erfahrungen stammen aus realen Installationen – von einzelnen Standalone-Servern bis zu Proxmox-Clustern mit bis zu zehn Hosts. Der Fokus liegt auf ZFS als robuste, sichere und wirtschaftliche Storage-Grundlage für kleine und mittlere IT-Umgebungen. Warum ZFS für Proxmox, TrueNAS und Linux-Server? ZFS ist eine ideale Grundlage für Systeme, bei denen Datenintegrität, Snapshots, Replikation und schnelle Wiederherstellung entscheidend sind. Gerade bei Proxmox VE, TrueNAS, Backup-Servern und Fileservern bietet ZFS erhebliche Vorteile gegenüber klassischen RAID-Controllern oder einfachen Dateisystemen. Hohe Datensicherheit durch Prüfsummen Snapshots in Sekunden Rollbacks bei Fehlern oder Updates Replikation auf andere Systeme Schutz vor Bedienfehlern Bessere Wiederherstellung nach Ausfällen Sehr gute Grundlage gegen Ransomware-Schäden Flexible Storage-Konzepte ohne klassischen RAID-Controller In der Praxis zeigt sich ZFS für viele kleine und mittlere Systeme einfacher, vielseitiger, schneller und günstiger als Ceph. Eine produktive Ceph-Expertise wird hier bewusst nicht behauptet; intern wird jedoch intensiv an passenden Hauslösungen gearbeitet. ZFS Onlinekurs und Schulung Diese Dokumentation basiert auf einem Onlinekurs von cloudistboese.de. Die ZFS-Grundlagenkurse werden regelmäßig angeboten und vermitteln die wichtigsten Konzepte für den sicheren Einsatz von ZFS mit Proxmox VE, TrueNAS und vergleichbaren Systemen. Aktuelle ZFS-Kurse und weitere Open-Source-Schulungen auf cloudistboese.de ansehen Die Wiederholung der Onlinekurse sowie der Zugriff auf Aufzeichnungen sind für Kursteilnehmer kostenlos. Inhalte des ZFS-Grundlagenkurses ZFS ist die perfekte Grundlage, um kleine und mittlere Systeme gegen Ausfälle, Fehlbedienung und Verschlüsselungstrojaner besser abzusichern. Der Kurs vermittelt Grundkenntnisse für den praktischen Einsatz mit: Proxmox VE TrueNAS Linux-Servern Backup-Systemen Fileservern kleinen und mittleren Virtualisierungsumgebungen Themen im Überblick Grundbegriffe und Überblick über ZFS Aufbau von RAID-Konzepten mit zpool ZFS-Basisfunktionen am Beispiel von Proxmox VE Snapshots und Rollbacks Replikation in der Praxis Prüfung von Replikationen Datasets, ZVOLs und Storage-Struktur Cache, Logdevice und Special Device Typische Fehlentscheidungen vermeiden Nach diesem Kurs sind Sie bei Ausfällen, Bedienfehlern und Datenverlust deutlich besser vorbereitet und können viele Systeme innerhalb weniger Minuten wieder produktiv machen. ZFS RAID mit zpool erstellen So erstellt Proxmox VE einen ZFS Mirror zpool create -f -o cachefile=none -o ashift=12 rpool mirror disk1 disk2 Die wichtigsten Parameter: -f erzwingt das destruktive Anlegen des Pools -o cachefile=none verhindert automatischen Import beim Start ashift=12 ist die übliche Wahl für moderne 4K-Sektoren rpool ist der Name des Pools mirror definiert den RAID-Level Disks sollten eindeutig über /dev/disk/by-id angesprochen werden Mögliche RAID-Varianten sind unter anderem: Stripe Mirror Striped Mirror / RAID10 RAIDZ1 RAIDZ2 RAIDZ3 Praxisumgebung im Kurs Im Kurs wird ein älterer Supermicro-Server mit 24 Einschüben sowie zwei NVMe-Datenträgern verwendet. Damit lassen sich verschiedene ZFS-Szenarien realistisch abbilden. Die Verwendung gebrauchter und teilweise ungetesteter Datenträger zeigt sehr schnell, warum ZFS in der Praxis so wertvoll ist. Empfehlung: Für produktive Systeme immer Enterprise-NVMe und ECC-RAM verwenden. Bereits verwendete Datenträger können in Proxmox VE über die Wipe-Funktion bereinigt werden. Bei alten LVM- oder Ceph-Installationen empfiehlt sich jedoch häufig eine vorherige vollständige Löschung, beispielsweise mit nwipe. Proxmox VE Bootlayout mit ZFS verstehen Proxmox VE nutzt bei ZFS-Installationen ein spezielles Bootlayout. Wichtig ist, dass immer ausreichend bootfähige Datenträger mit passendem Partitionslayout vorhanden sind. Typischerweise gibt es: eine kleine Partition für BIOS/GRUB eine EFI-Systempartition für proxmox-boot-tool eine ZFS-Partition für den eigentlichen Pool Wird später unbedacht mit ganzen Disks gearbeitet, kann es passieren, dass keine geeignete Bootstruktur mehr vorhanden ist. Laufwerke unter Linux eindeutig ermitteln Vor dem Erstellen eines ZFS-Pools müssen die Laufwerke eindeutig identifiziert werden. Dafür eignen sich unter Linux mehrere Werkzeuge. apt install lshw iotop # Detaillierte Übersicht aller Laufwerke lshw -class disk # Liveansicht beim Einschieben von Festplatten dmesg -Tw # Eindeutige Laufwerksnamen über by-id anzeigen ls -althr /dev/disk/by-id Beispiel: lshw Beispiel: /dev/disk/by-id Wichtige Entscheidungen beim Anlegen eines ZFS-Pools Die wichtigsten Entscheidungen beim Anlegen eines ZFS-Pools sind: RAID-Level ashift Kompression Volblocksize Dataset-Struktur Cache- und Log-Konzept Fehler an dieser Stelle lassen sich später häufig nur mit erheblichem Aufwand korrigieren. RAID-Level: Mirror, RAID10 oder RAIDZ? Mirror und Striped Mirror Mirror und Striped Mirror sind für Proxmox VE meist die unproblematischste Wahl. Sie kosten zwar 50 % der Rohkapazität, bieten aber hohe Performance, einfache Erweiterbarkeit und sehr gute Wiederherstellbarkeit. Vorteile: schnell, einfach, robust Nachteile: 50 % Kapazitätsverlust Ideal für: VMs, LXCs, produktive Proxmox-Hosts RAIDZ1, RAIDZ2 und RAIDZ3 RAIDZ bietet mehr nutzbare Kapazität, ist aber für VMs und LXCs auf drehenden Festplatten nur eingeschränkt geeignet. Vorteile: mehr nutzbarer Speicherplatz Nachteile: schlechter für viele kleine synchrone Schreibzugriffe Ideal für: Fileserver, Archivspeicher, Backup-Ziele Virtuelle Maschinen sollten im Normalfall nicht auf drehenden Festplatten mit RAIDZ betrieben werden. Als Kompromiss kann RAIDZ mit NVMe Cache und Logdevice eingesetzt werden. Ashift richtig wählen Bei ZFS bezeichnet ashift die interne Sektorgröße eines VDEVs. Früher wurde häufig mit ashift=9 für 512-Byte-Sektoren gearbeitet. Für heutige Datenträger ist ashift=12 praktisch immer die richtige Wahl. Empfehlung: Aktuell immer ashift=12 verwenden. Eine falsche Einstellung kann zu massiven Leistungseinbußen und erheblicher Platzverschwendung führen. Technischer Hintergrund zu ZFS ashift Kompression mit ZFS ZFS-Kompression kann erheblich Speicherplatz sparen, insbesondere bei Datenbanken, Logs, Textdateien, VM-Images und vielen Serverdaten. Unsere heutige Empfehlung: zfs set compression=on poolname/dataset Früher wurde häufig explizit compression=lz4 gesetzt. In vielen aktuellen Umgebungen ist compression=on sinnvoll und ausreichend. In der Praxis sparen wir damit häufig ein Drittel oder mehr Speicherplatz – ohne spürbare Geschwindigkeitseinbußen. ZFS Dataset-Struktur für Proxmox VE Nach dem Erstellen eines Pools sollte nicht einfach der Pool selbst als Proxmox Storage verwendet werden. Besser ist eine saubere Struktur mit getrennten Datasets. zfs create mirror500g/data zfs create mirror500g/clone zfs create -o com.sun:auto-snapshot=false mirror500g/repl Danach kann der Storage in Proxmox VE sauber als beispielsweise mirror500g-data eingebunden werden. Praxisbeispiele: zpool create Stripe / RAID0 Nur für Testsysteme oder Daten ohne Schutz sinnvoll. zpool create -f test \ wwn-0x5000cca01a72ded4 \ wwn-0x5000cca01a7b1e2c \ wwn-0x5000cca01a83a61c Mirror / RAID1 zpool create -f test mirror \ wwn-0x5000cca01a72ded4 \ wwn-0x5000cca01a7b1e2c Striped Mirror / RAID10 zpool create -f test \ mirror wwn-0x5000cca01a72ded4 wwn-0x5000cca01a7b1e2c \ mirror wwn-0x5000cca01a83a61c wwn-0x5000cca01a832d24 \ mirror wwn-0x5000cca01a83331c wwn-0x5000cca01a7495b8 RAIDZ1 zpool create test raidz \ wwn-0x5000cca01a72ded4 \ wwn-0x5000cca01a7b1e2c \ wwn-0x5000cca01a83a61c \ wwn-0x5000cca01a832d24 \ wwn-0x5000cca01a83331c \ wwn-0x5000cca01a7495b8 RAIDZ2 zpool create test raidz2 \ wwn-0x5000cca01a72ded4 \ wwn-0x5000cca01a7b1e2c \ wwn-0x5000cca01a83a61c \ wwn-0x5000cca01a832d24 \ wwn-0x5000cca01a83331c \ wwn-0x5000cca01a7495b8 RAIDZ mit mehreren VDEVs zpool create test \ raidz wwn-0x5000cca01a72ded4 wwn-0x5000cca01a7b1e2c wwn-0x5000cca01a83a61c \ raidz wwn-0x5000cca01a832d24 wwn-0x5000cca01a83331c wwn-0x5000cca01a7495b8 Dry-Run vor dem Anlegen Vor destruktiven Aktionen immer prüfen: zpool create -n test mirror disk1 disk2 ZFS Cache, ARC, L2ARC und Logdevice ARC – Cache im RAM Der ARC ist der First-Level-Cache von ZFS und nutzt RAM. Als grobe Praxisregel kann man etwa 1 GB RAM pro 1 TB Netto-Daten ansetzen. Entscheidend ist jedoch immer der konkrete Einsatzzweck. arcstat 1 L2ARC – zusätzlicher Lesecache Ein L2ARC kann als schneller Lesecache auf SSD oder NVMe eingesetzt werden. Er ist besonders interessant, wenn der Arbeitsspeicher nicht ausreicht und viele wiederkehrende Lesezugriffe auftreten. zpool add test cache /dev/disk/by-id/nvme-cache-device SLOG / Logdevice Ein Logdevice kann synchrone Schreibzugriffe beschleunigen, muss aber zwingend zuverlässig und im produktiven Einsatz gespiegelt sein. zpool add test log mirror /dev/disk/by-id/nvme-log-1 /dev/disk/by-id/nvme-log-2 zfs set sync=always test ZFS Special Device Ein Special Device kann Metadaten und kleine Blöcke auf schnelle SSDs oder NVMes auslagern. Es muss zwingend redundant, also mindestens gespiegelt, aufgebaut werden. Sinnvoll wird ein Special Device erst mit einer passenden Definition der Blockgröße, beispielsweise für kleine Blöcke bis etwa 64K. In unseren Tests zeigte ein Special Device vor allem bei Fileservern und LXC-Workloads Vorteile. Im klassischen VM-Betrieb war der Nutzen deutlich geringer. ZFS Pool importieren und entfernen ZFS-Pools können importiert werden, ohne sie zu löschen. Besonders sinnvoll ist der Import über /dev/disk/by-id, damit später im Status eindeutige Laufwerksnamen angezeigt werden. zpool import zpool import poolname zpool import -d /dev/disk/by-id poolname Datasets und ZVOLs verstehen Datasets Datasets werden wie Dateisysteme gemountet und eignen sich für: LXC-Container Backupdateien Vorlagen Serverdateien Fileserver-Daten ZVOLs ZVOLs verhalten sich wie virtuelle Blockgeräte. Sie werden unter /dev/zd... und mit sprechenden Namen unter /dev/zvol/poolname/... bereitgestellt. Sie eignen sich insbesondere für virtuelle Festplatten von VMs. Thin- und Thick-Provisioning mit ZFS Proxmox VE erzeugt virtuelle Festplatten auf ZFS typischerweise als ZVOLs. Thin Provisioning spart zunächst Speicherplatz, muss aber sorgfältig überwacht werden. Beispiel: Thin Provisioning für eine VM zfs create -s -b 16k -V 33554432k rpool/data/vm-301-disk-4 Beispiel: Dataset für LXC zfs create -o acltype=posixacl -o xattr=sa -o refquota=33554432k rpool/data/subvol-106-disk-1 Bei LXC-Containern ist die Dimensionierung besonders wichtig, da Snapshots und Aufbewahrungszeiten den effektiv nutzbaren Platz beeinflussen. Virtuelle Diskimages wie QCOW2, VMDK oder RAW-Dateien sollten normalerweise nicht innerhalb eines ZFS-Datasets abgelegt werden, außer bei speziellen NFS- oder iSCSI-Szenarien. ZFS Pool Features aktualisieren Wenn zpool status neue ZFS-Funktionen meldet, können diese grundsätzlich aktualisiert werden: zpool upgrade -a Wichtig: Vor einem Upgrade sollte geprüft werden, ob vorhandene Notfall-ISOs, Rettungssysteme und andere Hosts die neuen ZFS-Features bereits unterstützen. ZFS Parameter auslesen Für Pools, Datasets, Volumes und Snapshots können Eigenschaften mit zfs get ausgelesen werden. zfs get all poolname zfs get compression poolname/dataset zfs get used,available,referenced poolname/dataset Fazit: ZFS als stabile Basis für Proxmox VE ZFS ist für viele Proxmox-Umgebungen die beste Grundlage, wenn Datensicherheit, Snapshots, Replikation und Wiederherstellbarkeit im Vordergrund stehen. Für produktive Systeme sind besonders wichtig: saubere Planung des RAID-Layouts ashift=12 passende Volblocksize Kompression aktivieren Enterprise-Datenträger verwenden ECC-RAM einsetzen Snapshots und Replikation regelmäßig prüfen Backups und Wiederherstellung testen Diese Dokumentation wird fortlaufend erweitert. ZFS Schulung oder Beratung anfragen Sie möchten ZFS mit Proxmox VE produktiv einsetzen, bestehende Systeme prüfen oder ein sicheres Storage- und Backup-Konzept entwickeln? Die sysops GmbH unterstützt bei Planung, Migration, Betrieb, Monitoring und Schulung rund um Proxmox VE, ZFS, Backup und Open Source Infrastruktur. 📧 info@sysops.de 📞 +49 (0) 6021 2125-0