2 ms·
> The rest of the upgrade came out of my junk drawers. Two DDR4 sticks from an old laptop take the memory to the platform maximum of 32 GB Realtalk: make sure
by Lammy 6d ago
> The rest of the upgrade came out of my junk drawers. Two DDR4 sticks from an old laptop take the memory to the platform maximum of 32 GB
Realtalk: make sure you are religious about testing your RAM if you're going to run ZFS with non-ECC RAM. I'm not going to say “don't do it”, but know what you're getting into and how to protect yourself from this failure mode.
It's unintuitive, but ZFS will actually modify your files on disk as a side effect of a read-only operation if blocks get read into bad RAM and checksum mismatch compared to the blocks on disk.
This happened to me in 2013–14 with some bad PC3 10600 in my 2600K desktop FreeBSD system, and it rotted a bunch of my most frequently accessed files. I was able to figure out what was going on once audible blips started appearing in all of my favorite most-listened-to music, then I learned about `flac -t` and was able to confirm the rot thanks to the fact that FLAC files embed an expected MD5 digest in their `STREAMINFO` block. `man flac` sez…
“In test mode, flac acts just like in decode mode, except no output file is written. Both decode and test modes detect errors in the stream, but they also detect when the MD5 signature of the decoded audio does not match the stored MD5 signature, even when the bitstream is valid.” (emphasis mine)
[Lammy@popola] flac --test "Floating Door - Hypersomnia in loop - 12 templeOS.flac"
Floating Door - Hypersomnia in loop - 12 templeOS.flac: ok
[Lammy@popola] metaflac --show-md5sum "Floating Door - Hypersomnia in loop - 12 templeOS.flac"
d9ccdc78cfa45dda01b38198575b4f56
[Lammy@popola] flac --decode --stdout --silent --force-raw-format --endian=little --sign=signed "Floating Door - Hypersomnia in loop - 12 templeOS.flac" | md5
d9ccdc78cfa45dda01b38198575b4f56
After that experience, I moved my ZFS storage to a dedicated system — first on an Atom C2750 board and later (and currently) an Atom C3758, both with ECC UDIMMs. (Stay away from the C2xxx series tho; they are all doomed to CLK-circuit-degradation death which repairing only prolongs but does not prevent)
- sotilrac 5d agoAuthor here: I've been taking a lot of interest in data corruption and preservation lately. Definitely will look into this. Thanks for the pointer!