A Nested RAID configuration is built on top of a standard single-level RAID configuration in order to address performance and data redundancy limitations. Digging deeper into Nested RAID, we check out RAID-5 and RAID-6, which have some truly amazing features (if you have enough drives).
In our last article, we introduced the concept of a Nested RAID configuration. Nested RAID combines standard RAID levels such as RAID-0, RAID-1, RAID-5, or RAID-6 to create a new RAID combination targeting better performance or better data redundancy or both. Typically, the goal of Nested RAID is to provide a combination with both really good performance and really good data redundancy (if possible) but you will also see some RAID configurations in this article that have amazing data redundancy features.
In general, it’s fairly easy to recognize a Nested RAID configuration because it will have two or more numbers designating the combination of standard RAID levels. For example RAID-10 uses both RAID-1 and RAID-0 to create the Nested RAID configuration. RAID-51 uses RAID-5 and RAID-1 to create that Nested RAID configuration, and so on.
The order of the numbers in the Nested RAID designation is important. The first number to the left is the lowest standard RAID level used (just above the disks). The next highest RAID level is the next number to the right and so on. While almost all Nested RAID configurations used today use only two numbers, there really is no limit to the number of Nested RAID levels except perhaps good judgement and RAID controller capability.
While the Nested RAID configurations are numbered left to right (lowest level to highest level), the data flow happens right to left. So for example, a RAID-10 consists of several RAID-1 pairs that are combined using RAID-0 (RAID-1 being the lowest level and RAID-0 the highest level). But the data coming into a RAID-10 starts at RAID-0 and then moves down to RAID-1.
In the previous article we examined Nested RAID configurations built on top of RAID-0 and RAID-1. Specifically, we examined two configurations, RAID-01 and RAID-10, which sound somewhat similar, and they are in some respects, but they are also different from one another in other ways. We contrasted the two approaches and it appears as though RAID-10 is more desirable than RAID-01 for the simple reason that RAID-10 touches only one drive during a rebuild while RAID-01 touches all of the drives in the array. This means that a rebuild can potentially be faster on a RAID-10 configuration than a RAID-01 configuration. Perhaps more importantly, using the fewest number of drives possible during a rebuild means we stay away from the possibility of a URE (Unrecoverable Read Error) as much as possible.
In this article, we’ll extend our examination of Nested RAID to include RAID-5 and RAID-6 based configurations, starting with RAID-05.
RAID 0+5 (RAID-05)
This Nested RAID configuration attempts to improve the write performance of RAID-5 by adding RAID-0 (striping) to create an even better performing RAID configuration. The RAID-05 Nested RAID configuration starts with RAID-0 at the lowest level and then puts RAID-5 on top at the highest level. Figure 1 below shows how this is laid out.
Figure 1: RAID-05 layout with Twelve Drives
In this illustration, twelve drives have been used to explain how RAID-05 functions. Each lower level RAID-0 group consists of three drives and their are four groups for RAID-5 at the upper level (recall that RAID-5 needs at least 3 “drives”). You can see the distribution of the data chunks in the layout including the striping of the data as well as the parity. The parity for each stripe is written as Ap(1), Ap(2), and Ap(3) where the number in the parenthesis indicates the ith chunk in the stripe. In other words, the parity data is striped as well as the actual data.
The capacity of the RAID-05 configuration is fairly easy to compute assuming that all the drives have the same capacity.
Capacity = min(disk sizes) * (Number of drives in each RAID-0 group) * (Number of RAID-0 groups - 1)
For Figure 1, this means,
Capacity = min(disk size) * 3 * (4 - 1)
Capacity = min(disk size) * 9
The resulting storage efficiency is also fairly easy to compute:
Storage Efficiency = (Number of RAID-0 groups - 1) / (Number of RAID-0 groups)
For Figure 1, the resulting storage efficiency is,
Storage Efficiency = (4 -1) / (4)
Storage Efficiency = 0.75 (75%)
So the storage efficiency is very good for RAID-05 (same as a RAID-5 configuration with four drives would be).
Notice that the minimum number of drives in a RAID-05 configuration is six: you need at least three groups for RAID-5 and you need at least two drives per RAID-0 for a minimum total of six drives.