Wie viele Daten werden übertragen, wenn zfs mit inkrementellen Momentaufnahmen gesendet wird?

422
Thorsten Schöning

Mein Szenario besteht aus zwei Servern in einem Hot-Standby-Setup mit ZFS zum Hosten von VMs und Verwenden von inkrementellen ZFS-Snapshots für die Replikation von Änderungen an den VMs von einem Server zum anderen, wobei regelmäßig zrep wie zrep verwendet wird . Nicht sicher, was diese Basis derzeit ist, könnte etwas langsam sein, wie alle paar Minuten.

Ich würde gerne wissen, was der inkrementelle Unterschied zwischen zwei Momentaufnahmen tatsächlich ist: ZFS ist eine Copy-on-Write-Methode, bei der das Überschreiben genau der gleichen Daten in einer Datei immer dazu führt, dass die neuen Daten in den freien Speicher kopiert und in die geänderten Daten eingefügt werden Datei. Wenn dies meines Wissens nach mehrmals zwischen zwei Snapshots geschieht, besteht der Unterschied zwischen diesen beiden Snapshots tatsächlich nur aus der letzten Änderung derselben Daten. Wenn also in einer Datei mit 50 GB Daten das 3fache der gleichen 20 GB Daten geschrieben wird, entspricht der Unterschied zwischen den Momentaufnahmen vor und nach diesen 3 Änderungen genau den letzten 20 GB der geschriebenen Daten. Die bisherigen 2 Schreibvorgänge von 20 GB gehen einfach verloren und das ist natürlich OK, da ich sonst zusätzliche Snapshots erstellen musste.

Während also im Laufe der Zeit tatsächlich 60 GB an Änderungen auf die Discs geschrieben wurden, beträgt der Unterschied zwischen den beiden Snapshots nur 20 GB und nur diese werden mithilfe von sendund receivevon Snapshots über das Netzwerk übertragen.

Ist das richtig oder irre ich mich?

2

1 Antwort auf die Frage

1
Thorsten Schöning

Ich habe eine Antwort von Stefan Ring auf einer Mailingliste erhalten. Wenn der Autor also versucht, es hier zu posten und seine Credits zu bekommen, werde ich es als Referenz veröffentlichen:

Es verhält sich wie erwartet. Inkrementelle Sends haben mehr oder weniger die gleiche Größe wie die Summe der "geschriebenen" Eigenschaften der gesendeten Momentaufnahmen. Sie können die Größenschätzung einfach mit zfs send -n überprüfen. Nach meiner Erfahrung ist diese Schätzung genau die resultierende Größe.

http://list.zfsonlinux.org/pipermail/zfs-discuss/2017-August/029033.html