On Fri, 18 May 2012 00:30:47 -0700 "H. Peter Anvin" <hpa@xxxxxxxxx> wrote: > On 05/17/2012 07:04 AM, John Robinson wrote: > > On 17/05/2012 14:18, David Brown wrote: > > [...] > >> Theoretically, a 3-disk RAID6 is like a 2-disk RAID5 or a 1-disk RAID1 - > > [...] > >> I can't think of any good reason for it /not/ to support 3-disk > >> RAID6, as there is nothing in the algorithms to hinder it. > > > > I've a vague recollection of Peter Anvin saying the implementation is > > optimised in such a way that it won't work. > > > > Yes, it would have required introducing some odd special cases. A > 3-disk RAID-6 is bitwise identical to a 3-disk RAID-1, so if Neil wants > to he could add "instant reshaping" support in mdadm (add a disk to a > 3-disk RAID-1 turning it into a 4-disk RAID-6; and similar for 2-disk > RAID-1 into 3-disk RAID-5.) > > -hpa > Converting a 2-disk RAID-1 to a 3-disk RAID-5 is not instant. You first convert a 2-disk RAID-1 to a 2-disk RAID-5. Then you re-stripe the RAID-5 to have 3-disks. During this restripe, part of the array looks like a 2-disk RAID-5, and part looks like a 3-disk RAID-4. To convert some sort of RAID1 to RAID6 we would need to be able to support a 3-disk RAID-6, if only for a relatively short time. Possibly we could special case the parity-generation code to just copy the data block when data-disks==1. That sound easy enough... But the raid456 module needs to understand this 3-way-RAID1-pretending-to-be-RAID6, we cannot use the raid1 module to do it. NeilBrown
Attachment:
signature.asc
Description: PGP signature