On 6/30/2013 1:43 PM, aurfalien wrote:
> I understand swidth should = #data disks.
No. "swidth" is a byte value specifying the number of 512 byte blocks
in the data stripe.
"sw" is #data disks.
> And the docs say for RAID 6 of 8 disks, that means 6.
>
> But parity is distributed and you actually have 8 disks/spindles working for
> you and a bit of parity on each.
>
> So shouldn't swidth equal disks in raid when its concerning distributed
> parity raid?
No. Lets try visual aids.
Set 8 coffee cups (disk drives) on a table. Grab a bag of m&m's.
Separate 24 blues (data) and 8 reds (parity).
Drop a blue m&m in cups 16 and a red into 78. You just wrote one RAID
stripe. Now drop a blue into cups 38 and a red in 12. Your second
write, this time rotating two cups (drives) to the right. Now drop
blues into 52 and reds into 34. You've written your third stripe,
rotating by two cups (disks) again.
This is pretty much how RAID6 works. Each time we wrote we dropped 8
m&m's into 8 cups, 6 blue (data chunks) and 2 red (parity chunks).
Every RAID stripe you write will be constructed of 6 blues and 2 reds.
XFS, or EXT4, or any filesystem, can only drop blues into the first 6
cups of a stripe. The RAID adds the two reds to every stripe.
Maybe now you understand why sw=6 for an 8 drive RAID6. And now maybe
you understand what "distributed parity" actually meansevery stripe is
shifted, not just the parity chunks.

Stan
