Here is how I solve these with ext4:
- I use software or hardware RAID if I need it, and prefer to have my filesystem separate. For backup I use independent media, and I don't consider a filesystem snapshot a reliable long-term backup, because if the primary storage fails for some reason you lose everything.
- Both SDDs and HDDs have error correction built-in, so you don't need to worry about old-fashioned bit-rot. You could have occasional errors where a page is corrupted or sent to the wrong address, in which case you can try to recover it with various tools.
- When I backup I compute checksums of all the files so I can tell if anything went wrong or missing. The checksum usually md5sum which is fast and is tool independent of the filesystem.
- Having a relatively simple filesystem like ext4 (in data layout), with superblock redundancy on todays massive drives and coupled with md5sums and rescue tools increases the chance that if anything goes wrong I will get my data back. In contrast, with zfs and scrubbing I would be concerned about unnoticed errors accumulated over time. Btw, md5sum are small enough that you can save them on any kind of media, include cdr. Independent media - higher reliability.
- I actually view modern SDDs as a more sophisticated RAID of the flash memory that they use, and I don't think they need to be RAIDed unless you need more space.
So you don't have a solution to bitrot and instead rely upon the built in error correction of flash.
Which has been proven to go bad if turned off for ~year long periods.
Hint: you cannot beat physics. Flash NAND works by storing electrons behind transistor gates. And those electrons escape given enough time. The only solution is to turn on the device, check for bitrot and (if necessary) rebuild / rewrite the data every few months. As it turns out, ZFS solves this with the simple 'Scrub' command. Microsoft's ReFS solves this with an automatic timer (but still requires the admin to turn on th computer so that it can check on time and see if the timers have expired and if new scrubs are necessary).
Yes. Modern error correction codes are great. But they can't beat physics. The only thing that solves bitrot (be it a HDD bitrot or a NAND flash bitrot) is turning on the device, reading the data and checking+rewriting it. If this doesn't happen with enough regularity, even the error-correctiom bits bitrot away (aka: error correction only works if the bits in question STILL EXIST when you check for it).
-------
You've also confused error correction with error detection. Md5sum detects errors. It cannot fix them.
The built in error correction of Flash doesn't always read/rewrite btw. It's better to have additional error correction at higher levels (like the ZFS or ReFS filesystem level) that ensures that these error correction steps occur. And also the admin must keep these physics in mind and remember to turn on the damn computer regularly to check for bitrot. That's it.
------
And fuck softraid. I'm not learning another useless technology. SoftRAID falls apart the minute you switch cables or move drives around. Linux LVMs are highly annoying. Real Filesystems can be reconstructed even if I move my drives over to a new motherboard / new Sata-slots. Both SoftRAID and hardraids fail at this.
Microsofts Storage Spaces and ReFS tech is passable but I do prefer ZFS. All of these software packages are competing with each other, you really should use the easiest code (and the easiest code is either ZFS if you're in Linux/Unix land... Or ReFS if you're stuck in Windows). No other solutions come anywhere close to the ease of use and/or reliability.