xfs
[Top] [All Lists]

Re: swidth in RAID

To: xfs@xxxxxxxxxxx
Subject: Re: swidth in RAID
From: Stan Hoeppner <stan@xxxxxxxxxxxxxxxxx>
Date: Sun, 30 Jun 2013 16:42:06 -0500
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <557F888F-34EA-4669-B861-C0B684DAD13D@xxxxxxxxx>
References: <557F888F-34EA-4669-B861-C0B684DAD13D@xxxxxxxxx>
Reply-to: stan@xxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20130620 Thunderbird/17.0.7
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 1-6 and a red into 7-8.  You just wrote one RAID
stripe.  Now drop a blue into cups 3-8 and a red in 1-2.  Your second
write, this time rotating two cups (drives) to the right.  Now drop
blues into 5-2 and reds into 3-4.  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 means--every stripe is
shifted, not just the parity chunks.

-- 
Stan

<Prev in Thread] Current Thread [Next in Thread>