On Jul 17, 2020, at 4:19 PM, Grant Taylor via cctalk
<cctalk at classiccmp.org> wrote:
On 7/17/20 12:58 PM, Paul Koning via cctalk wrote:
What is "three drive parity"?
A poor choice of words in a complex topic.
How about "three drives worth of redundancy" Meaning that your data will still
be accessible if three drives fail.
ZFS has three versions of ZRAID or RAID-Z.
- RAID-Z1 is analogous to RAID-5.
- RAID-Z2 is analogous to RAID-6.
- RAID-Z3 is analogous to ???
I'm not aware of any official definition of a mirror of more than two drives.
I've heard of "3-way" / "4-way" / "n-way" mirrors.
I think that the industry has settled on RAID-10 / RAID-01 and possibly RAID-11 / maybe
even RAID-00. But that isn't a standard to me.
Further, I see disagreements of what is the strip and what is the mirror in RAID-10 /
RAID-01.
"Parity" is the description of RAID-5,
and 3 drive RAID-5 is certainly perfectly standard. RAID-1 is not parity, it's
mirroring.
If you think of it as "redundant drives" or "number of drives that can
fail without destroying data", then yes, RAID-1 does have a numerical value quite
similar to RAID-3 / RAID-5 / RAID-6 / RAID-Z* / etc.. Though nomenclature becomes highly
problematic.
Yes. Marketeers like to use the phrase "erasure coding" as a magic token to
indicate great wonderfulness beyond RAID. Actually, it's a math term that describes
the standard RAID systems plus generalizations. I don't know if there is a clear
terminology for the general thing. I tend to call them "k of n" codes, k data
bits, n message bits. Or in the RAID case, k drives worth of data, n total drives. That
makes RAID-1 a 1 of 2 erasure code, the thing we started talking about 1 of 3 erasure
code, RAID-5 is n of n+1 erasure code, and RAID-6 is n of n+2 erasure code. So in the k
of n notation, n-k drives can fail before you lose your data.
Actually, more realistic with today's drive sizes: n-k-1 drives can fail and one drive
can have a hard read error during reconstruction before you lose data. For sufficiently
large drives, the probability of a hard read error somewhere is nearly 1, which is why
RAID-5 is only a good idea for small disk drives.
People have build storage systems with other erasure codes, for example n of n+3. Not
because it's really necessary but as a research experiment; the "Self-star"
system at CMU comes to mind.
Is the
question about triple mirroring, i.e., 3 drives all having the same data on them?
I was stating that I'm not aware of an official RAID level designation for ZFS's
RAID-Z3.
That's pretty rare though not unheard of,
I've never seen a RAID-x designation for that.
I've known more than a few people to use n-way mirrors (~RAID-1). Though I think
I've only seen it in software.
For high availability, RAID-6 is much more
economical (and at this point the standard choice); triple mirroring is of that class,
with the difference that it performs better for random short writes.
Are you comparing RAID-6 to triple (3-way) mirroring? Or something else?
I think that things get really weird and deep in minutia when you start comparing a 3-way
mirror to a 3 drive RAID-6. Same number of drives (3), and same capacity (1 drive worth),
and same fault tolerance (2 drive failures).
Yes. The difference is that the 3 drives in a 3-drive RAID-6 system aren't copies, so
the write and reconstruction logic is more complex.
But actually I meant RAID-6 generally. As I mentioned above, in RAID-5 if you lose a
drive, you have no redundancy, which means that if you encounter a hard read error during
reconstruction you've lost that stripe. And for today's large drive chances are
that will happen. With RAID-6, if one drive fails you can still recover from hard read
errors.
If you run the statistical analysis with typical drive MTBF and hard read error rates,
you'll find that the read error during reconstruction is the major contributor to data
loss, not the "too many drives failed at the same time" scenario. At least not
if the drive chassis is built correctly and the power source and other environmental
parameters are reasonably clean.
paul