ZFS Backup mit Snapshots

OP #5971275
Lesenswert?

Hallo,
ich benutze auf meinem NAS ZFS. Wöchentlich erstelle ich mit rsync ein 
Backup auf einer externen HD, das Backup ist ein inkrementelles Backup.

Das funktioniert soweit ganz gut, aber ich wollte jetzt endlich von 
rsync weg und auf ZFS Snapshots wechseln. Meiner Meinung nach sollte das 
schneller gehen, da ZFS ja bereits weiss, welche Änderungen zu 
übertragen sind, im Gegensatz zu rsync, welches zuerst alle Dateien 
vergleichen muss!

Dazu erstelle ich jeweils einen neuen Snapshot von meinem Dataset und 
sende den mit "zfs send -Ri" auf die Backup-Platte. Das funktioniert 
auch wunderbar, ABER auf der Backupplatte ist natürlich dann immer nur 
der aktuelle Stand des Filesystems sichtbar, wenn ich die alten Stände 
anschauen möchte, muss ich über den .zfs Ordner gehen und dort in den 
Snapshots navigieren.

Plus, ich muss auf meiner Quelle auch alle alten Snapshots beibehalten, 
das möchte ich ja aber nicht, eigentlich will ich auf meiner Quelle nur 
den letzten Snapshot behalten (um inkrementelle Backups zu ermöglichen).

Bei meinem rsync Backup ist es so, dass auf der Backup-Platte ein neuer 
Ordner mit dem Datum angelegt wird, und dort wird dann alles, was neu 
ist, rein kopiert, der Rest sind dann Hard Links. Eigentlich möchte ich 
sowas hier auch wieder machen, aber von den Möglichkeiten von Snapshots 
und send/receive profitieren.

Wie geht das?
Moderator Persönliche Seite #5971345
Lesenswert?

Das mit den hard links wird so nicht funktionieren, aber ansonsten, wenn 
ich das richtig lese, sollte doch zfs receive exakt wieder einen 
passenden Snapshot auf dem Ziel anlegen, oder? Damit müsstest du 
unterhalb von .zfs/snapshots die alten Snapshots sehen können, toplevel 
den letzten empfangenen.

zfs send -R ist in dieser Hinsicht vielleicht gar nicht so gut, denn 
dann scheint zfs receive die alten (auf der Quelle schon gelöschten) 
Snapshots zu entfernen – replica mode eben. Ohne -R sollten meiner 
Meinung nach auf dem Ziel immer nur neue Snapshots angelegt werden.

Habe zfs send bislang nur benutzt, um komplette Dateisysteme zu 
replizieren oder aber als Stream auf einem externen Medium abzulegen.
OP #5971408
Lesenswert?

Jörg W. schrieb:
> sollte doch zfs receive exakt wieder einen
> passenden Snapshot auf dem Ziel anlegen, oder?

ja, das stimmt, allerdings gibt es Probleme mit den Snapshotnamen: 
Snapshot 1 besteht noch von letzter Woche. Heute lege ich Snapshot 2 an, 
mache ein inkrementelles "zfs send", und lösche danach Snapshot 1 und 
benenne Snapshot 2 nach Snapshot 1 um. Denn ich will ja nicht immer alle 
alten Snapshots aufbewahren. Aber die Snapshots auf dem Ziel kollidieren 
dann halt.

Ausserdem habe ich noch ein anderes Problem festgestellt: sobald ich auf 
dem Ziel-Pool schon nur mit "ls" oder ähnlich die Dateien anschauen 
will, und danch wieder einen Snapshot senden will, kommt der Error 
"cannot receive incremental stream: destination fass/bak has been 
modified
since most recent snapshot", was nicht verständlich ist, denn ich hab ja 
nichts modifiziert. :-(
Moderator Persönliche Seite #5971427
Lesenswert?

Tobias P. schrieb:

> Aber die Snapshots auf dem Ziel kollidieren
> dann halt.

Dann benenne die Snapshots doch anders, bspw. <YYYY>-<MM>-<DD>T<HHMMSS> 
(ISO8601 timestamp). Dann kannst du die alten löschen, ohne Kollisionen 
zu haben.

> …, was nicht verständlich ist, denn ich hab ja
> nichts modifiziert. :-(

Wahrscheinlich hast du dabei Metadaten modifiziert. Read/only mounten 
sollte helfen.
OP #5974010
Lesenswert?

Jörg W. schrieb:
> Ja, denke ich auch. Kann man vielleicht auch mit noatime oder sowas
> erreichen, aber da das ein Backup ist, ist r/o meiner Meinung nach
> sowieso die sinnvollere Option.

ja, das macht so schon Sinn. Man soll im Backup ja nichts ändern können.

Die einzige kleine Unschönheit an diesem ZFS-Backup ist, dass man auf 
die alten Stände nur über den .zfs/snapshot Ordner zugreifen kann; beim 
rsync-Backup hatte man direkt im Hauptordner für jedes Datum 
entsprechende Unterordner, was ein bisschen übersichtlicher war. Jetzt 
sieht man im Hauptordner nur jeweils den letzten Stand, und die alten 
Stände eben über die Snapshots. Ob man da wohl noch was konfigurieren 
kann?

andererseits wird man wohl einen Tod sterben müssen, das ZFS-Backup ist 
beim meinen 2TB Daten wesentlich schneller. Rsync muss sich da erst 
durch jede einzelne Datei durch wühlen, was sehr lang dauert, selbst 
wenn rsync nicht die Prüfsummen (MD5) der Dateien vergleicht sondern nur 
das Datum.
#5974216
Lesenswert?

Walter K. schrieb:
> ... und ein Snapshot ist zwar genial - aber eben immer nur ein sehr
> eingeschränktes Backup

Es gibt 2 Arten von Backups:
-1- Verlust von Files und Dirs, selektiver Restore diverser Stände,
-2- Verlust von Medien, Komplettrestore des letzten Stands.

Früher hat man das oft kombiniert. Heute neigt man dazu, das zu trennen. 
Snapshots helfen nur gegen 1, das aber komfortabel.
OP #5974220
Lesenswert?

Ich benutze ja nicht die Snapshots als Backup! sondern die Snapshots 
werden nur verwendet, um ein inkrementelles ZFS send auf eine andere 
Platte, welche über USB angeschlossen wird, vorzunehmen. Es würde 
schlichtweg zu lange dauern, jedes mal ein Vollbackup herzustellen, 
deshalb muss ich mit inkrementellen Backups arbeiten.
OP #5974269
Lesenswert?

Jörg W. schrieb:
> Er hat ja letztlich beides, da er den ZFS-Stream auf ein separates
> Medium clont, dort aber halt wieder als (read/only) Dateisystem
> auspackt, von dem er neben dem letzten Stand auch noch eine Anzahl an
> älteren Snapshots aufhebt.

genau. Wobei man noch erwähnen muss, dass das NAS mit raidz arbeitet, 
während das Backup wirklich nur eine einzelne Platte ohne jegliche 
Redundanz ist. Ich glaube, dass es unwahrscheinlich ist, dass der raidz 
Pool in einen Zustand kommt, den er nicht selber heilen kann, und 
gleichzeitig die Backupplatte den Schirm zumacht. Deshalb, und wegen des 
bequemeren Handlings, Backup ohne Redundanz.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren