I recently changed the checksum
property on one of my non-duplicated zfs filesystems to sha256
from on
(fletcher4) to better support the sending of duplicated replication steams, as in this command zfs send -DR -I _starting-snaphot_ _ending-snapshot_
.
However, the zfs manpage has this to say about send -D
:
This flag can be used regardless of the dataset’s dedup property, but performance will be much better if the filesystem uses a dedup-capable checksum (eg. sha256).
The zfs manpage also states this about the checksum
property:
Changing this property affects only newly-written data.
I have no desire to trust fletcher4. The tradeoff is that unlike SHA256, fletcher4 is not a pseudo-random hash function, and therefore cannot be trusted not to collide. It is therefore only suitable for dedup when combined with the 'verify' option, which detects and resolves hash collisions.
How can I update the filesystem's checksums, preferably without offlining the system?