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?
Inhalt
Proxmox Storage: Ceph RBD, lokales ZFS und iSCSI/LVM im Vergleich
| 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 |
Ja, |
Nein | Abhängig vom SAN |
| Thin Provisioning | Ja | Optional mit sparse |
Nein |
| Feste Platzreservierung | Standard | ||
| Ja | Ja | ||
| Linked Clones | Ja | Ja | Nein |
| Full Clones | Ja | Ja | Ja |
| VM- und LXC-Datenträger | Ja | Ja | Ja, über LVM |
| Ja | Nein | Ja | |
| Migration mit |
Ja | Ja | Ja |
| Selbstheilung | Lokal innerhalb des ZFS-Pools | Aufgabe des SAN | |
| Prüfsummen gegen stille Datenfehler | Ceph-intern | Nativ durch ZFS | Abhängig vom 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
Direktes
iSCSIiSCSI:Fertige LUN pro VM beziehungsweise bereits auf demDas SANangelegtestellt fertige LUNs bereit. Der Storage ist shared, bietet über das Proxmox-iSCSI-Backend aber keine nativen Snapshot- oder Clone-Funktionen.Shared Storage
iSCSI + klassisches LVMLVM: („thick“)
ZFS over iSCSIiSCSI:
PopuläreWelche Proxmox-Funktionen undhängen ihrevom Storage-AbhängigkeitStorage ab?
| Proxmox-Funktion | Ceph | Lokales ZFS | iSCSI thick |
|---|---|---|---|
| KVM-VMs und LXC-Container | |||
| HA-Neustart auf |
Nur mit Replikat oder Storage-Wiederherstellung | ||
| Live-Migration | Mit |
||
| VM-Snapshot |
|||
| Backup mit Proxmox Backup Server | |||
pvesrzfs send/receive
SAN-internProxmox-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 | ||
|---|---|---|
| Pools anzeigen | Node → Disks → ZFS | zpool list |
| ZFS-Übersicht | zpool status -v |
|
| 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 |
qm snapshot 100 snap1 |
zfs snapshot tank/vmdata/vm-100-disk-0@snap1 |
| Snapshot zurückrollen | 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 | zpool scrub |
zpool status tank
Defekte Platte ersetzen
Disks/ZFS zpool replace tank alt neu
TRIM starten
zpool trim tank
zfs get all tank/vmdataPraxisregel 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:
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
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 |
|---|
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 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:
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:
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:
zfs set snapdir=visible pool/daten
Mögliche
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 -rpool/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:
UpdatesUpdates, inDatenrettung einerund Testkopieisolierte prüfen
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:
zpool attach tank raidz2-0 neue-platte
DabeiMit gilt:
RAIDZ1ein bleibtbestehendes RAIDZ1.
RAIDZ2einzelne bleibtPlatten RAIDZ2.
RAIDZ3 bleibt RAIDZ3.
Die AnzahlFeature-Flag tolerierbarerraidz_expansion Plattenausfällemuss erhöhtvorhanden sichund nicht.
Die neue Platte muss mindestens so groß wie die kleinste vorhandene Platte sein.
Die Pool-Feature-FlagAnzahl tolerierbarer raidz_expansionmussPlattenausfälle verfügbarsteigt unddurch aktiviertdie sein.
Während der Expansion werdenliest die belegten Daten gelesenund undverteilt sie über die verbreiterte Gruppe neu verteilt.
Der Fortschritt erscheint in zpool status.
Bei einem PlattenausfallPlattenfehler pausiert die Expansion, bis das RAIDZvdev wieder gesund ist.
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
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:
derwiederkehrenden aktivezufälligen DatenbestandLesezugriffen größerund alseinem Arbeitsdatensatz, der RAMnicht ist,
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()
Ein geeignetes SLOG braucht:
sehrbenötigen geringe Latenz,
hohe Schreibhaltbarkeit,
Power-Loss-Protection,
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:
ZFS-Metadaten,
indirekte Datenblöcke,
Dedup-Tabellen, falls kein separates Dedup-vdev existiert,
optionalund kleine Datenblöcke.
Beispiel:
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:
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
beziehungsweise ZVOLs einbeziehenall:markiertesDataset unddarunterliegendeuntergeordnete Datasetsreplizieren
einbeziehensubvols: nurdie untergeordnetenuntergeordnete Datasets und ZVOLsexclude:diesenden markierten Zweig ausschließen
Der Attributname kann angepasstgeändert werden. DamitDadurch lassen sich unterschiedlicheverschiedene ZieleReplikationsziele übermit unterschiedlicheunterschiedlichen Tags steuern.
Ablauf einerder zsync-Replikation
zsyncläuftstartet auf demZiel.Zielserver.Das Ziel verbindet sich per SSH mit der ZFS-Quelle.
replizierenden Datasets und ZVOLs.Es liest dieDie ZFS-Attributeund bestimmtbestimmen diemarkiertenzuDatasets.Optional wird vor der Replikation ein
neuerSnapshot erzeugt.Quelle und Ziel suchen
einenden neuesten gemeinsamen Snapshot.- Der
Folgeläufe übertragen nur geänderte Blöcke.Beim erstenerste LauferfolgtsendeteineinenvollständigesvollständigenzfsStream;send. Danach werden nur die seit dem gemeinsamen Snapshot geänderten Blöcke übertragen.
Das Ziel legt automatischerzeugt den notwendigenvollständigen Dataset-Pfad an.
Auf dem Ziel wird com.sun:auto-snapshot=false erzwungen.
Der Mountpoint wird übernommen,übernommen aberund canmount=noauto verhindert ein versehentlichesunbeabsichtigtes automatisches Einhängen.
Gewünschte vorhandene Snapshots werden anhand von snapshot_filter mitgenommen.
Die Replikation erfolgt als Raw Stream.
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
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
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üfungDatasets ü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
nicht vorhanden,fehlt,Rollback auf einen älteren Snapshot,
zu viele Snapshots,
unerwünscht aktivierteunerwünschte Auto-Snapshots auf dem Replikationsziel,SSH- oder Abfragefehler.
Das
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ürdedupliziertededuplizierte,und längerfristige VM- und LXC-Backups
für einen schnellen WiederanlaufnativeNative ZFS-Replikation fürReplikation: unmittelbarverfügbarevorhandene Datasets und ZVOLs
Das Ziel istsind sinngemäß:
mindestens drei Datenkopien,
mindestens zwei Standorte,
zwei unterschiedlicheSicherungsmethoden, Sicherungsmethoden,
automatische Kontrolle,
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:
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
wirklicherforderlichen Backup- und Restore-Rechte.SSH-Passwortlogin
deaktiviertper SSHwirddeaktiviert.
Interaktiveinteraktive Konten werden mit 2FA geschützt.
Snapshot-Löschung und Retention werden ausschließlich vom Ziel kontrolliert.
DasMiyagi-Server Zielhat häufig nur definierte Routen und kein Default Gateway.
Scrubs, Verify-Jobs und Wiederherstellungstests werden regelmäßig ausgeführt.
Mindestens eine Kopie befindet sich an einem anderen Standort.
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?
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.
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.
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.