Direkt zum Hauptinhalt

Proxmox Vergleich der Storage-Varianten vs. ZFS zu Fuß

Vergleich

Proxmox VE Storage im Vergleich: Ceph, ZFS, SAN/iSCSI und sichere ZFS-Replikation

Stand: 31. August 2026

Welche Storage-Lösung passt zu Proxmox VE: Ceph RBD, lokales ZFS oder ein SAN mit iSCSI und klassischem LVM? Dieser Praxisvergleich erklärt die wichtigsten Unterschiede bei Hochverfügbarkeit, Snapshots, Live-Migration, Thin Provisioning und Wiederherstellung. Anschließend zeigen wir, wie automatische ZFS-Snapshots, Pull-Replikation mit zsync, GUID-Kontrolle mit checkzfs.py und der Miyagi-Workflow eine mehrstufige Backup- und Replikationsstrategie bilden.

Kurzantwort: Ceph, ZFS oder iSCSI?

    Lokales ZFS eignet sich besonders für einzelne Proxmox-Server und kleinere Cluster. Es bietet Prüfsummen, Snapshots, Clones und eine einfache Replikation zwischen ZFS-Systemen. Ceph RBD ist für verteilten, hochverfügbaren Shared Storage in größeren Proxmox-Clustern gedacht. Ceph repliziert Daten intern und vermeidet einen einzelnen Storage-VariantenKopf. iSCSI mit LVM thick ist sinnvoll, wenn bereits ein professionelles SAN vorhanden ist. Der Storage ist gemeinsam nutzbar, die eigentliche Redundanz und Hochverfügbarkeit liefert jedoch das SAN. ZFS per Script ersetzt die Proxmox-Oberfläche nicht. Es erweitert sie um feinere Snapshot-Aufbewahrung, Pull-Replikation, unabhängige Kontrolle und automatisierte Wiederherstellungswege.

    Inhalt


    Proxmox Storage: Ceph RBD, lokales ZFS und iSCSI/LVM im Vergleich

    Funktion/Funktion oder Eigenschaft Ceph RBD Lokales ZFS iSCSI + LVM thick
    Gemeinsamer Cluster-Storage Ja Nein Ja
    Verteilte Speicherung Ja Nein Nur wenn das SAN sie bereitstellt
    Kein einzelner Storage-Kopf als Ausfallpunkt Ja, korrektbei aufgebautkorrektem Clusteraufbau Nein Abhängig vom SAN
    Thin Provisioning Ja Optional mit sparse Nein
    Feste Platzreservierung Möglich/steuerbarSteuerbar Ja,Über über ZFS-Reservation Standard
    Proxmox-Snapshots Ja Ja AbFür PVEVMs ab Proxmox VE 9 für VMs über Volume Chains
    Linked Clones Ja Ja Nein
    Full Clones Ja Ja Ja
    VM- und LXC-Datenträger Ja Ja Ja, über LVM
    Schnelle Live-Migration ohne Kopieren der VM-PlatteDisk Ja Nein Ja
    Migration mit Kopieren des StorageStorage-Kopie Ja Ja Ja
    Proxmox-Storage-Replikation Nicht nötig; Ceph repliziert Ceph-intern Ja, asynchronAsynchron zwischen NodesZFS-Systemen NormalerweiseÜblicherweise durch das SANSAN-intern
    Selbstheilung JaVerteilt im Ceph-Cluster Lokal innerhalb des ZFS-Pools Aufgabe des SAN
    Prüfsummen gegen stille Datenfehler Ceph-intern Nativ durch ZFS Abhängig vom SAN
    Administration hauptsächlich in PVE
    Sehr gut integriert Sehr gut integriert Gut, SAN bleibt separat Typischer Einsatz Größerer HA-Cluster Einzelserver oder kleiner Cluster BestehendesVorhandenes zentrales SAN

    Ceph RBD ist shared,ein thin-provisioned,verteilter redundant,Block-Storage selbstheilendmit undThin unterstütztProvisioning, Redundanz, Snapshots sowieund Clones. Lokales ZFS unterstütztbietet ebenfalls Snapshots und Clones, ist aberjedoch nichtkein shared.Shared Storage. Reines iSCSI bietetstellt selbstLUNs bereit, definiert aber keine Speicherverwaltung;allgemeine ProxmoxSpeicherplatzverwaltung. empfiehltDeshalb deshalbwird normalerweisehäufig eine große gemeinsame iSCSI-LUN mit klassischem LVM kombiniert. Weitere Details enthält die offizielle Proxmox-VE-Storage-Dokumentation.

    Direktes iSCSI, iSCSI mit LVM darüber.und ProxmoxZFS Storage-Dokumentation

    Besonderheit beiover iSCSI

    Man

    muss drei Varianten auseinanderhalten:
    1. Direktes iSCSIiSCSI:

      • Fertige LUN pro VM beziehungsweise bereits auf demDas SAN angelegtestellt fertige LUNs bereit. Der Storage ist shared, bietet über das Proxmox-iSCSI-Backend aber keine nativen Snapshot- oder Clone-Funktionen.
      • Shared Storage
      Keine nativen Proxmox-Snapshots oder Clones

      iSCSI + klassisches LVMLVM: („thick“)

        Eine große gemeinsame LUN enthält eine von Proxmox verwaltete Volume Group. Speicher wird thick zugeteilt; Proxmox übernimmt das clusterweite Locking. Proxmox erzeugt darin Logical Volumes Speicherplatz wird fest zugeteilt Clusterweites Locking durch Proxmox Seit Proxmox VE 9 sind VM-Snapshots als qcow2-Volume-Chain möglich; keine effizienten LVM-thin-Snapshots

        ZFS over iSCSIiSCSI:

          ZFS läuft auf demeinem entfernten Storage-ServerSystem. Proxmox erzeugt dort per SSH ZVOLs und exportiert diesesie als iSCSI-LUNsLUNs. SharedOhne undredundanten snapshotfähig Nicht dasselbe wie gewöhnliches iSCSI+LVM Der ZFS-Storage-ServerKopf kann ohnedieses HA-KonzeptSystem zum Single Point of Failure werden werden.

          PopuläreWelche Proxmox-Funktionen undhängen ihrevom Storage-AbhängigkeitStorage ab?

          Proxmox-Funktion Ceph Lokales ZFS iSCSI thick
          KVM-VMs und LXC-Container Ja Ja Ja
          HA-Neustart auf anderemeinem anderen Node Ja Nur mit Replikat oder Storage-Wiederherstellung Ja
          Live-Migration SehrOhne gutDisk-Kopie Mit PlattenkopieDisk-Kopie SehrOhne gutDisk-Kopie
          VM-Snapshot einschließlichinklusive RAM-Zustand Ja Ja EingeschränktVersions- bzw.und versionsabhängigKonfigurationsabhängig
          TemplateTemplates und Linked CloneClones Ja Ja KeinKeine Linked CloneClones
          Backup mit Proxmox Backup Server Ja Ja Ja
          Storage-MigrationOnline-Vergrößerung einer VM-Disk Ja Ja
          VM-Festplatte online vergrößern Ja Automatische Storage-Replikation Ceph-intern pvesr/ZFS send-oder zfs send/receive SAN-intern Zentraler Betrieb über Weboberfläche/API

          Proxmox-FunktionProxmox GUI versus ZFS-Kommandozeile

          Die Proxmox-Oberfläche verwaltet VMs, Container, Cluster-Locks und Storage-Zuordnungen. Die ZFS-Kommandozeile administriert dagegen den darunterliegenden Pool. Beide Ebenen ergänzen sich, dürfen aber nicht miteinander verwechselt werden.

          Aufgabe ÜberProxmox ProxmoxVE Direkt mit ZFSZFS-Kommandozeile
          Pools anzeigen Node → Disks → ZFS zpool list
          ZustandPoolzustand prüfen ZFS-Übersicht zpool status -v
          AuslastungSpeicherbelegung anzeigen Storage Summary zfs list -o space
          I/O beobachten PVE-Metriken zpool iostat -v 2
          Dataset anlegen Storage-Konfiguration zfs create tank/vmdata
          ZVOL anlegen VM-Disk hinzufügen zfs create -V 100G tank/vmdata/test
          Kompression aktivieren Meist CLI zfs set compression=lz4 tank/vmdata
          VM-Snapshot einer VMerstellen qm snapshot 100 snap1 zfs snapshot tank/vmdata/vm-100-disk-0@snap1
          Snapshot zurückrollen PVE PVE-Snapshot-Menü zfs rollback …@snap1
          Clone erzeugen qm clone 100 200 zfs clone …@snap1 …
          VM-Disk vergrößern qm resize 100 scsi0 +20G zfs set volsize=120G …
          Replikation PVE Replication Job zfs send … | ssh … zfs receive …
          Datenintegrität prüfen TeilweiseTasks überund GUI/TasksStatus zpool scrub tank
          Scrub-Status Task/Statusansicht zpool status tank Defekte Platte ersetzen Disks/ZFS bzw.beziehungsweise CLI zpool replace tank alt neu TRIM starten Zeitplan/Zeitplan oder CLI zpool trim tank Dataset-Eigenschaften Begrenzt in der GUI zfs get all tank/vmdata

          Praxisregel für Proxmox-VMs auf ZFS bietet außerdem native Snapshots, Clones und inkrementelle Replikation mittels zfs send/zfs receive; ein Scrub prüft alle Blöcke per Prüfsumme und repariert Fehler bei vorhandener Redundanz automatisch. OpenZFS-Kommandoreferenz, OpenZFS Scrub

          Wichtige Praxisregel

          Proxmox-eigene VM-Datenträger,Datenträger diesollten Proxmoxnicht gehören, sollte man normalerweise nichtunkontrolliert direkt mit zfs snapshot, zfs clone, zfs rollback, zfs rename oder zfs destroy verändern.verändert werden. Proxmox weißkennt diese Änderungen sonst nichtsnicht. von diesen Änderungen:

            Snapshots erscheinen nicht korrekt in der VM-Konfiguration. Mehrere VM-Festplatten werden möglicherweise nicht konsistent aufgenommen. Replikation und Löschvorgänge können durcheinandergeraten. Ein manuelles Rollback kann den Zustand der VM-Konfiguration und der Platten auseinanderlaufen lassen.

            Für VM-Operationen sind deshalb bevorzugtWeboberfläche, API, qm, pct, und pvesm, die APIerste oder die Weboberfläche verwenden.Wahl. Die ZFS-KommandozeileCLI isteignet idealsich besonders für Pool-Gesundheit,Poolzustand, Scrubs, Plattentausch, Kompression, Kapazitätsanalyse und bewusst geplante externe Replikation.

            Kurzempfehlung

              1–2

              Nodes, einfache und robuste Lösung: lokales ZFS. 3 oder mehr geeignete Nodes und echtes Storage-HA: Ceph RBD. Vorhandenes professionelles SAN: iSCSI + LVM thick. Thin Provisioning und schnelle Clones benötigt: Ceph oder ZFS. Maximal vorhersehbare Platzbelegung: iSCSI + LVM thick. ZFS per CLI vollständig selbst verwalten: gut für Storage-Administratoren, aber Proxmox-eigene VM-Volumes weiterhin über Proxmox bedienen.

              Sendungsablauf: Proxmox GUI, ZFS und sichere Replikation

              In der Sendung bauen wir eine mehrstufige Schutzstrategie für Proxmox-VE-Systeme auf:

                ZFS erstellt engmaschige lokale Wiederherstellungspunkte.

                ZFS-Funktionen ermöglichen Datei-Restore, Rollback und Klone.

                Der Pool wird durch sinnvolle Geräteklassen und schnelle Reparatur robust gehalten.

                zsync holt die Daten vom Proxmox-Server auf ein getrenntes Ziel.

                checkzfs.py kontrolliert anhand der Snapshot-GUIDs, ob das Replikat wirklich angekommen ist.

                Der Miyagi-Workflow verbindet ZFS-Replikation, Proxmox Backup Server, Monitoring und einen zeitweise ausgeschalteten Sicherungsserver.

                Der entscheidende Unterschied:

                  Ein Snapshot schützt kurzfristig vor Fehlbedienung und unerwünschten Änderungen.

                  Ein Replikat schützt zusätzlich vor dem Ausfall des Quellservers.

                  Ein Backup liefert eine unabhängige, längerfristige Wiederherstellungshistorie.

                  Monitoring kontrolliert, ob diese Mechanismen tatsächlich funktioniert haben.

                  1. Automatische ZFS-Snapshots für Proxmox einrichten

                  Wir richten fürFür die relevanten ZFS-Datasets und ZVOLs folgendeverwenden Aufbewahrungwir ein:eine gestaffelte Snapshot-Aufbewahrung. Sie bietet engmaschige Wiederherstellungspunkte für aktuelle Fehler und ein gröberes Raster für ältere Stände.

                  Intervall Aufbewahrung Maximale Anzahl Zweck
                  Alle 15 Minuten 3 Stunden 12 Schnelle Hilfe bei aktuellen Fehlern Stündlich 96 Stunden 96 Vier Tage inklusive langer Wochenenden Täglich 14 Tage 14 Zwei Wochen Tageshistorie Wöchentlich 6 Wochen 6 Mittelfristige Wiederherstellung Monatlich 3 Monate 3 Spät erkannte Fehler

                  DamitDas existierenergibt maximal ungefähr 131 automatische Snapshots pro Dataset oder ZVOL. JeDurch nachzeitliche Überschneidungen und das Verhalten der verwendeten Snapshot-Engine und zeitlicher Überschneidung kann die tatsächliche Zahl etwas abweichen.

                  WarumWie dieseviel Staffelung?

                  Speicher
                    benötigen

                    Die 15-Minuten-Snapshots helfen bei gerade eben gelöschten Dateien, Fehlkonfigurationen oder einem frisch gestarteten Angriff.

                    Die 96 Stunden überbrücken lange Wochenenden, Feiertage und Situationen, in denen ein Problem nicht sofort bemerkt wird.

                    Die 14 Tagessnapshots bieten ein gröberes Raster für die letzten zwei Wochen.

                    Die sechs Wochensnapshots reichen deutlich weiter zurück.

                    Die drei Monatssnapshots helfen bei langsam oder spät erkannten Fehlern.

                    Für längere Zeiträume verwenden wir Proxmox Backup Server. Snapshots auf demselben Pool sind ausdrücklich kein vollständiges Backup.

                    PlatzbedarfZFS-Snapshots?

                    Ein ZFS-Snapshot ist keine vollständige Kopie des Datasets.Kopie. Beim Erstellen wird zunächstlediglich praktischein keinneuer zusätzlicherReferenzpunkt Datenbestandim kopiert.Blockbaum ZFSangelegt. hältZusätzlicher anschließendPlatz nurwird benötigt, sobald Daten im Live-Dataset überschrieben oder gelöscht werden und der Snapshot die alten Blöcke fest,weiterhin die durch neue Schreibvorgänge ersetzt oder im Live-Dataset gelöscht werden.

                    Deshalb bedeuten 131 Snapshots nicht den 131-fachen Speicherverbrauch.referenziert. Der BedarfSpeicherbedarf hängt deshalb von der Änderungsrate ab:

                    ab,
                      nicht allein

                      Wenigvon veränderteder DatenAnzahl benötigender wenig zusätzlichen Platz.

                      Datenbanken, VM-Disks und häufig überschriebene große Dateien können viel Snapshot-Speicher erzeugen.

                      Eine im Live-System gelöschte Datei gibt keinen Platz frei, solange ein Snapshot sie noch referenziert.

                      Wichtige Kontrollen:Snapshots.

                      zfs list -o name,used,available,usedbysnapshots
                      zfs list -t snapshot -o name,creation,used
                      zpool list

                      DerSnapshots auf demselben Pool solltesind nichtkein dauerhaftvollständiges bisBackup. anFällt der gesamte Pool aus oder wird er zerstört, sind auch seine GrenzeSnapshots gefülltverloren. werden.Für Bei knappem Platz verkürzt man zuerst dielängere Aufbewahrung und untersuchtgetrennte dieKopien Änderungsrate.verwenden wir ZFS-Replikation und Proxmox Backup Server.


                      2. ZFS-Snapshots, Rollbacks, Clones und Snapdirs erklärt

                      ZFS-Snapshot erstellen

                      Ein Snapshot ist ein unveränderlicher Zeitpunkt eines Datasets oder ZVOLs:

                      zfs snapshot rpool/data@vor-update

                      Für eine Hierarchie kann rekursiv gearbeitet werden:

                      zfs snapshot -r rpool/data@vor-update

                      Snapshots entstehen sehrnahezu schnell,sofort. weilEin ZFS lediglich einen neuen Referenzpunkt im vorhandenen Blockbaum anlegt. Danach arbeitet das Live-Dataset weiter, während die alten Blöcke für dennativer Snapshot erhaltenaußerhalb bleiben.

                      Wichtig bei Proxmox:

                        Automatische ZFS-Snapshots sindvon Proxmox normalerweiseist nicht als VM-Snapshot bekannt.

                        Ein ZFS-Snapshot istjedoch zunächst nur crash-konsistent,konsistent. aberFür nicht automatisch applikationskonsistent.

                        Datenbanken undoder mehrereVMs VM-Festplattenmit benötigenmehreren gegebenenfallsDisks können QEMU Guest Agent, Freeze/Thaw oder eine anwendungsspezifische Vorbereitung.Vorbereitung erforderlich sein.

                        Proxmox-eigene Snapshots, Klone und Rollbacks sollten weiterhin über Proxmox durchgeführt werden.

                        Einzelne Dateien zurückholen

                        Bei einem ZFS-Dateisystem muss nicht gleich das gesamte Dataset zurückgerollt werden. Man kann eine Datei direkt aus einem Snapshot kopieren:

                        wiederherstellen
                        cp /daten/.zfs/snapshot/daily-2026-08-31/datei \
                           /daten/datei

                        DasEine einzelne Datei zu kopieren ist meist diesicherer sichersteals Wiederherstellung:ein NurRollback diedes benötigtegesamten DateiDatasets, wird zurückgeholt, währendweil alle anderen aktuellen DatenÄnderungen erhalten bleiben.

                        Snapdir

                        Die Snapshot-Inhalte liegen unter:

                        .zfs/snapshot/

                        Die Eigenschaft snapdir steuert, ob dieses Verzeichnis sichtbar ist:

                        machen
                        zfs set snapdir=visible pool/daten

                        Mögliche

                        Zustände sind:
                        • hidden: Verzeichnis.zfs/snapshot ist vorhanden, erscheint aber nicht in einemim normalen ls.

                          Verzeichnislisting.
                        • visible: Benutzer können .zfs/snapshotden Snapshot-Pfad sehen und ältere Dateien selbst lesen.

                        • disabled: Zugriff über diedas Snapshot-VerzeichnisseVerzeichnis ist deaktiviert.

                        Die Snapdir-Funktionsnapdir gilt für ZFS-Dateisysteme. Proxmox-VM-Disks sind in Proxmox normalerweiseüblicherweise ZVOLs und besitzen kein durchsuchbares Verzeichnis.Dateiverzeichnis. Für ZVOL-Snapshot-Geräte von ZVOLs existiert stattdessen die Eigenschaft snapdev. Siehe OpenZFS:OpenZFS-Dokumentation zu Snapshots, Clones und Snapdir.

                        ZFS-Rollback

                        Ein Rollback setzt das komplette Dataset auf einen Snapshot zurück:

                        zfs rollback pool/daten@vor-update

                        DabeiEin werdenRollback verwirft alle Änderungen nach diesemdem gewählten Snapshot. Standardmäßig ist nur der neueste Snapshot verworfen.zulässig. Das ist wesentlich invasiver als das Kopieren einer einzelnen Datei.

                        Standardmäßig erlaubt ZFS nur den Rollback auf den neuesten Snapshot. Ältere Zeitpunkte benötigen zusätzliche Optionen, die neuere Snapshots und möglicherweise abhängige Klone löschen können:

                        zfs rollback -r pool/daten@alter-standkann neuere Snapshots löschen; -R

                        Einkann zusätzlich abhängige Clones betreffen. Vor einem Rollback sollte daher erst erfolgen, nachdem der aktuelle Zustand zusätzlichdeshalb separat gesichert wurde. Bei Proxmox-ZVOLs darf ein manueller Rollback nicht unüberlegt während des VM-Betriebs stattfinden.werden.

                        ZFS-Clone

                        Ein Clone ist eine beschreibbare Kopie eines Snapshots:

                        zfs clone pool/daten@vor-update pool/test

                        DerEin Clone wirdist eine sofort erstelltbeschreibbare undKopie benötigteines anfangsSnapshots. nurAnfangs sehrteilen wenig zusätzlichen Platz.sich Snapshot und Clone teilen sich die unveränderten Blöcke. Neue Schreibvorgänge des Clones belegenbenötigen zusätzlichen Platz.

                        Typische Anwendungen:

                        Anwendungen
                          sind Tests,

                          UpdatesUpdates, inDatenrettung einerund Testkopieisolierte prüfen

                          Kopien.

                          Daten aus einem alten Zustand untersuchen

                          schnell eine Entwicklungs- oder Testumgebung erzeugen

                          eine VM oder ein Dataset temporär isoliert starten

                          Der Clone bleibt zunächst von seinem Ursprungssnapshot abhängig.abhängig, Mitbis die Beziehung gegebenenfalls mit zfs promote kann diese Beziehung umgekehrt werden. Für Proxmox-VMs sollte ein VM-Clone über die Proxmox-Oberfläche oder qm clone erstellt werden, damit Proxmox die Abhängigkeiten korrekt verwaltet.wird.


                          3.ZFS-Platte Schnellerschnell ersetzen und RAIDZ erweitern

                          Defekte ZFS-Platte mit Replace und RAIDZ-Expansion

                          Schneller Plattentauschaustauschen

                          Beim Ausfall einer Platte wird sie ersetzt:

                          zpool replace tank alte-platte neue-platte
                          zpool status tank

                          ZFS kennt die tatsächlich belegten Blöcke und deren Prüfsummen. Beim Resilver werdenrekonstruiert die benötigten DatenBlöcke aus den verbliebenen Platten rekonstruiertGeräten und schreibt sie auf die neue PlattePlatte. geschrieben.

                          WennIst die alte Platte noch lesbarlesbar, ist, ist es meist besser,sollte die neue Plattemöglichst zunächstzuerst zusätzlich anzuschließenangeschlossen und dender Replace kontrolliert zugestartet starten.werden. DadurchSo bleibt die vorhandene Redundanz möglichst langelänger erhalten.

                          FürBei SpiegelMirrors kann eine sequenzielle Rekonstruktion mit zpool replace -s dieeine Redundanzsequenzielle schnellerRekonstruktion wiederherstellen. Diese Option iststarten; für RAIDZ ist diese Option nicht verfügbar. NachDetails einemstehen sequenziellenin Mirror-Rebuild startet ZFS einen Scrub zur Prüfsummenkontrolle.der OpenZFS:OpenZFS-Referenz zu zpool replace.

                          RAIDZ-Expansion

                          Expansion:

                          Aktuelle OpenZFS-Versionen können ein bestehendes RAIDZ-vdevRAIDZ um jeweils eine Platte verbreitern:

                          erweitern
                          zpool attach tank raidz2-0 neue-platte

                          DabeiMit gilt:

                          aktuellen
                            OpenZFS-Versionen kann

                            RAIDZ1ein bleibtbestehendes RAIDZ1.

                            RAIDZ-vdev schrittweise um

                            RAIDZ2einzelne bleibtPlatten RAIDZ2.

                            verbreitert werden.

                            RAIDZ3 bleibt RAIDZ3.

                            Die AnzahlFeature-Flag tolerierbarerraidz_expansion Plattenausfällemuss erhöhtvorhanden sichund nicht.

                            aktiviert sein.

                            Die neue Platte muss mindestens so groß wie die kleinste vorhandene Platte sein.

                              RAIDZ1, RAIDZ2 oder RAIDZ3 behalten ihr jeweiliges Paritätsniveau.

                              Die Pool-Feature-FlagAnzahl raidz_expansiontolerierbarer mussPlattenausfälle verfügbarsteigt unddurch aktiviertdie sein.

                              Expansion nicht. ZFS

                              Während der Expansion werdenliest die belegten Daten gelesenund undverteilt sie über die verbreiterte Gruppe neu verteilt.

                              Gruppe.

                              Der Fortschritt erscheint in zpool status.

                              zeigt den Fortschritt.

                              Bei einem PlattenausfallPlattenfehler pausiert die Expansion, bis das RAIDZvdev wieder gesund ist.

                              Alte Blöcke behalten ihr ursprüngliches VerhältnisDaten-Paritäts-Verhältnis; zwischen Nutz- und Paritätsdaten. Erst neu geschriebeneneue Blöcke nutzen die breitere RAIDZ-Geometrie vollständig. Die gewonnene Kapazität kann

                              Weitere deshalbtechnische zunächstHintergründe etwasbietet geringer erscheinen als rechnerisch erwartet.die OpenZFS:OpenZFS-Dokumentation RAIDZ-Expansionzur Änderung des Pool-Layouts.


                              4.ZFS Spares, Cache,L2ARC, LogsSLOG und Special Devices richtig einsetzen

                              Gerätetyp Aufgabe Was passiert bei Verlust? Hot Spare Ersatzplatte bereithalten Die normale Pool-Redundanz entscheidet Cache/L2ARC Häufig gelesene Daten zusätzlich cachen Unkritisch, da nur Kopien gespeichert werden Log/SLOG Synchrone Schreibvorgänge beschleunigen Risiko für die jüngsten noch nicht übernommenen Sync-Schreibvorgänge Special vdev Metadaten und optional kleine Blöcke dauerhaft speichern Der Verlust kann den gesamten Pool zerstören

                              Hot Spare

                              Ein Spare ist eine Reserveplatte:

                              zpool add tank spare /dev/disk/by-id/...

                              BeiEin einemHot Fehler kann sie automatisch für die ausgefallene Platte einspringen. DasSpare verkürzt die Zeit,Zeit inim derdegradierten der Pool degradiert läuft.

                              Ein SpareZustand, erhöht aber nicht die normaleFehlertoleranz. Fehlertoleranz:

                                Ein RAIDZ1 bleibt ein RAIDZ1.

                                Ein RAIDZ2 bleibt trotz Spare ein RAIDZ2.

                                Das Spare ist kein zusätzliches Paritätslaufwerk.

                                Die defekteausgefallene Platte muss trotzdem dauerhaft ersetzt werden.

                                Nach dem regulären Replace und Resilver kann das Spare wieder

                                L2ARC als Reserve verfügbar werden.

                                Cache beziehungsweise L2ARCZFS-Lesecache

                                Ein Cache-vdev erweitert den Lesecache:

                                zpool add tank cache /dev/nvme0n1

                                DieDer ersteprimäre Cache-StufeZFS-Cache ist immer der ARC im RAM. L2ARC auf SSD oder NVMe ist nur die zweite Stufe.

                                L2ARCEr hilftlohnt hauptsächlich,sich wenn:

                                vor
                                  allem bei

                                  derwiederkehrenden aktivezufälligen DatenbestandLesezugriffen größerund alseinem Arbeitsdatensatz, der RAMnicht ist,

                                  vollständig in

                                  viele Daten wiederholt gelesen werden,

                                  ausreichendden RAM fürpasst. die L2ARC-Metadaten vorhanden ist,

                                  zufällige Lesezugriffe der Engpass sind.

                                  L2ARC hilftbeschleunigt nichtkeine automatischSchreibvorgänge; bei Schreibproblemen. Weil dort nur zusätzliche Kopien vorhandener Daten liegen, ist sein Verlust für den Pool ungefährlich. Mehrmehr RAM ist häufig wirkungsvollerdie alsbessere vorschnellerste ein Cache-Gerät einzubauen.Maßnahme.

                                  LogSLOG beziehungsweisefür SLOGsynchrone Schreibvorgänge

                                  Ein Log-vdev verschiebt das ZFS Intent Log auf ein separates Gerät:

                                  zpool add tank log mirror /dev/nvme0n1 /dev/nvme1n1

                                  Ein SLOG ist kein allgemeiner Schreibcache.Schreibcache. ErEs beschleunigt nur synchrone Schreibvorgänge, etwa bei denenNFS, eineDatenbanken Anwendungoder die dauerhafte Speicherung bestätigt haben will.

                                  Typische Nutznießer:

                                    NFS

                                    Datenbanken

                                    VM-Storage mit vielen synchronen Schreibvorgängen

                                    Anwendungen mit häufigem fsync()

                                    . Geeignete Geräte

                                    Ein geeignetes SLOG braucht:

                                      sehrbenötigen geringe Latenz,

                                      Latenz und

                                      hohe Schreibhaltbarkeit,

                                      Power-Loss-Protection,

                                      Protection. Wichtige SLOGs

                                      beisollten wichtigengespiegelt Systemen eine Spiegelung.

                                      Asynchrone Schreibvorgänge werden dadurch nicht schneller.werden. sync=disabled darfist nicht alskein pauschaler Tuningtrick eingesetzt werden,Tuningtrick, weil damit diedabei zugesagte Schreibsicherheit bei Stromausfall verloren geht.

                                      Special Device

                                      Ein Special vdev speichertfür dauerhaft:

                                      Metadaten

                                        ZFS-Metadaten,

                                        indirekte Datenblöcke,

                                        Dedup-Tabellen, falls kein separates Dedup-vdev existiert,

                                        optionalund kleine Datenblöcke.

                                        Beispiel:

                                        Blöcke
                                        zpool add tank special mirror /dev/nvme0n1 /dev/nvme1n1
                                        zfs set special_small_blocks=32K tank/daten

                                        Das kann einen HDD-Pool bei Verzeichniszugriffen, Scrubs, Resilvern und kleinen Dateien massiv beschleunigen.

                                        Aber: Ein Special Devicevdev speichert Metadaten, indirekte Blöcke, gegebenenfalls Dedup-Tabellen und optional kleine Datenblöcke dauerhaft. Es ist kein Cache. Die dort gespeicherten Blöcke existieren ausschließlich dort. Geht das komplette Special vdev verloren, ist der gesamte Pool verloren. Deshalb muss es mindestens dieselbeso Redundanzredundant wie der normale Pool besitzen.aufgebaut Beiwerden. einem RAIDZ-Pool istGeht das Hinzufügen praktisch eine dauerhafte Entscheidung. OpenZFS:vollständige Special vdev

                                        Kurzform:

                                        Gerätetyp Aufgabe Verlust Spare Ersatzplatte bereithalten Pool bleibt grundsätzlich intakt Cache/L2ARC Häufig gelesene Daten zwischenspeichern Unkritisch Log/SLOG Synchrone Schreibvorgänge bestätigen Risiko für jüngste Sync-Schreibvorgänge Special Metadaten und optional kleine Blöcke dauerhaft speichern Verlustverloren, kann dender ganzengesamte Pool zerstörenverloren sein. Siehe OpenZFS-Dokumentation zu Special vdevs.

                                        5.ZFS Pull-Replikation mit bashclub zsync

                                        zsync

                                        Die Replikation wirdläuft auf dem Zielserver gestartet:und holt markierte ZFS-Dateisysteme und ZVOLs über SSH von der Quelle. Das Ziel initiiert also die Replikation:

                                        ZFS-Quelle ── SSH/SSH und zfs send ──▶ ZFS-Ziel
                                                            ▲
                                                            │
                                                     Ziel startet den Pull

                                        DieDieses Pull-Modell reduziert die Rechte der Quelle schiebt ihre Daten nicht selbstständig auf dasdem Ziel. Stattdessen verbindet sich der Zielserver mit der Quelle, ermittelt passende Datasets und holt die benötigten ZFS-Send-Streams ab.

                                        Das ist sicherheitstechnisch wichtig:Sicherungsziel. Ein kompromittierter QuellserverProxmox-Server soll möglichstweder keineältere BerechtigungReplikate besitzen,löschen dasnoch die Retention auf dem Ziel oderverändern dessen ältere Stände zu löschen.können.

                                        AuswahlDatasets übermit dem ZFS-Attribute

                                        Attribut

                                        Auf der Quellebashclub:zsync markieren wir, welche Datasets und ZVOLs repliziert werden:

                                        zfs set bashclub:zsync=all rpool/data

                                        Die

                                        Auswahl wird über die ZFS-Hierarchie vererbt. Mögliche Werte sind:
                                        • all: markiertes Dataset und darunterliegendeuntergeordnete Datasets replizieren

                                          beziehungsweise ZVOLs einbeziehen
                                        • subvols: nur die untergeordnetenuntergeordnete Datasets und ZVOLs

                                          einbeziehen
                                        • exclude: diesenden markierten Zweig ausschließen

                                        Der Attributname kann angepasstgeändert werden. DamitDadurch lassen sich unterschiedlicheverschiedene ZieleReplikationsziele übermit unterschiedlicheunterschiedlichen Tags steuern.

                                        Ablauf einerder zsync-Replikation

                                        1. zsync läuftstartet auf dem Ziel.

                                          Zielserver.
                                        2. Das Ziel verbindet sich per SSH mit der ZFS-Quelle.

                                        3. Es liest dieDie ZFS-Attribute und bestimmtbestimmen die markiertenzu Datasets.

                                          replizierenden Datasets und ZVOLs.
                                        4. Optional wird vor der Replikation ein neuer Snapshot erzeugt.

                                        5. Quelle und Ziel suchen einenden neuesten gemeinsamen Snapshot.

                                        6. Der

                                          Beim erstenerste Lauf erfolgtsendet eineinen vollständigesvollständigen zfsStream; send.

                                          Folgeläufe übertragen nur geänderte Blöcke.
                                        7. Danach werden nur die seit dem gemeinsamen Snapshot geänderten Blöcke übertragen.

                                        Das Ziel legt automatischerzeugt den notwendigenvollständigen Dataset-Pfad an.

                                        automatisch.

                                        Auf dem Ziel wird com.sun:auto-snapshot=false erzwungen.

                                        verhindert ungewollte lokale Auto-Snapshots auf dem Replikationsziel.

                                        Der Mountpoint wird übernommen,übernommen aberund canmount=noauto verhindert ein versehentlichesunbeabsichtigtes automatisches Einhängen.

                                        Mounten.

                                        Gewünschte vorhandene Snapshots werden anhand von snapshot_filter mitgenommen.

                                        bestimmt, welche vorhandenen Snapshots mitgenommen werden.

                                        Die Replikation erfolgt als Raw Stream.

                                        Replication kann

                                        Raw Replikation ist insbesondere bei verschlüsselten ZFS-Datasets sinnvoll: Die verschlüsseltenverschlüsselte Blöcke können ohne Entschlüsselung auf dem Ziel übertragenübertragen. und gespeichert

                                        werden.

                                        Beispielhafte Zielkonfiguration:

                                        source=root@pve01
                                        target=backup/repl/pve01
                                        tag=bashclub:zsync
                                        snapshot_filter=hourly|daily|weekly|monthly
                                        min_keep=3
                                        zfs_auto_snapshot_keep=14
                                        zfs_auto_snapshot_label=zsync

                                        DieInstallation, Dokumentation beschreibt zsync als Pull-ReplikationTags und erklärt Tags, Snapshot-Filter sowiebeschreibt die Konfigurationdeutsche auf dem Ziel.bashclub-zsync-Dokumentation. Das frühere GitHub-Repository verweist inzwischen auf GitLab.das bashclub/zsync-DokumentationGitLab-Projekt.


                                        6.ZFS-Replikation Kontrolleper Snapshot-GUID mit checkzfs.py überwachen

                                        Eine erfolgreiche Script-Ausgabe allein beweist noch nicht, dass ein aktuelles und brauchbares Replikat vorhanden ist. Deshalb prüfen wir Quelle und Ziel zusätzlich mitexistiert. checkzfs.py.

                                        Dervergleicht zentrale Punkt istdeshalb die ZFS-GUID eines Snapshots. Snapshot-Namen können gleich aussehen und trotzdem unterschiedliche Inhalte oder Ursprünge haben. Die GUID identifiziert den Snapshot innerhalb der ZFS-Replikationskette eindeutig.

                                        Die Prüfung läuft sinngemäß so:

                                          Snapshots auf Quelle und Ziel auflisten.anhand ihrer ZFS-GUID. Gleiche Snapshot-Namen reichen als Nachweis nicht aus.

                                          Die

                                          Prüfung

                                          Datasets über Filter zuordnen.

                                          Snapshot-GUIDs miteinander vergleichen.

                                          Den neuesten gemeinsamen Snapshot bestimmen.

                                          Alter und Anzahl der Snapshots bewerten.

                                          Monitoringstatus OK, WARN oder CRIT ausgeben.

                                          Das Script erkenntkann unter anderem:anderem folgende Fehler erkennen:

                                          • kein Replikat gefunden,

                                          • letzter gemeinsamer Snapshot zu alt,

                                          • Snapshot auf dem Ziel fehlt,

                                            nicht vorhanden,
                                          • Rollback auf einen älteren Snapshot,

                                          • zu viele Snapshots,

                                          • unerwünscht aktivierteunerwünschte Auto-Snapshots auf dem Replikationsziel,

                                          • SSH- oder Abfragefehler.

                                          Das

                                          gewünschte
                                          Maximalalter

                                          Wunschalter wirdder überReplikation Schwellwerte in Minuten festgelegt:festlegen

                                          threshold: 1500,2000

                                          DamitIm kannBeispiel beispielsweisewird nach 1.500 Minuten gewarnt und nach 2.000 Minuten ein kritischer Zustand gemeldet werden.gemeldet. Zusätzlich lassen sich maximale Snapshotzahlen, Dataset-Filter, Snapshotfilter,Snapshot-Filter, SSH-Key und ein eigener Servicename konfigurieren.

                                          Beispiel:definieren.

                                          source: pve01
                                          remote: backup01
                                          filter: rpool/data
                                          replicafilter: backup/repl/pve01
                                          snapshotfilter: zsync|daily|weekly|monthly
                                          threshold: 1500,2000
                                          maxsnapshots: 140,160
                                          prefix: REPLICA

                                          Die Ausgabe kanneignet sich unter anderem alsfür Tabelle,Tabellen, JSON, CSV, E-Mail oderund lokalerlokale CheckCheckmk-Checks. für Checkmk erfolgen.Der Quellcode von checkzfs.py zeigt die verfügbaren Parameter und Prüfungen.

                                          Wichtig: DerEin GUID-Vergleich bestätigt,bestätigt dassdie derselbegemeinsame Snapshot auf beiden Seiten existiert.Snapshot-Identität. Er ersetzt keinenweder den regelmäßigen ZFS-Scrub undnoch keineneinen echtengetesteten Wiederherstellungstest.Restore.


                                          7.Trojanerresistentes Proxmox-Backup mit dem Miyagi-Workflow kompakt erklärt

                                          Der Miyagi-Workflow verbindet zwei unterschiedliche Sicherungsmethoden auf einem getrennten System:

                                          • Proxmox Backup ServerServer: fürdeduplizierte deduplizierte,und längerfristige VM- und LXC-Backups

                                          • nativeNative ZFS-Replikation fürReplikation: unmittelbar verfügbarevorhandene Datasets und ZVOLs

                                            für einen schnellen Wiederanlauf

                                          Das Ziel istsind sinngemäß:

                                            mindestens drei Datenkopien,

                                            mindestens zwei Standorte,

                                            zwei unterschiedlicheSicherungsmethoden, Sicherungsmethoden,

                                            automatische Kontrolle,

                                            Kontrolle und eine

                                            möglichst wenigkurze AngriffszeitNetzwerk-Erreichbarkeit aufdes dem Sicherungsserver.Sicherungsservers.

                                            Typischer Ablauf des Miyagi-Servers

                                            Miyagi-Server startet
                                                    │
                                                    ├─ Updates und Zustandsprüfung
                                                    ├─ ZFS-Replikation per Pull
                                                    ├─ PBS-Backup koordinieren
                                                    ├─ Verify, Wartung und MonitoringdatenMonitoring
                                                    ├─ GUID und Alter der Replikate prüfen
                                                    └─ Sicherungsserver herunterfahren

                                            Das ZFS-Replikat istkann füreinen schnelleschnellen Wiederanlauf-SzenarienWiederanlauf gedacht:ermöglichen, weil Datasets und ZVOLs und Datasets sind bereits vollständig auf dem Ziel vorhanden.liegen. EinDas PBS-Backup bietet dagegendie eine längerfristige undlängere, deduplizierte Historie, mussbenötigt für die produktive Nutzung jedochaber ersteinen wiederhergestellt werden.

                                            Der Sicherungsserver kann nach Abschluss heruntergefahren werden. Dadurch ist er nicht permanent über das Netzwerk erreichbar und die Angriffsfläche wird reduziert.Restore.

                                            Wann ist dasder trojanerresistent?Workflow gegen Ransomware und Trojaner widerstandsfähig?

                                            „Trojanersicher“ ist keinkeine Automatismus.einzelne Produkteigenschaft. Die Schutzwirkung entsteht nur,durch wenntechnische dieTrennung Berechtigungenund sauberminimale getrenntBerechtigungen:

                                            sind:
                                            • Das Ziel startet die ZFS-Pull-Replikation.

                                            • Die Quelle besitzt keine administrativen Schreib- oder Löschrechte auf dem Ziel.

                                            • SSH-Zugriffe werden auf die benötigtennotwendige Befehle und Datasets begrenzt.

                                            • Der PBS-API-Key erhält nur die wirklich erforderlichen Backup- und Restore-Rechte.

                                            • SSH-Passwortlogin per SSH wird deaktiviert.

                                              deaktiviert
                                            und

                                            Interaktiveinteraktive Konten werden mit 2FA geschützt.

                                            Snapshot-Löschung und Retention werden ausschließlich vom Ziel kontrolliert.

                                            Der

                                            DasMiyagi-Server Zielhat häufig nur definierte Routen und kein Default Gateway.

                                            Außerhalb des Sicherungsfensters ist außerhalb der SicherungsfensterServer ausgeschaltet oder wirksam isoliert.

                                            Scrubs, Verify-Jobs und Wiederherstellungstests werden regelmäßig ausgeführt.

                                            durchgeführt.

                                            Mindestens eine Kopie befindet sich an einem anderen Standort.

                                            Der Miygiserver läuft oft nur mit Routen, nicht Gateway System ist meist ausgeschaltet

                                            Der dokumentierte Workflow kombiniert Backups, startfähige ZFS-Replikate, Monitoring, Wartung und automatisches Herunterfahren. Die dortvollständige genanntenEinrichtung Mindestständebeschreibt sinddie Anleitung Backup und Replikation für Proxmox VE 8.4mit dem Miyagi-Workflow.


                                            Welche Proxmox-Storage-Lösung ist die richtige?

                                              Ein bis zwei Nodes: Lokales ZFS ist meist die einfachste und robusteste Lösung. Drei oder mehr geeignete Nodes mit echtem Storage-HA: Ceph RBD ist der typische Ansatz. Vorhandenes professionelles SAN: iSCSI mit klassischem LVM nutzt die bestehende zentrale Infrastruktur. Thin Provisioning und schnelle Linked Clones: Ceph oder ZFS. Vorhersehbare feste Platzbelegung: iSCSI mit LVM thick. Schneller lokaler Restore plus getrennte Kopie: ZFS-Snapshots mit Pull-Replikation und PBS kombinieren.

                                              Häufige Fragen zu Proxmox, ZFS, Ceph und Replikation

                                              Ist ein ZFS-Snapshot bereits ein Backup?

                                              Nein. Ein Snapshot liegt normalerweise auf demselben ZFS-Pool wie die produktiven Daten. Er schützt gut vor versehentlichem Löschen oder unerwünschten Änderungen, aber nicht vor dem vollständigen Verlust oder der Zerstörung des Pools.

                                              Was ist für Proxmox besser: Ceph oder ZFS?

                                              Für einzelne Server und kleine Cluster ist lokales ZFS meist einfacher. Ceph eignet sich für mehrere Nodes, verteilten Shared Storage und hohe Verfügbarkeit ohne einzelnen Storage-Kopf. Ceph benötigt dafür mehr Hardware, Netzwerkleistung und Betriebsaufwand.

                                              Kann Proxmox mit lokalem ZFS live migrieren?

                                              Ja, eine laufende VM kann migriert werden. Da lokales ZFS kein Shared Storage ist, muss der VM-Datenträger dabei jedoch auf den Ziel-Node kopiert werden. Bei Ceph oder gemeinsamem iSCSI-Storage entfällt diese Storage-Kopie in der Regel.

                                              Was ist der Unterschied zwischen ZFS-Replikation und Proxmox Backup Server?

                                              ZFS-Replikation überträgt native Datasets, ZVOLs und Snapshots und ermöglicht dadurch einen schnellen Wiederanlauf. Proxmox Backup Server 3.4;erstellt deduplizierte Backups mit längerer Historie und integriertem Restore für VMs und Container. Beide Verfahren ergänzen sich.

                                              Warum ist Pull-Replikation sicherer als Push-Replikation?

                                              Bei Pull-Replikation startet das Ziel die Verbindung und holt Daten von der Quelle. Die Quelle benötigt dadurch keine administrativen Rechte auf dem Sicherungsziel. Wird sie kompromittiert, kann sie ältere Ziel-Snapshots nicht ohne Weiteres löschen.

                                              Wozu vergleicht checkzfs.py Snapshot-GUIDs?

                                              Ein Snapshot-Name kann auf zwei Systemen identisch sein, ohne denselben Snapshot zu bezeichnen. Die GUID ermöglicht eine eindeutige Zuordnung und zeigt, ob Quelle und Ziel tatsächlich einen gemeinsamen replizierten Snapshot besitzen.

                                              Beschleunigt ein ZFS-SLOG alle Schreibvorgänge?

                                              Nein. Ein SLOG hilft nur bei neuerensynchronen InstallationenSchreibvorgängen. müssenAsynchrone KonfigurationWrites werden dadurch nicht grundsätzlich schneller. Ein geeignetes SLOG benötigt geringe Latenz und ScriptsPower-Loss-Protection.

                                              gegen

                                              Kann der Verlust eines Special vdev den ZFS-Pool zerstören?

                                              Ja. Ein Special vdev speichert bestimmte Blöcke dauerhaft und nicht nur als Cache. Es muss deshalb mindestens so redundant wie die eingesetztennormalen VersionenDaten-vdevs geprüftaufgebaut werden. Miyagi-Workflow-Dokumentation


                                              KernaussageFazit: Proxmox-Storage mit überprüfbarer Backup-Strategie

                                              Ceph, lokales ZFS und iSCSI erfüllen unterschiedliche Aufgaben. Entscheidend ist nicht nur die Storage-Technik, sondern der Sendungvollständige

                                              WirWiederherstellungsweg. verlassenAutomatische uns nicht auf einen einzelnen Sicherungsmechanismus:

                                                ZFS-Snapshots liefern schnelle lokale Zeitreisen.

                                                Zeitpunkte,

                                                Snapdirs erlauben unkomplizierten Datei-Restore.

                                                Rollbacks setzen komplette Datenbestände zurück.

                                                Clones schaffen sofort beschreibbare Teststände.

                                                Replace und RAIDZ-Expansion halten den Pool wartbar.

                                                Spares, L2ARC, SLOG und Special Devices lösen jeweils unterschiedliche Probleme.

                                                zsync ziehterzeugt getrennte native ZFS-ReplikateReplikate, auf ein getrenntes Ziel.

                                                checkzfs.py beweistkontrolliert überderen Snapshot-GUIDAktualität und Alter,der dass die Replikation aktuell ist.

                                                MiyagiMiyagi-Workflow kombiniert startfähigeZFS-Replikation Replikate,mit PBS-Backups,Proxmox Backup Server, Monitoring und zeitweisezeitweiser Offline-Sicherung.

                                                So entsteht aus ZFS-Snapshotseinzelnen Storage-Funktionen eine kontrolliertemehrstufige WiederherstellungsstrategieStrategie gegen Hardwareausfälle, Fehlbedienung, spät erkannte Datenfehler und auskompromittierte einerProduktivsysteme.

                                                bloßen
                                                Replikation
                                                ein überprüfbares Sicherheitskonzept.