ZFS-Schnappschüsse: Wie man sie erstellt, wiederherstellt und automatisiert
10 Min. Lesezeit - 5. Mai 2026

Lernen Sie, wie Sie ZFS-Snapshots unter Linux erstellen, wiederherstellen und automatisieren können. Deckt Befehle, Rollback, Aufbewahrungsrichtlinien und Offsite-Replikation mit Sanoid ab
ZFS-Schnappschüsse: Wie man sie erstellt, wiederherstellt und automatisiert
Ein ZFS-Snapshot ist eine schreibgeschützte, zeitpunktbezogene Kopie Ihres Dateisystems. Er wird sofort erstellt, nimmt keinen Speicherplatz ein, bis sich die Daten ändern, und ermöglicht Ihnen ein Rollback oder eine Wiederherstellung von Dateien in Sekunden. Wenn Sie Server, VPS-Instanzen oder irgendetwas mit Daten verwalten, deren Verlust Sie sich nicht leisten können, sollten Snapshots Teil Ihres Arbeitsablaufs sein.
In diesem Beitrag erfahren Sie, wie ZFS-Snapshots funktionieren, wie Sie sie verwenden und wie Sie die Aufbewahrung automatisieren können, damit sie sich nicht anhäufen.
Wie ZFS-Snapshots funktionieren
ZFS verwendet ein Copy-on-Write (CoW) Modell. Wenn Sie einen Snapshot erstellen, dupliziert ZFS keine Daten. Es zeichnet lediglich den aktuellen Zustand des Blockzeigerbaums auf. Neue Schreibzugriffe erfolgen auf freie Blöcke, während der Snapshot weiterhin auf die Originale verweist.
Das bedeutet, dass Snapshots unabhängig von der Größe des Datensatzes in Mikrosekunden erstellt werden und bei der Erstellung keinen zusätzlichen Speicherplatz verbrauchen. Sie verbrauchen erst dann Speicherplatz, wenn sich der Live-Datensatz ändert, da der Snapshot die Originalblöcke beibehält, die andernfalls freigegeben werden würden.
Dies ist ein grundlegender Unterschied zu Sicherungswerkzeugen auf Dateiebene wie rsync oder tar, die ganze Dateien scannen und kopieren. Wenn Sie 4 KB einer 10-GB-Datei ändern, kopiert rsync die gesamte Datei. ZFS speichert nur den 4-KB-Block.
Schnappschüsse sind außerdem unveränderlich. Sie werden auf der Kernel-Ebene als schreibgeschützt erzwungen, so dass Benutzerprozesse (einschließlich Ransomware) sie nicht ändern können. In Kombination mit der in ZFS integrierten Prüfsummenbildung bedeutet dies, dass Sie die Datenintegrität bei der Wiederherstellung überprüfen können.
Erstellen von Snapshots
Voraussetzungen
Sie müssen ZFS installiert und einen Pool eingerichtet haben. Unter Ubuntu 20.04+:
sudo apt update && sudo apt upgrade -y
sudo apt install zfsutils-linux -y
sudo modprobe zfsErstellen Sie einen Pool. Für eine einzelne Festplatte (typisch auf einem VPS):
sudo zpool create tank /dev/sdbVerwenden Sie bei einer gespiegelten Einrichtung auf einem dedizierten Server Festplatten-IDs anstelle von Gerätenamen, um Probleme nach einem Neustart zu vermeiden:
sudo zpool create tank mirror /dev/disk/by-id/ata-DISK1 /dev/disk/by-id/ata-DISK2Aktivieren Sie die Komprimierung (LZ4 ist schnell und effektiv):
sudo zfs set compression=lz4 tankErstellen Sie dann Datensätze für Ihre Workloads:
sudo zfs create tank/web
sudo zfs create tank/databasesErstellen eines Snapshots
Der grundlegende Befehl:
sudo zfs snapshot tank/web@before-updateFür Namen mit Zeitstempel (nützlich mit cron):
sudo zfs snapshot tank/db@$(date +%Y%m%d_%H%M%S)Um alle Child-Datensätze auf einmal zu erfassen, verwenden Sie das Flag recursive:
sudo zfs snapshot -r tank@daily_backupÜberprüfen Sie mit:
sudo zfs list -t snapshotWiederherstellung aus Snapshots
Wiederherstellung einzelner Dateien
Jeder ZFS-Datensatz hat ein verstecktes .zfs/snapshot-Verzeichnis an seinem Einhängepunkt. Es wird in ls nicht angezeigt, aber Sie können direkt zu ihm navigieren:
ls /tank/web/.zfs/snapshot/before-update/Um eine einzelne Datei wiederherzustellen:
cp -p /tank/web/.zfs/snapshot/before-update/config/app.conf /tank/web/config/Mit dem Flag -p bleiben die Berechtigungen und Zeitstempel erhalten.
Rückgängigmachen eines gesamten Datensatzes
Wenn Sie alles wiederherstellen müssen, z. B. nach einem fehlgeschlagenen Upgrade:
sudo zfs rollback tank/web@before-updateDies geschieht fast sofort, da ZFS Blockzeiger aktualisiert, anstatt Daten zu kopieren. Aber es ist destruktiv: Alle Änderungen, die nach dem Snapshot vorgenommen wurden, gehen dauerhaft verloren.
Wenn zwischen dem Ziel und dem aktuellen Zustand neuere Schnappschüsse existieren, wird ZFS das Rollback blockieren. Verwenden Sie -r, um es zu erzwingen und diese Zwischen-Snapshots zu entfernen:
sudo zfs rollback -r tank/db@20260426_090000Eine gute Angewohnheit: Machen Sie einen Snapshot des aktuellen (kaputten) Zustands, bevor Sie ein Rollback durchführen, so dass Sie bei Bedarf einen Fallback haben.
| Wiederherstellungsmethode | Geschwindigkeit | Risiko von Datenverlusten | Am besten geeignet für |
|---|---|---|---|
Dateiwiederherstellung über .zfs | Abhängig von der Dateigröße | Keine | Versehentliche Löschungen, Wiederherstellung einzelner Dateien |
| Vollständiges Rollback | Sofort | Hoch (alle Änderungen nach dem Snapshot gehen verloren) | Fehlgeschlagene Upgrades, systemweite Probleme |
| Klonen zu Testzwecken | Sofort | Keine (erstellt ein paralleles Dataset) | Überprüfen vor der Durchführung eines Rollbacks |
Verwalten und Beschneiden von Snapshots
Snapshots beginnen mit einer Größe von Null und wachsen, wenn sich die darunter liegenden Live-Daten ändern. So überprüfen Sie die Speicherplatznutzung:
zfs list -t snapshot -o name,used,refer,creationDie Spalte USED zeigt an, wie viel Speicherplatz nur für diesen Snapshot zur Verfügung steht. REFER zeigt die Gesamtgröße des Datensatzes an, als der Snapshot erstellt wurde.
So löschen Sie einen Snapshot:
sudo zfs destroy tank/web@before-updateSie können auch nach einem Muster löschen:
sudo zfs destroy tank/web@daily-2026-04-%Führen Sie immer zuerst einen Trockenlauf durch:
sudo zfs destroy -nv tank/web@daily-%ZFS kann technisch gesehen Millionen von Schnappschüssen verarbeiten, aber die Leistung nimmt ab ein paar tausend pro Datensatz ab. Befehle wie zfs list und zfs destroy verlangsamen die Leistung merklich. Halten Sie die Aufbewahrung eng.
Automatisierung der Vorratsspeicherung mit Sanoid
Sanoid ist das Standardwerkzeug für die Automatisierung der Erstellung und Bereinigung von ZFS-Snapshots. Sie definieren die Aufbewahrungsrichtlinien in sanoid.conf, und Sanoid erledigt den Rest.
Eine typische Produktionskonfiguration könnte wie folgt aussehen:
| Workload-Typ | Stündlich | Täglich | Wöchentlich | Monatlich |
|---|---|---|---|---|
| Standardproduktion | 24-48 | 30 | 8 | 12 |
| Datenbank (hohe Abwanderung) | 72 | 30 | 12 | 24 |
| Protokolle / niedrige Priorität | 12-24 | 7 | 0 | 3 |
| Statische Medien | 0 | 7 | 0 | 3 |
Sanoid unterstützt auch substündliche Schnappschüsse über den Parameter frequently. Wenn Sie frequently = 96 und frequent_period = 15 einstellen, erhalten Sie alle 15 Minuten einen Snapshot.
Planen Sie Sanoid über cron so ein, dass es jede Minute oder alle 15 Minuten läuft, und es wird automatisch Schnappschüsse erstellen und löschen.
Offsite-Replikation mit zfs send
Snapshots auf einem einzelnen Server schützen vor versehentlichen Änderungen und Softwarefehlern, aber nicht vor Hardwareverlust. Replizieren Sie daher außerhalb des Standorts mit zfs send und zfs receive über SSH:
zfs send tank/web@backup | ssh user@remote zfs receive backup/webFür inkrementelle Übertragungen (Senden nur dessen, was sich seit dem letzten Snapshot geändert hat):
zfs send -i tank/web@old_snap tank/web@new_snap | ssh user@remote zfs receive backup/webDas Sanoid-Begleittool syncoid automatisiert diesen Prozess und kümmert sich um inkrementelle Übertragungen, Fehlerbehebung und Protokollierung.
Ein Hinweis zum Schutz vor Ransomware
ZFS-Snapshots sind auf der Kernel-Ebene schreibgeschützt, was bedeutet, dass Standard-Malware sie nicht verändern oder verschlüsseln kann. Das ist eine starke Verteidigungsschicht. Aber sie ist nicht kugelsicher: Wenn ein Angreifer Root-Zugriff erhält, kann er Snapshots löschen, bevor er Ihre Daten verschlüsselt.
Snapshots sollten nur ein Teil einer umfassenderen Strategie sein. Kombinieren Sie sie mit Offsite-Replikation, eingeschränktem Root-Zugriff und Sicherheit auf Netzwerkebene. Verlassen Sie sich nicht allein auf Snapshots.
Video-Empfehlung
Abschließende Überlegungen
ZFS-Snapshots sind schnell, platzsparend und einfach zu verwenden, wenn man die Grundlagen verstanden hat. Sie sind kein Ersatz für externe Backups, aber sie füllen eine Lücke, die herkömmliche Backup-Tools nicht schließen können: sofortige Wiederherstellungspunkte ohne Aufwand, die Sie so oft wie nötig nutzen können.
Wenn Sie ZFS auf einem VPS oder dedizierten Server einsetzen, richten Sie Sanoid ein, definieren Sie eine Aufbewahrungsrichtlinie und automatisieren Sie die Replikation. Die Konfiguration dauert nur 30 Minuten und spart Stunden, wenn etwas schief geht. Probieren Sie es auf einem FDC VPS oder dedizierten Server aus.

ZFS-Schnappschüsse: Wie man sie erstellt, wiederherstellt und automatisiert
Lernen Sie, wie Sie ZFS-Snapshots unter Linux erstellen, wiederherstellen und automatisieren können. Deckt Befehle, Rollback, Aufbewahrungsrichtlinien und Offsite-Replikation mit Sanoid ab
10 Min. Lesezeit - 5. Mai 2026
Wie man Redis auf einem VPS installiert und verwendet
9 Min. Lesezeit - 7. Januar 2026

Haben Sie Fragen oder benötigen Sie eine individuelle Lösung?
Flexible Optionen
Globale Reichweite
Sofortige Bereitstellung
Flexible Optionen
Globale Reichweite
Sofortige Bereitstellung