diff --git a/zfs-check.md b/zfs-check.md new file mode 100644 index 0000000..cb46601 --- /dev/null +++ b/zfs-check.md @@ -0,0 +1,21 @@ +# Checking backups with zfs-check + +## What does it do? + +zfs-check is a tool to generate checksum streams of zfs datasets. (it also can be used on regular block devices and files) + +Its kind of like sha1sum but incremental: It generates a hash per "chunk" of data. This allows you to use it on huge datasets and only do a partial check of the data. + +## Why? + +A tool like this wouldn't seem necessary for ZFS: ZFS has full check summing, so you can be 100% sure the data doesn't get corrupted, right? + +While this is true to a certain extend, it IS possible that data gets corrupted during transfer with zfs send/recv. This can happen because of certain bugs in ZFS. For example: https://github.com/openzfs/zfs/issues/12762 + +In such cases the checksums are still OK, but they are of the wrong (corrupt) data. + +So a tool to actually compare the data of 2 datasets was needed, hence zfs-check. + + + +