Well, lets figure this out.
To get this out of the way – nothing in life is risk free. The goal with disk arrays is to make failure caused by disks comparable with failures due to other events – from super volcano to power surge. For the rest we have backups.
This is absolutely not true.
First, lets separate disk failures into two buckets: uncorrelated failures manifesting itself as a bad unreadable sector or a group of sector is one huge bucket, of most frequently occurring failures.
Another failure mode is when the whole disk drops off the bus. These failures are much less frequent, and more often than not are correlated – HBA dies, lightning fries disk controller, etc. Increasing redundancy here won’t help, so let’s ignore this case.
So the the failure we can do something about is unreadable sector(s). When this happened you know you had all data available at last scrub ideally within last month.
Probability that bad sectors developed on two disks at exact same spots, let alone within last month is zero, so we ignore that. (and if it’s not – we are again not dealing with uncorrelated failures – and therefore we don’t care, because more redundancy won’t help correlated failures).
Now, when you replace disk in a ZFS array, the existing disk continues providing redundancy for all the records that are not affected by the failure, and those are repaired first.
I’ll reiterate this again: for the purposes of disk fault tolerance behaviour in the “bad sector driven disk replacement” scenario raidz1 behaves like conventional raid6.
You do. you said it yourself above:
You are.
It does not.
raidz2 buys you nothing. Even if the disk falls of the bus, data on the rest of disks is still alive and intact and you have had proof of it within last month. If this is too scary – make it 2x less scary by scrubbing 2x more often.
Which brings us here:
This is the crux of it. The issue is non-technical. People like to wear the lucky t-shirt for decades, knock on wood, and enjoy other cargo-culty activities. Nothing wrong with that. If you sleep better at night because you have one more driver in the array – this is a non-technical issue and no amount of technical reasoning change anything. Keep doing it.
It’s irrational, but so what?
This is why hot spares exist.
Well, this is a different discussion. There many solutions. From always buying N+1 disks, to ignoring current pricing and just budgeting for some probability of failure. Over long time disk prices trend down, so local maximums don’t matter. For what it worth, I have neither spare disks, nor warranty (lol – I buy used remanufactured crap). When and if it fails – I’ll buy at market price another remanufactured shite. So far ONE of such disks failed in 5 years, mildly, with a single bad sector. I could have keept using it. but that seller happened to offer warranty… so I replaced it.
Why? I would buy “whatever”. IF disk make/model performance variance matters – you need SSD cache ![]()
Here we go. I do the opposite. Run raidz1, reap first order rewards in fault tolerance, and ignore second order anything, and walk around cool as cucumber not worrying about absolutely anything.
As I said, raidz2 solves a non-technical problem, so no amount of statistical back of the napkin calculations will convince anyone.
And I said above – fair comparison is RaidZ1 → Raid6. RaidZ2 → ??? RaidZ3 ->> madness and insanity.