Direkt zum Hauptinhalt

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 desdieser Artikels,Dokumentation, Christian-Peter Zengel,Zengel, hatverfügt zumüber Zeitpunktrund des Artikels ca 18 Jahre ErfahrungPraxiserfahrung mit ZFS und Proxmox.Proxmox Erund betreibt aktuell caetwa 150 Systeme mit Proxmox VE und ZFS.

DasDie Einsatzgebiethier gehtbeschriebenen Erfahrungen stammen aus realen Installationen – von Standaloneinstallationeinzelnen Standalone-Servern bis zu caProxmox-Clustern 10mit Hostsbis imzu Cluster.zehn Hosts.

Der Fokus liegt auf EsZFS 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 keineeine produktiveideale CephGrundlage Expertisefür vorhanden,Systeme, jedochbei wirddenen intensivDatenintegrität, anSnapshots, einerReplikation Hauslösungund gearbeitet.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 aberZFS ZFSfür viele kleine und mittlere Systeme einfacher, vielseitiger, schneller und günstiger als CepHCeph. zuEine sein.produktive Ceph-Expertise wird hier bewusst nicht behauptet; intern wird jedoch intensiv an passenden Hauslösungen gearbeitet.


    ZFS Onlinekurs und Schulung

    DieserDiese Dokumentation basiert auf diesemeinem online KurseOnlinekurs von cloudistboese.de

    .

    CIB ZFS.png

    Die

    24.ZFS-Grundlagenkurse +werden 26.11.2025regelmäßig (13.00angeboten Uhrund bisvermitteln 17.00die Uhr)wichtigsten -Konzepte für den sicheren Einsatz von ZFS Grundlagenmit (Onlinekurs)

    Proxmox VE, TrueNAS und vergleichbaren Systemen.

    Diese ZFS Grundlagen Onlinekurs von cloudistboese.de für Proxmox VE, TrueNAS und Linux Storage

     Aktuelle ZFS-Kurse sindund caweitere alleOpen-Source-Schulungen sechsauf Monatecloudistboese.de onlineansehen buchbar.

    Das

    Die WiederholenWiederholung der Onlinekurse,Onlinekurse wie auchsowie der Zugriff auf Aufzeichnungen sind kostenlos!für Kursteilnehmer kostenlos.


    Inhalte des ZFS-Grundlagenkurses

    ZFS ist die perfekte GrundlageGrundlage, fürum kleine und mittlere Systeme um gegen Ausfälle, Dummheit andererFehlbedienung und ErpressungstrojanernVerschlüsselungstrojaner idealbesser aufgestelltabzusichern.

    zu sein.
    In diesem

    Der Kurs erhalten sievermittelt Grundkenntnisse für Systemeden wiepraktischen Proxmox,Einsatz TrueNAS oder ähnliche Systeme.

    Der Fokus liegt auf der Technologie und der permanenten Sicherheit im Umgang mit Daten, Linux und dem Terminal.

    Themen:
    mit:

    • BegrifflichkeitenProxmox VE
    TrueNAS Linux-Servern Backup-Systemen Fileservern kleinen und mittleren Virtualisierungsumgebungen

    Themen im Überblick

      Grundbegriffe und Überblick über ZFS Aufbau von RaidsRAID-Konzepten mit zpool ZFS-Basisfunktionen am Beispiel von Proxmox VE Erklärung und Beispiele Snapshots und Rollbacks PraxisbeispieleReplikation Replikationin der Praxis Prüfung dervon Replikationen WeitereDatasets, FeaturesZVOLs dieund dasStorage-Struktur LebenCache, massivLogdevice erleichternund Special Device Typische Fehlentscheidungen vermeiden

      Nach diesem Kurs bistsind DuSie bei AusfällenAusfällen, Bedienfehlern und Datenverlust vordeutlich dembesser Schlimmsten geschütztvorbereitet und inkönnen viele Systeme innerhalb weniger Minuten wieder produktiv!produktiv machen.


      https://de.wikipedia.org/wiki/ZFS_(Dateisystem)

      ZFS

      https://www.proxmox.com/de/

      https://cloudistboese.de

      Erstellung eines RaidsRAID mit zpool

      erstellen

      So erstellt Proxmox VE seineneinen ZFS Raid

      Mirror

      zpool create -f -o cachefile=none -o ashift=12 rpool mirror disk1 disk2

      Die wichtigsten Parameter:

      Destruktives

        -f erzwingt das destruktive Anlegen (des Pools -f),o keincachefile=none automatischesverhindert Importierenautomatischen Import beim Start (-o cachefile=none)
        -o ashift=12 ist fürdie 4kübliche Festplatten, ashit=9Wahl für 512emoderne Disks,4K-Sektoren wobei man mit 12 nichts verkehrt macht
        rpool ist der Name vomdes künftigenPools Pool,mirror mirrordefiniert derden RaidlevelRAID-Level und die Disks wurdensollten zweifelsfreieindeutig über Ihre/dev/disk/by-id IDangesprochen definiertwerden

        Mögliche RAID-Varianten sind unter anderem:

        Optionen

        fürStripe RaidlevelMirror wärenStriped noch:Mirror ohne/ alsRAID10 Stripe,RAIDZ1 raidz,RAIDZ2 raidz2RAIDZ3 oder raidz3,
        also

        Praxisumgebung Raidim Level 5-7

        Kurs

        Im aktuellen Kurs verwendenwird wirein einenälterer älteren Supermicro Supermicro-Server mit 24 Einschüben plussowie zwei NVMe,NVMe-Datenträgern damitverwendet. wirDamit alleslassen abbildensich können.verschiedene ZFS-Szenarien realistisch abbilden.

        Die Verwendung bereitsgebrauchter benutzter Disks, dieund teilweise nichtungetesteter getestetDatenträger wurden,zeigt wirdsehr baldschnell, die Notwendigkeit vonwarum ZFS bestätigen!in Dieder NVMePraxis sindso nachwertvoll ca zwei bis drei Jahren Cachebetrieb schon am Ende ihrer Laufleistung!ist.

        DaherEmpfehlung: Für produktive Systeme immer Enterprise Enterprise-NVMe und natürlich ECC ECC-RAM benutzen, das spart eine Menge Ärger!verwenden.

        image.png Supermicro Server mit vielen Laufwerkseinschüben für ZFS und Proxmox VE Schulung

        SolltenBereits verwendete Datenträger können in Proxmox VE über die Wipe-Funktion bereinigt werden. Bei alten LVM- oder Ceph-Installationen empfiehlt sich dennochjedoch Datenhäufig aufeine Ihrenvorherige Datenträgernvollständige befindenLöschung, taugt die Wipe Funktion in PVE gut zur Wiederinbetriebnahme belegter Disks, es sei denn es war etwasbeispielsweise mit LVM oder CepH auf den Disks. 
        Solche Datenträger sollte man z. b. mit nwipe extern erst mal löschen..

        image.png Proxmox VE Wipe Funktion zum Löschen alter Datenträger vor ZFS Nutzung


        Proxmox VE Bootlayout mit ZFS verstehen

        Proxmox
        VE

        Proxmox,nutzt alsobei DebianZFS-Installationen Linux,ein bootetspezielles ausBootlayout. lizenztechnischenWichtig Gründenist, nicht direkt von ZFS.
        Daher ist zu beachten daßdass immer genügendausreichend Bootdisksbootfähige Datenträger mit einem dreiteiligenpassendem Partitionslayout vorhanden sind.

        Würde

        Typischerweise mangibt imes:

        Laufe
        dereine Zeitkleine diePartition beidenfür drittenBIOS/GRUB Partitioneneine gegenEFI-Systempartition komplettefür Disksproxmox-boot-tool ersetzen,eine wäre nichts mehr zumZFS-Partition für den Systemstarteigentlichen vorhanden.Pool Bei Proxmox

        Wird VEspäter übernimmt diesen Teil das Tool proxmox-boot-tool (format/init/status) der auf die zweite Partition angewendet wird. Die erste Partition enthält noch Grub für Bios Boot, die Dritte dann das eigentliche ZFSunbedacht mit Proxmoxganzen VE.

        Disks

        Hierzugearbeitet, empfehlekann iches unserepassieren, Kursreihedass Proxmoxkeine Produktivgeeignete mitBootstruktur ZFSmehr betreiben!vorhanden ist.

        Bildschirmfoto 2025-12-15 um 09.53.30.png Proxmox VE ZFS Bootlayout mit proxmox-boot-tool und Partitionen


        Ermittlung

        Laufwerke derunter Linux eindeutig ermitteln

        Vor dem Erstellen eines ZFS-Pools müssen die Laufwerke miteindeutig deridentifiziert Kommandozeilewerden.

        FürDafür den Betrieb empfehleneignen sich einigeunter WerkzeugeLinux diemehrere eventuell nicht enthalten sind, daher installieren wir diese über unseren Postinstaller oder per HandWerkzeuge.

        apt install lshw iotop
        
        #Detailierte# Detaillierte Übersicht aller Laufwerke
        lshw -class disk
        
        #Liveansicht# Liveansicht beim EnschiebenEinschieben von PlattenFestplatten
        dmesg -Tw
        
        #time# followEindeutige #AuflösungLaufwerksnamen vonüber symbolischenby-id Links im System - Hier werden teilweise mehrere Namenskonventionen angeboten, pro Disk und pro Paritionanzeigen
        ls -althr /dev/disk/by-id
        
        Beispiel

        Beispiel: lshw

        image.png Linux lshw Ausgabe zur Ermittlung von Festplatten für ZFS

        Beispiel

        Beispiel: /dev/disk/by-id Ordner

        image.png Linux Verzeichnis /dev/disk/by-id mit eindeutigen Festplattennamen für ZFS

        Die Optionen

        Wichtige derEntscheidungen Raidanlage

        beim
        Anlegen eines ZFS-Pools

        Die wichtigsten ParameterEntscheidungen sindbeim RAIDAnlegen Level,eines CompressionZFS-Pools und Ashift. Alle drei Parameter können bei Fehlentscheidungen zu langfristigen Konsequenzen führen.sind:

        Beispiel Fehlentscheidung Raidlevel
        • 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 oderund Striped Mirror

        Mirror und Striped Mirror (Raid 10) sind niemalsfür eineProxmox falscheVE Entscheidung,meist jedochdie verlierenunproblematischste wirWahl. hierSie immerkosten 50%zwar unserer50 Kapazität.% Derder entscheidendeRohkapazität, Vorteilbieten beiaber einerhohe ErweiterungPerformance, isteinfache daß man nur zwei Platten aus einem Spiegel ersetzen muss. Beim einfachen Mirror kann eine verdächtige Platte auch einfach entnommenErweiterbarkeit und insehr diegute Schublade gelegt werden. Beim Austausch von Disks kann man auch einfach eine dritte Platte einspiegeln und später die Alte entfernen, so verliert man nie den Schutz beim Tausch und kann die alte Disk archivieren.Wiederherstellbarkeit.

        • Vorteile: Schnell,schnell, einfach, problemlosrobust
        • Nachteile: Hoher50 Verlust% der Kapazität, 50% immer für Spiegel Kapazitätsverlust
        • Optionen:Ideal Beifür: SATAVMs, /LXCs, SASproduktive Raids gut mit Cache und LOG per NVMe zu beschleunigenProxmox-Hosts

        RAIDZ1,

        RaidZ Level 1-3 kann bei drehenden Festplatten eine fatale Entscheidung sein. Die Nutzlast entspricht immer der Anzahl der Platten minus ein bis drei Paritäten. Also RaidZ2 entspricht Raid6RAIDZ2 und beiRAIDZ3 acht

        RAIDZ Platten würde die Kapazität von zwei Platten für Parität verloren gehen, bei RaidZ1 eine und natürlich bei RaidZ3 drei.

          Vorteile: Mehr Platz,bietet mehr Sicherheit,nutzbare ErweiterbarkeitKapazität, mitist einzelnenaber Disks oder weiteren VDevs Nachteile: Fürfür VMs und LXCs auf drehenden Festplatten nur bedingteingeschränkt alsgeeignet. Datengrab,
          NAS,Vorteile: Fileservermehr geeignet
          nutzbarer Speicherplatz Optionen:Nachteile: Beischlechter SATAfür / SAS HDDs und SSDs sind diese Raids gut mit Cache und LOG per NVMe zu beschleunigen. Zusätzlich besteht auch die Möglichkeit eines Special Devices, welches Metadaten undviele kleine Blöckesynchrone aufSchreibzugriffe SSDsIdeal oderfür: NVMesFileserver, ablegt.Archivspeicher, Backup-Ziele Pool aus mehreren RaidZ-VDev kann als Kompromiss zwischen Platz und Leistung gewertet werden. Eine Vergrößereung des Pools ist dann an mehreren Stellen möglich
            Vorteile: Mehr Platz, mehr Sicherheit, Erweiterbarkeit mit einzelnen Disks oder weiteren VDevs und schneler als ein RaidZ mit nur einem VDev bei gleicher Anzahl von Disks Nachteile: Für VMs und LXCs nur bedingt als Datengrab, NAS, Fileserver geeignet
            Optionen: Bei SATA / SAS HDDs und SSDs sind diese Raids gut mit Cache und LOG per NVMe zu beschleunigen. Zusätzlich besteht auch die Möglichkeit eines Special Devices, welches Metadaten und kleine Blöcke auf SSDs oder NVMes ablegt.
            Stripe und dRaid machen in diesem Umfeld keinen Sinn und werden daher nicht behandelt

            Virtuelle Maschinen sollten im Normalfall nienicht auf drehendedrehenden DisksFestplatten mit RaidZRAIDZ ablegen.betrieben werden. Als Kompromiss kann manRAIDZ gutmit SATA RaidZ plusNVMe Cache &und LOGLogdevice Beschleunigungeingesetzt verwenden um Platz zu gewinnenwerden.

            Die


            Analge

            Ashift vonrichtig Raids per Proxmox ist möglich, jedoch ist man mit der Konfiguration per Kommandozeile viel flexibler!

            Beispiel Fehlentscheidung Ashift

            Hier etwas technischer Hintergrund im Vorfeld

            wählen

            Bei ZFS bezeichnet ashift die Blockgrößeinterne (Sektorgröße),Sektorgröße eines VDEVs. Früher wurde häufig mit der ZFS intern auf einem vdev arbeitet.Üblicherweise arbeiteten wir früher mit ashift=9 (512b)für oder512-Byte-Sektoren gearbeitet. Für heutige Datenträger ist ashift=12 (4096b, also 4k)...

            Daher aktuelpraktisch immer ashift=12die nehmenrichtige um alle aktuell angesagten Disks in allen Raidlevel zu unterstützen.
            Setzt man diesen Wert oder auch den volblocksize Wert kleiner als 16, schreibt zfs einzelne Blöcke auf mehr als Einen!Wahl.

            DieEmpfehlung: KonsequenzAktuell sindimmer massiveashift=12 Leistungseinbusenverwenden.

            Eine falsche Einstellung kann zu massiven Leistungseinbußen und erheblicher Platzverschwendung vonführen.

            bis

             Technischer Hintergrund zu 50%!ZFS ashift


            Kompression mit ZFS

            BeispielZFS-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 unspektakulärenPraxis Raidanlagesparen unterwir ProxmoxVEdamit häufig ein Drittel oder mehr Speicherplatz – ohne spürbare Geschwindigkeitseinbußen.


            ZFS Dataset-Struktur für Proxmox VE

            Nach derdem AnlageErstellen eines RaidPools mit ProxmoxVE empfiehlt sich die Basissollte nicht wieeinfach hierder aufPool mirror500gselbst zu setzen, sondern die zu erwartenden Dateisysteme und Volumes zu strukturieren und dann dort denals Proxmox Storage zuverwendet definierenwerden. 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 #die option sorgt dafür daß das Tool zfs-auto-snapshot hier nicht arbeitet
            

            Danach denkann der Storage unter Cluster in ProxmoxVEProxmox definieren,VE z. b.sauber als beispielsweise mirror500g-data eingebunden werden.

            image.png Proxmox VE ZFS Storage Dataset Struktur für VMs und Container

            Beispiel Fehlentscheidung

            Praxisbeispiele: Compression

            zpool create

            Stripe / RAID0

            KompressionNur kannfür immensTestsysteme viel Platz sparen, aber auch nur da wo unkomprimierteoder Daten liegen.ohne Schutz sinnvoll.

            Grundsätzlich nehmen wir inzwischen compression=on, früher compression=lz4. 

            Mit beiden Einstellungen sparen wir oft mindestens ein Drittel der Daten und haben keine spürbaren Geschwindigkeitseinbußen.

            Im Zweifelsfall compression=off

            Praxis Raidanlage

            Mit dem Parameter zpool create -n bekommt man als dry-run erst mal eine Vorschau!

            Überlege Dir gut ob die Disks eventuell vorher paritioniert werden müssen, z. B. für Proxmox Boot oder Mischnutzung bei z. B. Cache/Log auf selbem Datenträger

            ashift=12 ist inzwischen default

            compression=off ist ebenfalls default!

            Stripe, also Raid0

            zpool create -f test \
            wwn-0x5000cca01a72ded4 \
            wwn-0x5000cca01a7b1e2c wwn-0x5000cca01a83a61c  wwn-0x5000cca01a832d24  wwn-0x5000cca01a83331c  wwn-0x5000cca01a7495b8
            test                      ONLINE
             wwn-0x5000cca01a72ded4  ONLINE
             wwn-0x5000cca01a7b1e2c  ONLINE
            \ wwn-0x5000cca01a83a61c ONLINE

            Mirror

            / wwn-0x5000cca01a832d24RAID1 ONLINE
             wwn-0x5000cca01a83331c  ONLINE
             wwn-0x5000cca01a7495b8  ONLINE
             wwn-0x5000cca01a8417fc  ONLINE
            Mirror, also Raid1

            zpool create -f test mirror \
            wwn-0x5000cca01a72ded4 wwn-0x5000cca01a7b1e2c
            
            test
             mirror
               wwn-0x5000cca01a72ded4
             \ wwn-0x5000cca01a7b1e2c

            Striped Mirror,Mirror also/ Raid10

            RAID10

            zpool create -f test \
            mirror wwn-0x5000cca01a72ded4 wwn-0x5000cca01a7b1e2c \
            mirror wwn-0x5000cca01a83a61c wwn-0x5000cca01a832d24 \
            mirror wwn-0x5000cca01a83331c wwn-0x5000cca01a7495b8

            RAIDZ1

            test
             mirror
               wwn-0x5000cca01a72ded4
               wwn-0x5000cca01a7b1e2c
             mirror
               wwn-0x5000cca01a83a61c
               wwn-0x5000cca01a832d24
             mirror
               wwn-0x5000cca01a83331c
               wwn-0x5000cca01a7495b8
            RaidZ, also Raid 5, Nettoplatz x-1

            zpool create test raidz \
            wwn-0x5000cca01a72ded4 \
            wwn-0x5000cca01a7b1e2c \
            wwn-0x5000cca01a83a61c \
            wwn-0x5000cca01a832d24 \
            wwn-0x5000cca01a83331c wwn-0x5000cca01a7495b8  wwn-0x5000cca01a8417fc  
            test                        ONLINE       0     0     0
             raidz1-0                  ONLINE       0     0     0
               wwn-0x5000cca01a72ded4  ONLINE       0     0     0
               wwn-0x5000cca01a7b1e2c  ONLINE       0     0     0
               wwn-0x5000cca01a83a61c  ONLINE       0     0     0
               wwn-0x5000cca01a832d24  ONLINE       0     0     0
               wwn-0x5000cca01a83331c  ONLINE       0     0     0
             \ wwn-0x5000cca01a7495b8 ONLINE

            RAIDZ2

            0     0     0
               wwn-0x5000cca01a8417fc  ONLINE       0     0     0
            RaidZ2, also Raid 6, Nettoplatz x-2

            zpool create test raidz2 \
            wwn-0x5000cca01a72ded4 \
            wwn-0x5000cca01a7b1e2c \
            wwn-0x5000cca01a83a61c \
            wwn-0x5000cca01a832d24 \
            wwn-0x5000cca01a83331c wwn-0x5000cca01a7495b8  wwn-0x5000cca01a8417fc  
             raidz2-0                  ONLINE       0     0     0
               wwn-0x5000cca01a72ded4  ONLINE       0     0     0
               wwn-0x5000cca01a7b1e2c  ONLINE       0     0     0
               wwn-0x5000cca01a83a61c  ONLINE       0     0     0
               wwn-0x5000cca01a832d24  ONLINE       0     0     0
               wwn-0x5000cca01a83331c  ONLINE       0     0     0
             \ wwn-0x5000cca01a7495b8 ONLINE

            RAIDZ 0mit 0mehreren 0

            VDEVs
               wwn-0x5000cca01a8417fc  ONLINE       0     0     0

            RaidZ-0, also Raid 5-0, Nettoplatz x-2, in diesem Beispiel

            zpool create test raidz wwn-0x5000cca01a72ded4 wwn-0x5000cca01a7b1e2c  wwn-0x5000cca01a83a61c raidz wwn-0x5000cca01a832d24  wwn-0x5000cca01a83331c  wwn-0x5000cca01a7495b8  
              test                        ONLINE       0     0     0  raidz1-0                  ONLINE       0     0     0    wwn-0x5000cca01a72ded4  ONLINE       0     0     0    wwn-0x5000cca01a7b1e2c  ONLINE       0     0     0    wwn-0x5000cca01a83a61c  ONLINE       0     0     0  raidz1-1                  ONLINE       0     0     0    wwn-0x5000cca01a832d24  ONLINE       0     0     0    wwn-0x5000cca01a83331c  ONLINE       0     0     0    wwn-0x5000cca01a7495b8  ONLINE       0     0     0    wwn-0x5000cca01a8417fc  ONLINE       0     0     0
            oder mit Spare, wenn Du davon nicht booten musst zpool create test\ raidz wwn-0x5000cca01a72ded4 wwn-0x5000cca01a7b1e2c wwn-0x5000cca01a83a61c \ raidz wwn-0x5000cca01a832d24 wwn-0x5000cca01a83331c wwn-0x5000cca01a7495b8
            spare

            Dry-Run wwn-0x5000cca01a8417fcvor dem Anlegen

            Vor destruktiven Aktionen immer prüfen:

            Erweiterung

            zpool einescreate RaidZ-n zum RaidZ-0
            test ONLINEmirror 0disk1 0disk2 0

            ZFS raidz1-0Cache, ONLINEARC, 0L2ARC 0und 0

            Logdevice

            ARC wwn-0x5000cca01a72ded4Cache ONLINEim 0     0     0

               wwn-0x5000cca01a7b1e2c  ONLINE       0     0     0
               wwn-0x5000cca01a83a61c  ONLINE       0     0     0
            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

             arcstat Ausgabe zur Analyse des ZFS ARC Cache

            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 -n test raidzcache wwn-0x5000cca01a832d24/dev/disk/by-id/nvme-cache-device
            wwn-0x5000cca01a83331c

            SLOG wwn-0x5000cca01a7495b8
            /

            test
            Logdevice

            Ein raidz1-0

            Logdevice
            kann synchrone wwn-0x5000cca01a72ded4
            Schreibzugriffe
            beschleunigen, muss wwn-0x5000cca01a7b1e2c
            aber
            zwingend  wwn-0x5000cca01a83a61c
             raidz1
               wwn-0x5000cca01a832d24
               wwn-0x5000cca01a83331c
               wwn-0x5000cca01a7495b8

            Cacheszuverlässig und Logdevices

            im
            produktiven

            VorsichtigEinsatz formuliert,gespiegelt Lese- und Schreibcachesein.

            First Level Cache, sog. ARC kommt aus dem RAM und bekommt idealerweise ca. 1GB für 1TB Nettodaten

            Second Level Cache wird als Cachedevice als Partition auf einer schnelleren Disk als der Pool hat bereitgestellt, z. B. am idealsten mit NVMe

            zpool add test -nlog cachemirror sdl
            /dev/disk/by-id/nvme-log-1 test  raidz2-0    wwn-0x5000cca01a72ded4    wwn-0x5000cca01a7b1e2c    wwn-0x5000cca01a83a61c    wwn-0x5000cca01a832d24    wwn-0x5000cca01a83331c    wwn-0x5000cca01a7495b8    wwn-0x5000cca01a8417fc cache  sdl Logdevice (Writecache muss gespiegelt werden)
            Damit der Log auch genutzt wird muss man noch mit/dev/disk/by-id/nvme-log-2 zfs set sync den cache aktivieren zpool add test -n log mirror sdl sdk zfs set sync=always
            test

             ZFS HDD RAID10 mit Cache und gespiegeltem Logdevice


            test

            ZFS

            Special raidz2-0
            Device

            Ein Special wwn-0x5000cca01a72ded4

            Device
            kann Metadaten wwn-0x5000cca01a7b1e2c
            und
            kleine Blöcke wwn-0x5000cca01a83a61c
            auf
            schnelle  wwn-0x5000cca01a832d24
               wwn-0x5000cca01a83331c
               wwn-0x5000cca01a7495b8
               wwn-0x5000cca01a8417fc
            logs
             mirror
               sdl
               sdk
            Arc wird mit "arcstat 1" ausgelesen, er wird bei der Installation festgelegtSSDs oder späterNVMes unterauslagern. /etc/modprobe.d/zfs.confEs geändert. update-initramfs -u macht das dann persistent und aktiviert die Änderungen beim nächsten reboot.
            Zur Laufzeit ändert man den Firstlevelcahce mit 
            Cache- und Logdevices mit zpool iostat 1

            echo 2147483648 > /sys/module/zfs/parameters/zfs_arc_max # ca 1GB pro Raidnetto x 1024 x 1024 x 1024
            echo 1073741824 > /sys/module/zfs/parameters/zfs_arc_min # die Hälfte vom Max als Praxisempfehlung
            free -h && sync && echo 3 > /proc/sys/vm/drop_caches && free -h #haut den Cache eben mal weg wenn RAM voll ist

            arcstat 1

            Hier ein Beispiel für einen idealen HDD Raid10 mit Cache(Stripe) und LOG (Mirror)

            image.png

            Beispiel Special Device,muss zwingend alsredundant, Mirror!also mindestens gespiegelt, aufgebaut werden.

            image.png

            Sinnvoll wirksam wird esein Special Device erst nachmit dereiner passenden Definition der BlocksizeBlockgröße, diebeispielsweise auffür die NVMe gehen soll, also vermutlich so grob 64k und kleinerekleine Blöcke bis etwa 64K.

            ImIn VM-Betriebunseren konntenTests wirzeigte durchein Special Device keinevor Leistungssteigerung feststellen, nurallem bei FileserverFileservern und LXCs

            LXC-Workloads
            Vorteile.

            image.png

            Im

            klassischen

            VM-Betrieb

            Beispielwar arcstatder 1Nutzen deutlich geringer.

            Bildschirmfoto 2025-01-21 um 15.15.59.jpg

            ErweiterungZFS Special Device als Mirror für Metadaten und kleine Blöcke der Funktionen des Pools

            zpool status meldet neue Funktionen im ZFS und kann leicht und schnell mit

            zpool upgrade -a

            erledigt werden

            Jedoch würde ich in jedem Fall empfehlen zu prüfen ob meine Notfall ISO diese Funktionen bereits unterstützt!

            Bildschirmfoto 2025-01-21 um 15.59.16.jpg

            Bildschirmfoto 2025-01-21 um 15.59.26.jpg ZFS Special Small Blocks Konfiguration für Fileserver und LXC


            Für

            ZFS dasPool Auslesen der Parameter von Pools, Volumes, Datasets und Snapshots gibt es den Parameter get

             

            Bildschirmfoto 2025-01-21 um 16.00.49.jpg

            Bereitstellenimportieren und entfernen von

            ZFS-Pools Poolskönnen importiert werden, ohne löschensie

            zu

            löschen. Besonders sinnvoll ist der Import über /dev/disk/by-id, damit später im Status eindeutige Laufwerksnamen angezeigt werden.

            zpool import
            
            #zeigt was es zum importieren, also bereitstellen gibt
            
            zpool import poolname
            
            #oder -a für alle importiert den Pool oder alle verfügbaren Pools

            Am elegantesten importiert man den Pool über

            zpool import -d /dev/disk/by-id poolname

            damit manZFS Pool Import über Kommandozeile mit zpool import hinterher nicht sda, sdb, sondern die Bezeichner im Status sieht

            Bildschirmfoto 2025-01-21 um 16.12.48.jpg

            Nach


            der Bereitstellung würde man hier lediglich einen Mountpoint /test finden, bei TrueNAS /mnt/test. Dazu noch die Systemdatasets vom Proxmox selbst. Danach legen wir gleich mal ein Dataset namens dateisystem

            Datasets und einZVOLs Volumeverstehen

            namens volume an.
            Anlage eines ZVOL (unter /dev zu finden)

            Bildschirmfoto 2025-01-21 um 16.27.43.jpg

            Datasets werden als Ordner gemountet und / oder /mnt (altroot)

            Volumes findet man unter /dev/zd... und zusätzlich mit vernünftigen Namen unter /dev/zvol/tankname/....

            Bildschirmfoto 2025-01-21 um 16.28.41.jpg

            Datasets werden mitwie Linuxcontainern,Dateisysteme Backupfiles,gemountet Vorlagenund odereignen Serverdateiensich bespieltfür:

              LXC-Container Backupdateien Vorlagen Serverdateien Fileserver-Daten

              ZVOLs

              VolumesZVOLs verhalten sich wie eingebautevirtuelle Datenträger, jedoch virtuell.Blockgeräte. Sie stehenwerden nachunter dem Import des Pools bereit/dev/zd... und könnenmit insprechenden einerNamen VMunter genutzt/dev/zvol/poolname/... werden. Manipulationen an Volumes zur Vorbereitung oder Datenrettung können jedoch ebenso auf dem PVE Host vorgenommen werdenbereitgestellt.

              Sie

              Dieseeignen Schrittesich übernimmtinsbesondere üblicherweisefür dervirtuelle InstallerFestplatten invon der VM und sollen nur aufzeigen wie diese ZVOLs genutzt werdenVMs.

              Bildschirmfoto 2025-01-21 um 16.42.58.jpg Anlage eines ZFS ZVOL für virtuelle Maschinen unter Proxmox VE

              Bildschirmfoto 2025-01-21 um 16.43.33.jpg ZFS Datasets und ZVOLs unter Linux und Proxmox VE

              Bildschirmfoto 2025-01-21 um 16.48.11.jpg


              Bildschirmfoto 2025-01-21 um 16.48.19.jpg

              Thin- und Thick-Provisioning mit ZFS

              Proxmox legtVE seineerzeugt Datasetsvirtuelle Festplatten auf ZFS typischerweise als ZVOLs. Thin Provisioning spart zunächst Speicherplatz, muss aber sorgfältig überwacht werden.

              Beispiel: Thin Provisioning für in LXC so in ZFS ab

              Bildschirmfoto 2025-01-21 um 16.52.46.jpg

              und so die ZVOLs für VMs mit KVM, hier findet man die virtuellen Disk und /dev/zvol...

              Bildschirmfoto 2025-01-21 um 16.51.58.jpg

              Thin- und Thickprovisioning für Datasets und Volumes

              Am Beispiel von Proxmox VE via GUI wird hier eine ThinprovisionVM Festplatte für VM 301 mit 32GB und einer Standardblockgröße von 16k erzeugt. 8k sind nur bei Raid1 und 10 möglich. Hakt man den Thinprovision Haken nicht an, wird beim Erzeugen noch die Option -o refreservation=32G ergänzt. Diese macht bei ZFS mit Autosnapshots aber keinen Sinn

              zfs create -s -b 16k -V 33554432k rpool/data/vm-301-disk-4

              rpool/data/vm-301-disk-4

              Beispiel: Dataset

              56K  1.17T    56K  #hier kein Mount sonder unter /dev/zvol/...

              Beifür LXC werden Datasets genutzt und der Platz via Reservierung genutzt, wobei bei der genutzten Refquota auch die Snapshotaufhebezeiten den Nettoplatz verkleinern, daher größer dimensionieren, gerne mal doppelt so groß

               

              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.

              rpool/data/subvol-106-disk-1                              96K  32.0G    96K  /rpool/data/subvol-106-disk-1 #hostzugriff möglich

              Virtuelle Diskimages wie QCOW2, VMDK oder RAW-Dateien legtsollten man üblicherweisenormalerweise nicht ininnerhalb 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 zpool status Hinweis auf neue Pool Features

               ZFS Pool Feature Upgrade mit zpool upgrade


              ZFS Parameter auslesen

              Für Pools, Datasets, bestenfallsVolumes 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

               ZFS get Ausgabe zum Auslesen von Pool und Dataset Eigenschaften


              Fazit: ZFS als stabile Basis für NFSProxmox 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 iSCSIBeratung Server

                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