Replakationsaufgaben – die hälfte gehen nicht???

Kartoffel

Dabbler
Joined
Oct 1, 2016
Messages
37
Mein aktuelles True-NAS 12.0-U8 hat mehrer Datasets (ds1-4), die zu verschiedenen Zeiten und unterschiedlichen Frequenzen (stündlich, täglich,...) auf einen lokalen Pool gesichert werden. Die Backups sollen länger aufgehoben werden als die Quell-Snapshots, wenn das geht.

Jetzt habe ich für jedes ds einen Periodic Snapshot Task erstellt. Anschließend eine passende Replikationsaufgaben, bei der der entsprechende Periodic Snapshot Task zugewiesen ist. Alle Replikationen sind gleich eingestellt, aber nur die Hälfte funktioniert. So funktioniert täglich ds1, aber nicht stündlich ds1. Dafür funktionier stündlich ds2, aber nicht täglich ds2. Stündlich ds3 und ds 4 klappt, weiter habe ich wegen der Fehler nicht definiert.

An stündlich ds1 beiße ich mir nun komplett die Zähne aus, weil auch das Definieren per einfacher Einstellung (ohne separaten Snapshot Task) und mit Defaut Einstellungen einfach nicht klappen will: * Replication "ds1-1h" failed: No incremental base on dataset 'ds-Pool/ds1' and replication from scratch is not allowed..

Die Snapshot der Quelle sind alle vorhanden. Im Backup landen nur die Snapshots der funktionierenden Replikationen. Ein paar Tage Zeit habe ich dem System auch gegeben. ich weiss nicht mehr weiter...
 
Joined
Jan 27, 2020
Messages
577
Hast du probiert den Replication-Tasks eigene Snapshot-Tasks zu geben? Die Fehlermeldung sagt dir ja, dass es keine Snapshots gibt, die repliziert werden können. Also entweder die vorhanden Snapshot-Aufgaben entsprechend anpassen, dass diese abgeschlossen sind bevor die Replication ausgeführt wird. Oder gleich die Replication mit eigenen Snapshot-Tasks einstellen.
 

bic

Contributor
Joined
Dec 7, 2021
Messages
184
@ Kartoffel, komisch, da scheint sich vielleicht doch etwas zeitlich zu überschneiden. Bei mir werden 3 Zvols täglich in einem Abstand von 10 min "gesnapshots" und genau auf diesen Shots laufen dann auch 3 Replikationen auf ein anderes NAS, egal wie groß die jeweiligen Snapshots auch ausfallen:

Unbenannt.JPG

Das Ganze funktioniert nun schon seit Monaten problemlos. Vielleicht solltest Du Deine Snapschots tatsächlich einmal zeitlich entzerren, denn obwohl immer gesagt wird, dass die Shots nur wenige Byts groß wären, sieht man z.B. bei mir (guckst du oben :smile:), wohin das laufen kann. U.u. kommt es dann zu Problemen, wenn ein Shot in den nächsten hineinläuft
Nix_wissen.gif
 

Kartoffel

Dabbler
Joined
Oct 1, 2016
Messages
37
Sorry, die letzten Tage haben sich andere Sache vorgedrängelt. @mistermanko: Ich habe ja erst lauter Periodic Snapshot Task erstellt. Anschließend eine passende Replikationsaufgaben. Auffällig ist, dass für jede Quelle (und gleichzeitig jedes Ziel) genau eine Replication zuverlässig funktioniert.

Es scheint so zu sein, dass für eine Quelle/Ziel nur eine Periodic Snapshot Task Aufgabe zulässig/möglich ist. Auf diesem einen Periodic Snapshot Task kann man jetzt verschiedenen Replikationsaufgaben mit eigenem Zeitplan und eigener Lebensdauer definieren. Man kann aber nicht verschiedene Periodic Snapshot Task einer Quelle/Ziel als Aufgabe replizieren.

Wenn das so ist, dann ist dieser Bug/Einschränkung ist in der Dokumentation nicht beschrieben. Leider fehlen dort auch noch viele Angaben/Beschreibungen zu den erweiterten Einstellungen. Oder übersehe ich da was?
 
Joined
Jan 27, 2020
Messages
577
Etwas durcheinander, ich versuche mal zu sortieren:

dass für eine Quelle/Ziel nur eine Periodic Snapshot Task Aufgabe zulässig/möglich ist.
Absolut so gewollt und auch völlig logisch, wenn man kurz drüber nachdenkt.
Replication ist ein "Kopiervorgang" von Snapshots von einem Dataset auf ein anderes. Der Replication-Tasks muss sich also für genau einen Snapshot entscheiden.
Natürlich kannst du mehrere Replication-Tasks für ein Quelle-Ziel-Paar erstellen, nur wozu? Richte doch einen Task einfach so ein, dass immer der letzte Stand vom Quell-Dataset aufs Ziel-Dataset repliziert wird. Standardmäßig erzeugt ein neuer Replication-Task auch einen neuen Snapshot-Task mit genau den Parametern, die für die Replication nötig sind. (Intervall, Rekursion etc), du kannst aber auch einen schon vorhandenen Snapshot-Task auswählen. Der sollte sich allerdings nicht mit der Replikation überschneiden.
Also bspw. weekly replication am Mittwoch, aber weekly Snapshot am Donnerstag, damit sind die replizierten Daten 6 Tage alt bei Ausführung.
Leider fehlen dort auch noch viele Angaben/Beschreibungen zu den erweiterten Einstellungen.

Die TrueNAS Doku geht nicht sehr ins Detail, das stimmt. Aber ZFS Replication ist ein sehr gut dokumentiertes Thema im Netz. Schau bspw. mal hier nach: https://www.youtube.com/watch?v=XOm9aLqb0x4
Oder wenn du lieber liest: https://klarasystems.com/articles/introduction-to-zfs-replication/
 

Kartoffel

Dabbler
Joined
Oct 1, 2016
Messages
37
Danke für die Erklärung, mistermanko. Nun ist es klarer. Noch ein Tipp, wie man einen vergurkten Task wieder hinbiegen kann: Man aktiviert ein Mal "Synchronize Destination Snapshots With Source " – dabei werden alle im Ziel bereits vorhandenen Snapshots der Quelle gelöscht! Wenn das OK ist, dann lässt man den Task einmal durchlaufen und stellt anschließen die Synchronisation wieder zurück.

Wozu verschiedenen Replikationen für eine Quelle? Weil sich die Lebensdauer der Replikationen nur absolut einstellen lässt. Die stündliche Sicherung wird nur wenige Tage aufgehoben, die tägliche ein paar Wochen, usw. Die jährlichen bleiben bis ich von Hand eingreife.
 

Kartoffel

Dabbler
Joined
Oct 1, 2016
Messages
37
Wozu verschiedenen Replikationen für eine Quelle? Weil sich die Lebensdauer der Replikationen nur absolut einstellen lässt. Die stündliche Sicherung wird nur wenige Tage aufgehoben, die tägliche ein paar Wochen, usw. Die jährlichen bleiben bis ich von Hand eingreife.
Leider funktioniert das nicht wie erwartet. Die Lebensdauer der "Replikanten" entspricht immer der Einstellung des Periodic Snapshot Task – die Einstellungen in den Replakations-Aufgaben wird konsequent ignoriert!

Kann man das irgendwie anders intelligent in TrueNAS lösen? Oder muss man einfach alle Snapshots behalten, und dann ab und an händisch Lösch-Orgien starten?
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Das ist nicht richtig. Ich mache hier stündlich Snapshots, die ich zwei Wochen aufhebe. Von diesen wird immer der von 00:00 auf ein entferntes System repliziert und diese Kopien werden drei Monate aufgehoben. Das funktioniert wie konfiguriert. Ich besorge Screenshots.

Edit - Snapshot-Task:
Bildschirmfoto 2022-04-20 um 19.02.16.png


Replication-Task:
Bildschirmfoto 2022-04-20 um 19.02.53.png

Bildschirmfoto 2022-04-20 um 19.03.08.png

Bildschirmfoto 2022-04-20 um 19.03.22.png


Status Source:
Code:
root@freenas[~]# zfs list -t snap -r ssd/vms/windows-disk0   
NAME                                          USED  AVAIL     REFER  MOUNTPOINT
ssd/vms/windows-disk0@auto-2022-04-06_19-00  28.4M      -     34.8G  -
ssd/vms/windows-disk0@auto-2022-04-06_20-00  14.8M      -     34.8G  -
ssd/vms/windows-disk0@auto-2022-04-06_21-00  20.3M      -     34.7G  -
ssd/vms/windows-disk0@auto-2022-04-06_22-00  12.0M      -     34.7G  -
[...]
ssd/vms/windows-disk0@auto-2022-04-20_16-00  8.00M      -     34.9G  -
ssd/vms/windows-disk0@auto-2022-04-20_17-00  7.86M      -     34.9G  -
ssd/vms/windows-disk0@auto-2022-04-20_18-00  9.06M      -     34.9G  -
ssd/vms/windows-disk0@auto-2022-04-20_19-00  8.40M      -     34.9G  -
root@freenas[~]# 


Status Destination:
Code:
root@freenas2[~]# zfs list -t snap -r fusion/backup/vms/windows-disk0
NAME                                                    USED  AVAIL     REFER  MOUNTPOINT
fusion/backup/vms/windows-disk0@auto-2022-01-27_00-00   463M      -     32.6G  -
fusion/backup/vms/windows-disk0@auto-2022-01-28_00-00   379M      -     32.6G  -
fusion/backup/vms/windows-disk0@auto-2022-01-29_00-00   347M      -     32.6G  -
fusion/backup/vms/windows-disk0@auto-2022-01-30_00-00   339M      -     32.6G  -
[...]
fusion/backup/vms/windows-disk0@auto-2022-04-17_00-00   692M      -     34.8G  -
fusion/backup/vms/windows-disk0@auto-2022-04-18_00-00   355M      -     34.8G  -
fusion/backup/vms/windows-disk0@auto-2022-04-19_00-00   340M      -     34.8G  -
fusion/backup/vms/windows-disk0@auto-2022-04-20_00-00     0B      -     34.9G  -
root@freenas2[~]#

Es sind noch keine ganzen 12 Wochen, weil ich die Dauer erst vor kurzem von 8 auf 12 Wochen hochgedreht habe. Aber wie du siehst sind es definitiv mehr als die 2 Wochen auf dem Source-System.

Gruß, HTH
Patrick
 
Last edited:

Kartoffel

Dabbler
Joined
Oct 1, 2016
Messages
37
Interessant. Wäre ja schön, wenn es doch so gehen würde, wie ich es mir vorstelle. Vielleicht macht es einen Unterschied, ob das Ziel auf dem selben oder einem separaten System liegt? ich verwende nur ein TrueNAS. Ich spiegele die Daten zeitversetzt im Gerät, wenn man so will.
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Das geht hundert pro auch auf demselben System. Mir ist noch nicht ganz klar, wie genau du versucht hast, deine Policy umzusetzen. "Replicate specific snapshots" ermöglicht dir eine niedrigere Frequenz auf dem Ziel, "Snapshot retention: Custom" die längere Haltedauer.
 

Kartoffel

Dabbler
Joined
Oct 1, 2016
Messages
37
OK, "Replicate specific snapshots" habe ich nicht verwendet, sondern einen eigenen "Schedule" (letzte Option, letzter Screenshot von Dir). Der faktische Unterschied ist mir nicht klar.

"Snapshot retention: Custom" verwende ich genauso wie Du. Aber Deine Web-Oberfläche ist bunter – nutzt Du eine ältere Version? Bei mir ist es TrueNAS 12.0 U8
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
12.0-U8 mit einem eigenen Farbschema, das ein wenig an FreeNAS angelegt ist. Nostalgie ... :smile:

Das eigene Schedule definiert nur, wie oft repliziert wird. Nicht, welche Snapshots dann repliziert werden (lies: trotzdem immer alle). Du musst schon "specific" verwenden, wenn es auf dem Ziel größere Abstände sein sollen.
 

Kartoffel

Dabbler
Joined
Oct 1, 2016
Messages
37
Es wird dann der Snapshot repliziert, der zum selben Zeitpunkt erneut wurde. Ansonsten hat das ja funktioniert. Aber die Lebensdauer wird nicht berücksichtig. Habe nochmal die vorhandenen Snapshots geprüft, ebenso alle Einstellungen der verschiedenen Task's.

Kann es sein, dass man die Lebensdauer nur bei der ersten Definition einstellen kann? Vielleicht übernimmt die Replikation jede nachträgliche Änderung an der Lebensdauer des Periodic Snapshot Task?
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Es wird dann der Snapshot repliziert, der zum selben Zeitpunkt erneut wurde.
Dann hast du aber auch noch den Haken drin bei "Only Replicate Snapshots Matching Schedule" - korrekt?

Wie gesagt - so wie in den Screenshots funktioniert es bei mir. Ich habe auch über die letzten Monate immer mal wieder an der custom retention gefummelt (taste mich an die Kapazität des Backup-Systems heran) und es hat immer genau so funktioniert wie gewünscht.
 

Kartoffel

Dabbler
Joined
Oct 1, 2016
Messages
37
Dann hast du aber auch noch den Haken drin bei "Only Replicate Snapshots Matching Schedule" - korrekt?
Nö, das Replizieren funktioniert auch so. Ob deswegen die verschieden eingestellten Lebensdauern nicht verwendet werden, weiss ich nicht. Theoretisch sollte das keinen Unterschied mach, so wie ich mir das System vorstelle. Aber es ist ja unbekannt, wie es hinter den Kulissen arbeitet.

Edit: Vielleicht brauche ich das "Only Replicate Snapshots Matching Schedule" nicht, weil ich erstmal alle Snapshots auch replizieren möchte (kostet ja nichts intern, die dauern meist nur Sekunden).

Vor allem wenn nur die allerersten Definitionen funktionieren sollten und spätere Anpassungen zur von mir beobachteten Fehlfunktion führen sollte, dann wird es schwer das auszutesten, denn man kann ja nicht einfache neue Replikationen mit neuen Snapshot Tasks auf das selbe Ziel anlegen (ich hab jetzt auch verstanden warum – jeder gesendete Snapshot an ein neues Ziel generiert dort ein neuen Dataset, auf den sich alle weiteren Replikation beziehen).
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Warum stellst du es nicht einmal genau so ein wie ich es getan habe? Rechner sind deterministisch.
 

Kartoffel

Dabbler
Joined
Oct 1, 2016
Messages
37
Warum stellst du es nicht einmal genau so ein wie ich es getan habe? Rechner sind deterministisch.
Mache ich gerade. Aber als zusätzliche Replikations-Aufgabe wird auf diese Weise zwo der Task ausgeführt ("Finished"), aber kein Snapshot gesendet ("No snapshots sent yet").

Zwei Vermutungen warum es bei Dir klappt: 1. auf einem zweiten Gerät ist alles anders. Oder 2. änderst Du die Lebensdauer des initialen Snapshot nicht, sondern nur die Lebensdauer Deiner Replikationen.

Wo wird den gespeichert, wann ein Snapshot gelöscht werden soll (bzw. wie lange er leben darf)? Ist der Snapshot entsprechend markiert? Oder geht TrueNAS die Aufgaben und Log-dateien durch, um festzustellen, welche Snapshots gelöscht werden sollen?
 

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Natürlich ändere ich nur die Lebensdauer der Replikationen. Übrigens auch bei Tasks auf ein und demselben Gerät. Ich repliziere einmal SSD Mirror --> HDD RAIDZ2, und dann eben noch einmal off-site.
 

Kartoffel

Dabbler
Joined
Oct 1, 2016
Messages
37
Natürlich ändere ich nur die Lebensdauer der Replikationen.
Danke für den Hinweis. Das zeigt in die angedeutete Richtung. Leider kann ich das bei meinen Daten nachträglich nicht reparieren, weil ich zum Anlegen eines neuen initialen Snapshot Task alle vorhandenen Backups löschen müsste (oder den Bestand doppelt anlegen – noch eine 14-18 TB Platte kann ich mir aktuell nicht leisten "zum Spaß").

Da mir auch noch die Apple spezifischen Attribute aller Dateien verloren gegangen sind (Ordner-Icons, Etikette/Tags, alle Alias ungültig), brauche ich dringen noch den Altbestand. Und eigentlich habe ich gar keine Zeit für sowas...
 

Kartoffel

Dabbler
Joined
Oct 1, 2016
Messages
37
Jetzt läuft ein Test eines kleinen datasets/ZVol (4 GB). Snapshot Quelle alle 10 Minuten (Lebensdauer 1 Std.), Replication so sonst immer von mir definiert (nicht "Replicate specific Snapshot", nicht "Only Replicate Snapshots Matching Schedule" > nur eigener Zeitplan "stündlich" – Lebensdauer 12 Std.). Ergebnis bisher:

- in der Quelle sind die Snapshots nicht älter als 1 Std. > passt!
- im Ziel gibt es neben den mit dem definierten Snapshot Task erstellen Snapshots, auch mutmaßlich alle anderen Snapshots der Quelle, unabhängig vom Namen und dem task, der sie erstellt hat > faszinierend, hätte ich so nie gedacht!

Spannend wird es in knapp 12 Std., wenn auch im Ziel die Lebensdauer der Test-Sicherungen abläuft. Werden Snapshots dort gelöscht? Nur die von Periodic Snapshot Task erstellten, oder auch die "versehentlich" mutreplizierten älteren Snapshot?

Und was passiert, wenn ich die Lebensdauern ändere...
 
Top