It depends. I recently built a new zfs pool server and needed to transfer a few TB of data from the old pool to the new pool, but I built the new pool with a larger record size. If Iād used zfs send the files would have retained their existing record size. So rsync it was.
IIRC neither ZFS nor btrfs use cryptographic hashes for checksumming by default.
* https://openzfs.github.io/openzfs-docs/Basic%20Concepts/Chec...
* https://people.freebsd.org/~asomers/fletcher.pdf
* https://en.wikipedia.org/wiki/Fletcher%27s_checksum
Strangely enough SHA-512 is actually (50%) faster than -256:
> ZFS actually uses a special version of SHA512 called SHA512t256, it uses a different initial value, and truncates the results to 256 bits (that is all the room there is in the block pointer). The advantage is only that it is faster on 64 bit CPUs.
It's also hard/impossible to restore individual files out of a ZFS send stream without restoring the whole thing so I've reverted to using tarballs of ZFS snapshots for backups instead of ZFS send. Again, it was never really meant for this so it was my mistake trying to use it that way.