1)not all sources of failure are uncorrelated
2) with huge disks, the rebuild time to replace that failed disk gets really really long (I would guess 2-3 days to fully write to one of these disks. Edit: rebuilding a RAID rather than writing straight will take several times longer.)
3) during rebuild all the disks are taxed quite heavily, especially if they are still performing their typical day to day IO.
The larger the disk, the more of them you want in a non-RAID unified erasure coded pool in order to manage these failures more gracefully.
ZFS isn't an absolute panacea. It can get very confused if you have a systematic problem one day - e.g. if you ever have intermittent bus problems (e.g. dodgy backplane), it can start to believe that that blocks are permanently damaged and it's hard to convince it to read through to the disk storage. I had to copy the superblock from an old snapshot[1] once because it was convinced all of its copies were bad. This wasn't during writes; it was during a zfs scrub.
If you don't do it regularly, act like a zfs scrub could potentially wipe out all your data. This is more likely on home hardware, without ECC RAM and less likely to be built to handle loads of concurrent I/O throughput.
Keep on using backups.
[1] Thankfully, because of my snapshotting policy, my old snapshot wasn't actually very old.
With 16TB disks, that rebuild time goes to 4x as long; and though one could probably write 16TB in 2-3 days in one go, a RAID rebuild of more than a week sounds typical.
If you didn't have ZFS, I would also caution anyone from using straight non-ZFS RAID as a backup substitute, because there's no checkpoints and no way to stop data deletion from affecting you.
The type of array redundancy (ZFS, mdadm, megaraid, etc.) does not matter. It is never a substitute for backups. End of discussion. These are two entirely different technologies meant to protect against entirely different problems.
This is a common meme I've seen constantly through my entire career, and one of those common misconceptions you have to educate customers on quite often. RAID is not for data security. RAID is for availability.
Snapshots, checksumming, etc. on ZFS are wonderful - I use it extensively. I also zfs send said snapshots to an off-site remote server, and if I didn't have that capability I'd rsync to an external hard disk or whatnot.
Even if you could somehow guarantee ZFS or your hardware would never combine to lose your data (you can't) - it still doesn't protect from your house burning down. A substantial number of people completely neglect that failure mode until it's too late.
> I also zfs send said snapshots to an off-site remote server, and if I didn't have that capability I'd rsync to an external hard disk or whatnot.
I wouldn't consider a backup system any more that isn't able to establish full integrity of backups. It's also a kinda good idea to diversify the software; ZFS has a really good track record, but if I where using btrfs, for example, I'd make sure my backup software is not the same as my FS.
I do this for my "very important" stuff - e.g. documents and personal photos. That gets copied every year to a third off-site physical drive for safekeeping, and that is an entirely different filesystem. A lot of that stuff is also on google drive for the latest, so I'm not super concerned about the backup frequency there.
The standard zfs send backs up about 25T of stuff I'd certainly not wish to lose, but could eventually mostly be re-created. For my risk level zfs send seemed to be the correct risk:ease of use tradeoff for me. Plus the nice diffing makes syncing a home NAS on a consumer broadband connection not entirely impossible - where even rsync can be difficult for some of my use-cases.
Full integrity of backups is interesting - in a professional environment that means to me full on DR testing (e.g. restore your backups regularly to test them) among other things. For personal use I think automated regular zfs scrubs are about the best you can easily get.
This isn't very hard to do at all. It's very easy to DIY full integrity. Especially with ZFS, where you can take a read-only snapshot and not have the FS changing underneath you while you're traversing it. Here's a previous post of my on the subject: https://news.ycombinator.com/item?id=13129294
Something as simple as the following, done independently for source and destination, and results compared, should suffice:
find -x \
. \
-type f -print0 \
| xargs -0 -n 100 -x md5 \
| sort > /tmp/manifest.sourceIt is a substitute for single drive failure.
And ZFS is a substitute for some amount of data deletion (but not much).
But second location, cold copy are absolutely necessary for a backup.
Even if I didn't have a RAID array, any single drive failure would be a maximum of 3TB lost, vs. losing everything with a single drive. Basically it's much easier to minimize your data loss risk profile if you spread your data across multiple drives instead of relying on a single drive.
Of course, if you need 100TB+ of storage, you might as well put these new 16TB drives in an array and save on the controller costs.
http://www.zdnet.com/article/why-raid-5-stops-working-in-200...