5

For a non-degraded RAID 6 array, why do most implementations and documentation require at least 4 drives? Why can't it have 3 disks, for 1 data and 2 parity blocks per stripe? Why force a minimum of 2 data and 2 parity?

I realise

  • you can make a RAID 6 with 3 real and 1 missing disk with mdadm but that's not what I'm talking about
  • a 3 disk RAID 6 will result in only 1/3 of the storage capacity of the bare disks.
  • a 3 disk RAID 6 would be functionally similar to a 3 disk RAID 1 array. Though I wonder if mdadm's check sync can find and correct bit rot on a 3 disk raid 1. But that's a topic for another question.

The reason I'm asking is because I'm looking at changing my home DIY NAS setup to be similar to the hybrid RAID in store bought NAS boxes that offer dual disk redundancy with differently sized disks. So using multiple mdadm RAID arrays as physical volumes in a single logical volume, as described here but with RAID 6's and 3 disk RAID 1's.

It would just seem more consistent if all of the RAIDs that make up the dual disk redundancy LVM were all RAID 6's.

5

The reasons AFAIK is just performance. There is no real technical reason against it.

There is a difference between a 3-disk raid-1 and a 3-disk raid-6.
The redundancy calculations for raid-6 are computationally harder and more complex than for raid-1.
Therefore using a 3-disk raid-6 requires far more horsepower from the controller (hardware) or CPU (software-raid).
Rebuilds, if needed, are also more time-consuming.

It is therefore pretty pointless to do raid-6 on 3 disks when raid-1 gives the same level of redundancy with less performance issues.

As a result the option for a 3-disk raid-6 is usually not even made available by the programmers of the management software of the raid.

(If I remember correctly I have seen a Raid controller some years ago that allowed it. I can't recall the brand/model but it almost had to be an Areca controller or one of the HP/Compaq Proliant controllers. We were dealing almost exclusively with those at the time.)

0

It requires 4 drives because RAID 6 has block-level striping with double distributed parity. This allows for the failure of 2 drives. You cant do this with less than 4 drives and keep the required redundancy.

1
  • 3
    why can't "block-level striping with double distributed parity" function with 1 data and 2 parity blocks per stripe? – BeowulfNode42 Jan 31 '15 at 2:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.