amuck-landowner

A Quick Guide to RAID Levels

devonblzx

New Member
Verified Provider
There are some common misconceptions on RAID levels with their level of redundancy, etc.   I thought I would write a quick guide with some information on them.

RAID0

Striped data.  There is no level of redundancy, any loss of a drive will result in a loss of the array.   Striped data incurs no storage overhead, you get access to all of the raw storage.

RAID1

Mirrored data.  Data is mirrored across all devices so all devices contain the same data preventing data loss from the loss of a device.  As long as one device is in tact, the data is safe.  Most RAID1s consist of a 2-drive mirror, therefore they can withstand 1 drive loss.

RAID10

A RAID10, also known as RAID1+0, is a stripe of mirrors.  The loss of any mirrored pair will result in the loss of the array.

Examples:

4-drive Typical RAID10:

  • RAID0 Stripe
    RAID1: 2 Pair Mirror
  • RAID1: 2 Pair Mirror
6-drive Typical RAID10:

  • RAID0 Stripe
    RAID1: 2 Pair Mirror
  • RAID1: 2 Pair Mirror
  • RAID1: 2 Pair Mirror
6-Drive Safe RAID10 (Not typically used due it the storage loss):

  • RAID0 Stripe
    RAID1: 3 Drive Mirror
  • RAID1: 3 Drive Mirror
Typically data loss can occur on the loss of two drives in a RAID10.  This is because when one drive is lost in a mirror, the drive left in the mirror is used more heavily (especially during the rebuild) which gives it the highest chance of failing next.  If you lose both drives in a mirror, you lose the array.

RAID0+1

Less commonly used, the opposite of a RAID10, a mirror of stripes.  More complex to manage and rebuild therefore RAID10 is recommended.

RAID5 / RAIDZ / RAID-1P

A parity array with 1 parity calculation.  Parity arrays use calculations to allow for the failure of any drive in the array.  One parity calculation allows for one drive failure before the loss of the array.  RAID5 is generally no longer recommended due to larger drives and therefore longer rebuild times. The chance of an unreadable error or second drive failure during the rebuild is high which would result in data corruption or the failure of the entire array. RAID5 may still be reasonable for small drives (SAS/SSD).

Example:

  • Drive 1:
    Block 1
  • Block 2
  • Parity 3
[*]Drive 2:
  • Block 1
  • Parity 2
  • Block 3
[*]Drive 3:
  • Parity 1
  • Block 2
  • Block 3
A RAID5 can consist of 3 or more drives and has only a storage overhead of one drive.  The higher number of drives, the higher the risk of failure.

RAID50

A stripe of RAID5s.  Loss of any RAID5 array will result in failure.  Contains the same high risk of failure during rebuilds as RAID5.

RAID6 / RAIDZ2 / RAID-2P

A parity array with 2 parity calculations.  Parity arrays use calculations to allow for the failure of any drive in the array.  Two parity calculations allow for any two drive failures before the loss of the array.

A RAID6 can consist of 4 or more drives and has only a storage overhead of two drives.  The higher number of drives, the higher the risk of failure.

RAID60

A stripe of RAID6s. Loss of any RAID6 array will result in failure.  Can withstand a loss of two drives in each RAID6.

RAID7 / RAIDZ3 / RAID-3P

A parity array with 3 parity calculations.  Parity arrays use calculations to allow for the failure of any drive in the array.  Three parity calculations allow for any three drive failures before the loss of the array.

A RAID7 can consist of 5 or more drives and has only a storage overhead of three drives.  The higher number of drives, the higher the risk of failure.

So which is the safest RAID level?

It depends on circumstances and how they are configured.  RAID1 with more than 2 drives is probably the safest but also contains a huge storage overhead.   A RAID10 with 6 drives (3 mirrors) could withstand 3 drive failures but it could also fail if 2 drives in the same mirror fail.

RAID6, RAID60, and RAID7 are the only typical configurations that can withstand the loss of any two drives. 

RAID60 and RAID7 are becoming the recommended configuration for very large storage systems.   This is due to the fact that when a drive fails and you attempt to rebuild a large array, it can take a very long time and adds stress to the other drives in the array.  Therefore you want to be able to withstand multiple drive failures within the same array.
 
Last edited by a moderator:

Jonchun

New Member
Perfect. I especially like the clarification on RAID10 weaknesses. Everyone seems to think it's the latest and greatest and "RAID 10 SSD" is the only proper configuration out there.
 

splitice

Just a little bit crazy...
Verified Provider
It is worth noting that RAID6 is not standardised. It can be defined as "Any form of RAID that can continue to execute read and write requests to all of a RAID array's virtual disks in the presence of any two concurrent disk failures.". Implementation is separate from this (dual parity is a common implementation but not the only).
 

devonblzx

New Member
Verified Provider
It is worth noting that RAID6 is not standardised. It can be defined as "Any form of RAID that can continue to execute read and write requests to all of a RAID array's virtual disks in the presence of any two concurrent disk failures.". Implementation is separate from this (dual parity is a common implementation but not the only).
What are some others?  I've never heard of anything other than dual parity.   I know there is distributed parity and dedicated parity but other than that I don't see any other way of doing a RAID6 other than calculating parities.

Distributed parity meaning parities are distributed across all disks.   Dedicated parity meaning parities are only stored on one (raid5) or two (raid6) disks.
 
Last edited by a moderator:

splitice

Just a little bit crazy...
Verified Provider
@devonblzx Error Correction codes (e.g Reed-Solomon) can also be used. I dont know much about them though. There is probably more (possibly even patents - lots of RAID6 patents exist). This is not my area of expertise.
 

devonblzx

New Member
Verified Provider
@devonblzx Error Correction codes (e.g Reed-Solomon) can also be used. I dont know much about them though. There is probably more (possibly even patents - lots of RAID6 patents exist). This is not my area of expertise.
ECC is usually based on parities.  So this would be a similar implementation.  That is what the P stands for on ECC memory modules. 
 

atdeck

New Member
Verified Provider
Very good. The guide on the subject began to simple information and quick understanding.
 

devonblzx

New Member
Verified Provider
Good Write up. :)

Maybe diagrams would help it further :p
I did provide a simple diagram of RAID10 and RAID5 in list form.

I was trying to provide more explanation in this post in regards to the safety and redundancy of RAID.  Diagrams can be found all over google, but those diagrams sometimes fail to construe the risks associated with RAID levels especially during rebuilds and when using larger drives.
 

devonblzx

New Member
Verified Provider
A quick raid calculator to check the total space available for a specific configuration.

https://www.icc-usa.com/raid-calculator/
Yes, that is a good start, but it is important to note it isn't always that simple.  Different technologies have different amounts of overhead.  For example, RAIDZ/Z2/Z3 with ZFS seems to have a good amount of overhead with advanced format drives.

Striped arrays can also potentially have different sizes.  For example, you can have an 8xRAID6 2TB and a 6xRAID6 3TB and make a RAID60 of ~24TB. 

You can even go out of the box and use a 4xRAID5 and a 6xRAID6 striped together.  So it is important to just know how each RAID level works in terms of redundancy, storage capacity, etc.

It is also important to note: that web site claims a RAID5 and RAID50 are high redundancy and I would definitely disagree with my above points about a RAID5.
 
Last edited by a moderator:
Top
amuck-landowner