Ich habe kürzlich die checksum
Eigenschaft für eines meiner nicht duplizierten zfs-Dateisysteme in sha256
from on
(fletcher4) geändert , um das Senden duplizierter Replikations-Steams wie in diesem Befehl besser zu unterstützen zfs send -DR -I _starting-snaphot_ _ending-snapshot_
.
In der zfs-Manpage heißt es jedoch send -D
:
Dieses Flag kann unabhängig von der dedup-Eigenschaft des Datasets verwendet werden. Die Leistung wird jedoch erheblich verbessert, wenn das Dateisystem eine dedup-fähige Prüfsumme verwendet (z. B. sha256).
Die zfs-Manpage gibt dies auch für die checksum
Eigenschaft an:
Das Ändern dieser Eigenschaft wirkt sich nur auf neu geschriebene Daten aus.
Ich habe keine Lust, fletcher4 zu vertrauen. Der Nachteil ist, dass fletcher4 im Gegensatz zu SHA256 keine pseudozufällige Hash-Funktion ist und daher kein Kollisionsrisiko besteht. Es ist daher nur für die Deduplizierung geeignet, wenn es mit der Option "Verify" (Überprüfen) kombiniert wird, mit der Hash-Kollisionen erkannt und behoben werden.
Wie kann ich die Prüfsummen des Dateisystems aktualisieren, vorzugsweise ohne das System zu verlagern?
zfs receive
die Metadaten eines Dateisystems aktualisiert werden. Es scheint mir, dass es viel schneller gehen würde, wenn die Metadaten einfach so wären, wie sie sind. Dies kann jedoch aufgrund der Block- und nicht der Dateiebene der Prüfsumme unmöglich sein. In diesem Fallzfs send | zfs receive
würde sich eine akzeptable Basis für eine Lösung bilden.