I uploaded around 200~ GB of data to Backblaze B2 today.
This data does not change very often and I will be running a sync operation around once every month if it does.
I understand there is a risk of bit rot for data that is stored for long periods of time.
So, is considered good practise to run cryptcheck every one in a while if I am performing a sync operation once every month? Is it even required?
The reason I am asking is because B2 has transaction limits and the cryptcheck operation not only takes very long but also eats up a lot of transactions.
Thanks for the help!
To detect bit rot at B2 you really need to read all the data. Just checking the SHA1 sums will just read metadata at B2 and I don’t know if they check the SHA1 sums match the data regularly. I know that some object systems do (like Openstack Swift and CEPH) so maybe they do!
Node that reading crypt data is a very strong check for bitrot as each block (64k or so) has a very strong crypto authenticator on it.
cryptcheck will certainly check bitrot locally, however you might find that just running an
rclone check to look for missing files, changed files is the best thing to do regularly.
You could also check for local bitrot by running
rclone sha1sum /path | sort > sha1sums and see if that sha1sums files changes from run to run. That will detect bitrot locally very efficiently. In fact there is a ticket about adding a
-c flag to md5sum /sha1sum to automate this somewhere.