Consider an access pattern to the RAID which writes full stripes, and only
the first two lines (repeating) are used as an access pattern. This might
go something like this:
write A1 & A2 (Reads P1 & P2, calculates P1, PA, P2, writes A1, A2, P1, PA,
P2)
write B2 & B1 (Reads P1 & P2, calculates P1, P2, PB, writes P1, P2, PB, B2,
B1)
Repeat this a bunch of times, and you'll find you are writing twice as many
blocks to Drives 1 & 3 as you are to Drives 2 & 4. However, if you add the
C and D rows to the scheme, the full-stripe writes spread the column parity
writes evenly across all drives.
Of course, for a 4 drive setup there's no reason to use RAID 6 at all (RAID
10 will withstand any two drive failure if you only use 4 drives), but
that's the reasoning. I think the best way to deal with the read-modify
write problem for RAID 6 is to use a small chunk size and deal with NxN
chunks as a unit. But YMMV.
Dale Stephenson
steph@snapserver.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/