I had a Crucial MX100 bitrot at me a while back, and I have no desire to repeat the experience. Btrfs-raid1 sounds like just the ticket to complement my backup scheme (what with checksumming allowing it to correct errors, not merely detect), but it also sounds kinda overkill for my needs, so I thought I'd ask the gerbils what you all would do.
I should probably note that I'm not planning on buying new hardware immediately. If I decide on a plan that involves buying stuff, it'll probably happen sometime in the next few months.
The current breakdown of my data is ~6.5 GB for the OS and programs (Arch), ~7.5 GB for the data that I actually care about, and ~150 GB for games and other unimportant data, all on a 512 GB Sandisk X300s (not my choice of drive, long story
). The OS/programs shouldn't grow too much, I could see the data I actually care about getting as big as ~50 GB in the not-too-distant future, and games expand indefinitely but I'm fine with running cleanup on them aggressively if I'm low on space. Speed isn't a huge deal so long as it's not BX200 levels of bad, though I wouldn't object to some NVMe goodness if I could find an excuse for it.
It's secondary to reliability, though. NVMe and reliability aren't fundamentally opposed, because I've got an mITX board with the M.2 slot on the back and the case gives decent ventilation to it.
The plan that feels overkill is an NVMe ext4 OS drive (256 GB?) and btrfs-raid1 2.5" data drives (128 GB?) mounted directly at my core data folder. It would feel weird having a bigger OS drive than my data drives, but that plan would get NVMe speed to most stuff, integrity where it's needed, and wouldn't involve getting too spendy on duplicated space. Going to 512 GB for the OS drive would be nice, but really all 256 GB means is deleting games I haven't played in a while a bit more aggressively, which I don't mind much.
An obvious modification of this is to skip the OS drive and just run the whole system from a btrfs-raid1 pair, but that's slower, it looks like a dragon or two might be hiding around that boot process, and because of the extra duplicated space it's unlikely to be cheaper (unless I just get another X300s, but if I'm going to be messing with storage I'd rather get MLC flash).
Theoretically, it should be possible to run a btrfs-raid1-like anti-bitrot scheme by duplicating data across two partitions on one drive. It looks like btrfs might even be able to do this. This sounds hacky, though. It's obviously not as good for integrity as separate drives, and it sounds like it might be slow, but I'm still trying to figure out just how good or bad it might be.
Scaling back further would lead to some variety of snapshot system. This would help, but it seems like there are a lot of errors it would have a tough time catching (especially for frequently changing files). At some point it's not much different from normal backups, but without the external media.
Speaking of that, theoretically backups could have some auto-diff functionality modulo modification times. This is probably even standard in some places, it's just not a thing I've looked into. I like being able to handle my backups with the most basic of tools, and I wouldn't consider such a thing a replacement for the kind of in-place anti-bitrot system I'm asking about, but if there's suitably universal tooling that does this I'd be interested.