2

It's not recommended to use ZFS for a computer without ECC RAM. So, what's a good alternative then? Or is the risk the same, so it doesn't matter what manager I use, it'll be the same problem if a bit in RAM flips anyway?

I'm trying to determine if I should or should not use ZFS. If I shouldn't, is there anything that comes close that's safer with non-ECC RAM?

  • You don't have an option to just use a system with ECC RAM? It's a pretty low barrier to meet. If you want ZFS, use quality hardware. – ewwhite Nov 20 '14 at 9:31
  • 1
    ECC RAM does not eliminate all possible errors. You still need a plan for the case of data corruption. – usr Nov 20 '14 at 9:49
  • Please do not post on more than one site in the future. – cutrightjm Nov 20 '14 at 17:43
  • @ewwhite I currently have a desktop motherboard and desktop RAM. I don't feel like upgrading just now, so I'm going to have to suck it up with what I've got. Solid hardware I bought with the expectation to run it for many years. Clearly should have done more research for a home server. – leetNightshade Nov 20 '14 at 17:52
  • @ekaj I removed the other post and edited this one. – leetNightshade Nov 20 '14 at 17:53
4

The problem is zfs's error correction features (checksum & scrub) can potentially result in a total loss of data on a memory corruption error as opposed to say xfs which will happily write your error to disk in just the affected block(s).

4

I'm using ZFS with non-ECC RAM. Widely enough. I'm not writing this to say it's safe. However, for several years I didn't see zfs corruption yet. Furthermore, when using zfs on ancient hardware, I saw all sort of memory problems, even an inability to boot up. From my experience - you will encounter all sorts of fatal kernel traps faster than the zfs data corruption when using such memory. Also, corrupted memory can also lead to data corruption when using other filesystems. Even if I'm not right, thinking that statement 'zfs checksumming will amplify the impact of data corruption instead of minimizing one' sounds illogical, you know - zfs doesn't selfheal silently. There's enough counters in zpool status to start to suspect that something is starting to happen.

After all - take you backups and store them elsewhere, ZFS isn't a silver bullet.

  • 1
    I store my backups on another ZFS system, regardless of the ECC. I'm also using snapshots on my production systems (the ones that I take backups of), and I'm sure everyone should do this too, because it's instant and cheap (only some space is consuming, but, unlike LVM, the space for snapshots is taken from the free space of the pool). But I's only me - the choice is up to you. If you want to have decent backups - I can propose you to use tape backups. It's cheap enough, and it can be stored long enough - last summer I was recovering a deleted DB from 5 years old backup. – drookie Nov 20 '14 at 18:02
  • 1
    Fun fact: the only time I got the data corruption on ZFS - it was on a server with ECC memory, but on non-redundant zfs pool: it was a HP server with SmartArray controller - so I had to use it's array since SA are not capable of passthrough. The data corruption was caused by the power loss. So I just rolled back the last snapshot. – drookie Nov 20 '14 at 18:05
  • 1
    And another zfs feature that I need to mention (even if you are aware about it, because it's still truly amazing): you can even transfer the snapshot themselves over the network. Even incremented snapshots. – drookie Nov 20 '14 at 18:07
  • 1
    there's a decent guide for ZFS here (if you're not already familiar): docs.oracle.com/cd/E26505_01/html/E37384 - most of it is applicable to another operating systems too, like FreeBSD or Linux with OpenZFS. – drookie Nov 20 '14 at 18:22
  • 1
    If you will use redundant pools (and you really should) I don't think zfs will corrupt valid data on non-corrupted pool members. Authors of the articles referenced here don't consider this part at all. For this to happen, cheksum must match for already invalid data, and not match for the valid data. The situation when checksum will not match for the both blocks is way more likely. I've reread all the articles about zfs vs ecc and found them purely theoretical, considering mostly the Murphy reality, when all the bad things happen, and there's no hope at all. – drookie Nov 23 '14 at 11:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.