I know the issue of ECC vs non-ECC memory has been brought up countless times, but I am seeing so much conflicting info out there. Some people say that a single bit-flip will destroy all data in the whole pool, while others say it might corrupt a single file.
As I understand it, on most filesystems, a bit flip will go largely undetected and will usually just lead to corruption of the file that bit is part of. I keep hearing how it can be much more detrimental on ZFS, but I don't understand how. As I understand it, ZFS has some checks in place to detect errors in files, but those only take effect after the data has been written to the drive initially, so it seems like a bit flip would just result in corrupted data being written to it, which ZFS would just assume is good data, leading to the same undetected corruption as with any other filesystem.
So my question is just what are the possible (reasonably speaking) effects of a memory bit-flip error on ZFS, and how do they differ with other filesystems like EXT4 or BTRFS?
I'm trying to build a low-power, budget-friendly NAS, and trying to decide if I need ECC or not, since enterprise hardware (meaning supports ECC) is either low-power or cheap, whereas consumer stuff can pretty easily be both. The data isn't super critical, so a corrupted file from a bit-flip is a risk I'm willing to take, but losing all my data from a bit-flip is not.
As I understand it, on most filesystems, a bit flip will go largely undetected and will usually just lead to corruption of the file that bit is part of. I keep hearing how it can be much more detrimental on ZFS, but I don't understand how. As I understand it, ZFS has some checks in place to detect errors in files, but those only take effect after the data has been written to the drive initially, so it seems like a bit flip would just result in corrupted data being written to it, which ZFS would just assume is good data, leading to the same undetected corruption as with any other filesystem.
So my question is just what are the possible (reasonably speaking) effects of a memory bit-flip error on ZFS, and how do they differ with other filesystems like EXT4 or BTRFS?
I'm trying to build a low-power, budget-friendly NAS, and trying to decide if I need ECC or not, since enterprise hardware (meaning supports ECC) is either low-power or cheap, whereas consumer stuff can pretty easily be both. The data isn't super critical, so a corrupted file from a bit-flip is a risk I'm willing to take, but losing all my data from a bit-flip is not.
Last edited: