On Thu, 18 Mar 1999, Gianni Mariani wrote:
> I'm interested in developing 2 parity raid. [...]
what exactly do you mean by 2-parity RAID.
parity mirroring is already possible. (use RAID4 with a RAID1 as the
parity disk) The Linux way is a bit more generic, it's not just 2-way
mirroring, it gives 2, 3, ... N way mirroring.
'block parity' is already possible too, build an M-ways RAID5 array out of
M N-ways RAID5 arrays. Eg. a 6x6 array made of 36 disks has a redundancy
of 11/36 (30%), and protects against the failure of 2 arbitrary disks. A
(10x10 array has a redundancy of 19%, etc.)
I have plans/prototype code to support (2- 3- order) erasure codes, with
dynamic creation of generator polynoms. (thus there would be basically no
limit on the number of disks) These 'RAID6' arrays have ideal (minimum)
redundancy (eg. for a 36-disk RAID6 array reduncancy is as low as 5%), but
(of course) can be quite expensive CPU-wise. Fortunately disk IO is quite
blocked and the erasure pattern is given, so there are lots of ways to
speed this up via matrix precalculation, but it will still be
significantly more expensive than simple RAID5.
This RAID6 project of mine is currently lowprio because the RAID code is
in stabilization & 'possibly merge to mainline 2.2' mode.
-- mingo