Even without using ZFS (I prefer XFS as significantly faster) all the files that I store have content hash values in extended attributes, for data integrity verification (and also for data deduplication).
Whenever I write that drive, after a power cycle (to be sure that the files are read from disks and not from some cache) I run a script that checks the integrity of the files, to be sure that I can remove them from elsewhere without risking data loss.
With SMART-enabled drives, I usually do that only in the rare cases when a drive reports corrected errors, because I have seen cases when a drive miscorrected some errors, resulting in corrupted files. With a HDD without SMART, when the drives finds errors, but it believes to have corrected them successfully, there is no external sign that something could have gone wrong.
Even without using ZFS (I prefer XFS as significantly faster) all the files that I store have content hash values in extended attributes, for data integrity verification (and also for data deduplication).
Whenever I write that drive, after a power cycle (to be sure that the files are read from disks and not from some cache) I run a script that checks the integrity of the files, to be sure that I can remove them from elsewhere without risking data loss.
With SMART-enabled drives, I usually do that only in the rare cases when a drive reports corrected errors, because I have seen cases when a drive miscorrected some errors, resulting in corrupted files. With a HDD without SMART, when the drives finds errors, but it believes to have corrected them successfully, there is no external sign that something could have gone wrong.