ZFS-Schnappschüsse: Wie man sie erstellt, wiederherstellt und automatisiert

10 Min. Lesezeit - 5. Mai 2026

hero section cover
Inhaltsverzeichnis
  • ZFS-Schnappschüsse: Wie man sie erstellt, wiederherstellt und automatisiert
  • Wie ZFS-Snapshots funktionieren
  • Erstellen von Snapshots
  • Wiederherstellung aus Snapshots
  • Verwalten und Beschneiden von Snapshots
  • Automatisierung der Vorratsspeicherung mit Sanoid
  • Offsite-Replikation mit zfs send
  • Ein Hinweis zum Schutz vor Ransomware
  • Video-Empfehlung
  • Abschließende Überlegungen
Teilen

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 zfs

Erstellen Sie einen Pool. Für eine einzelne Festplatte (typisch auf einem VPS):

sudo zpool create tank /dev/sdb

Verwenden 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-DISK2

Aktivieren Sie die Komprimierung (LZ4 ist schnell und effektiv):

sudo zfs set compression=lz4 tank

Erstellen Sie dann Datensätze für Ihre Workloads:

sudo zfs create tank/web
sudo zfs create tank/databases

Erstellen eines Snapshots

Der grundlegende Befehl:

sudo zfs snapshot tank/web@before-update

Fü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 snapshot

Wiederherstellung 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-update

Dies 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_090000

Eine gute Angewohnheit: Machen Sie einen Snapshot des aktuellen (kaputten) Zustands, bevor Sie ein Rollback durchführen, so dass Sie bei Bedarf einen Fallback haben.

WiederherstellungsmethodeGeschwindigkeitRisiko von DatenverlustenAm besten geeignet für
Dateiwiederherstellung über .zfsAbhängig von der DateigrößeKeineVersehentliche Löschungen, Wiederherstellung einzelner Dateien
Vollständiges RollbackSofortHoch (alle Änderungen nach dem Snapshot gehen verloren)Fehlgeschlagene Upgrades, systemweite Probleme
Klonen zu TestzweckenSofortKeine (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,creation

Die 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-update

Sie 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-TypStündlichTäglichWöchentlichMonatlich
Standardproduktion24-4830812
Datenbank (hohe Abwanderung)72301224
Protokolle / niedrige Priorität12-24703
Statische Medien0703

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/web

Fü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/web

Das 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.

Blog

Diese Woche im Blickpunkt

Weitere Artikel
ZFS-Schnappschüsse: Wie man sie erstellt, wiederherstellt und automatisiert

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

Weitere Artikel
background image

Haben Sie Fragen oder benötigen Sie eine individuelle Lösung?

icon

Flexible Optionen

icon

Globale Reichweite

icon

Sofortige Bereitstellung

icon

Flexible Optionen

icon

Globale Reichweite

icon

Sofortige Bereitstellung