Hi Guillermo,
I agree. BackupPC's RefCnt/Fsck is a must IMHO.
A main difference between PoolNightlyDigestCheck and btrfs' builtin
checksumming is that the nightly digest checks proactively scan the data and
will tell you about broken files as soon as they break (well, as soon as the
next check is done after the broke). Btrfs will only complain on retrieval;
perhaps soon, perhaps never. So you need a way to make sure that your archived
data is actually read every now and then, and compared to the checksums for
consistency.
For btrfs, this is done by the "scrub" operation. Which is recommended to be
done regularly.
In my experience, it's slightly lower on the CPU load than BackupPC's check,
but the actual load should be on I/O to the disk, not the CPU. Default CRC32 is
somewhat weaker than the MD5s used by BackupPC, but this is a concern for only
pool collisions, not for data rot. Newer btrfs' features include, e.g., xxhash
checksums, which are not only faster but also more collision resistant than MD5.
I personally use btrfs scrub exclusively (which also check's my non-BackupPC
files on that disk) and disabled NightlyDigestCheck. However, there is one
significant drawback that might or might not be an issue for you: btrfs scrub
is all-or-nothing; it always scans the entire partition and, to be frank, the
"idle priority scheduler" does not play nicely on every system. In contrast,
BackupPC's nightly checks are more clever in that you can scan parts of your
pool every night, to distribute the load on your system.
So, IMHO, the best approach is to have a separate partition/device exclusively
for your pool, use NightlyDigestCheck there, and *disable* (or not enable)
regular btrfs scrub. (You can keep checksumming active nevertheless, it's
extremely low overhead.)
A scrub does oh-so-slightly more, as it also checks metadata checksums and can
repair corrupted blocks if good copies are available - but problems will also
be detected by a BackupPC nightly scan, and corrective action can be taken.
For any of those, make sure you receive notifications by mail, monitoring, or
LEDs above your pillow in case there are errors. Spending a lot of time on
checksumming, reading SMART data, health checks etc. isn't going to help unless
you know about the results.
For ZFS, no clue.
Best,
Alex
On 5/4/21 6:38 PM, Guillermo Rozas wrote:
> One ensures against file system bit rot, the other ensures backup file
> consistency.
>
>
> I would say $Conf{PoolNightlyDigestCheckPercent} = 1 is also a check for bit
> rot, as the only thing it does is to read the file, re-calculate the md5
> checksum, and compares it with its name (which is the md5 calculated at the
> time of writing). It actually says it in the help, "This is check if there
> has been any server file system corruption."
>
> What controls the consistency of the backup are
> $Conf{PoolSizeNightlyUpdatePeriod} and specially $Conf{RefCntFsck}.
>
> Regards,
> Guillermo
>
>
> ___
> BackupPC-users mailing list
> BackupPC-users@lists.sourceforge.net
> List:https://lists.sourceforge.net/lists/listinfo/backuppc-users
> Wiki:https://github.com/backuppc/backuppc/wiki
> Project: https://backuppc.github.io/backuppc/
>
smime.p7s
Description: S/MIME Cryptographic Signature
___
BackupPC-users mailing list
BackupPC-users@lists.sourceforge.net
List:https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki:https://github.com/backuppc/backuppc/wiki
Project: https://backuppc.github.io/backuppc/