Thus far we have talked about single-level RAID configurations and Nested RAID configurations. But we've artificially restricted ourselves to only two levels in Nested RAID. Couldn't we have three RAID levels or more? The answer is yes, and in this article we'll talk about three levels (the proverbial "Triple Lindy") and have some fun with a couple of examples.
“There was a guy, did the most amazing dive… called the Triple Lindy.”
“Hardest dive I ever saw in my life.”
“Who was that guy?”
“I don’t joke about dives.”
“Especially that one.”
“It almost killed me.”
Exchange between Rodney Dangerfield and M. Emmet Walsh From the movie, “Back To School“
RAID “Triple Lindy” Introduction
In the previous three articles, the concept of RAID was introduced, Nested RAID configurations starting with RAID-0 and RAID-1 based Nested RAID configurations were explored, and RAID-5 and RAID-6 based Nested RAID configurations were discussed. Recall that Nested RAID allow standard RAID configurations such as RAID-0, RAID-1, RAID-5, and RAID-6, to be combined in multiple levels. For example, RAID-0 and RAID-1 could be combined to create RAID-10. But Nested RAID does not restrict the number of RAID levels. So what would happen if three levels of RAID were combined for a RAID configuration? Would it have even more performance along with great data redundancy? Or could I let my “Data OCD” take control and produce a RAID configuration that can withstand the loss of a huge number of drives without losing access to data?
To be perfectly honest, I haven’t seen any triple Nested RAID configurations in production use but I’m sure there are some in production somewhere and even more that have been tested. There are reasons for this and I think if you compared the standard single level RAID configurations to the two-level Nested RAID configurations, you will see why (more on that later). However, as processors gain more performance, including RAID processors, it is fairly easy to imagine triple-level Nested RAID configurations going into production (especially when you couple them with very dense storage enclosures).
There are too many triple level Nested RAID configurations to cover all possibilities, but this article will go over two interesting ones and mention a few of the more unusual triple level Nested RAID configurations.
This triple-level Nested RAID configuration seems to be a good place to start our examination of triple Nested RAID configurations. It takes the popular RAID-10 configuration and adds on another RAID-0 layer. Remember that we want to put the performance RAID level “last” in the Nested RAID configuration (at the highest RAID level). The primary reason is that it helps reduce the number of drives involved in a rebuild in the event of the loss of a drive.
RAID-100 takes several (at least two) RAID-10 configurations and combines them with RAID-0. Below in Figure 1 is a simple RAID-100 configuration with twelve drives.
Figure 1: RAID-100 layout with Twelve Drives
This is just a sample layout illustrating a possible RAID-100 configuration. Remember that the Nested RAID layout goes from the lowest level (furthest left number in the RAID numbering), to the highest level (furthest right in the RAID numbering). So RAID-100 starts with RAID-1 at the lowest level (closest to the drives) and then combines the RAID-1 pairs with RAID-0 in the intermediate layer resulting in several RAID-0 groups (minimum of two). Then the intermediate RAID-0 groups are combined into a final RAID-0 group (a single RAID-0 group).
One obvious question you might ask is why are we using multiple RAID-0 layers instead of just combining all of the RAID-1 pairs into a single RAID-0 group? Great question and the ultimate answer depends upon what you want to accomplish with your RAID configuration. As mentioned previously, one reason is that you may want to take better advantage of multiple RAID cards. We could use multiple RAID cards, each with their own RAID-10 group, and combine them with software RAID at the highest level. In the case of Figure 1, we would have three RAID cards, each with their own RAID-10 group that are combined using software RAID-0 (“md” in Linux) at the highest level.
Using multiple RAID cards improves the overall RAID performance because, simply, we now have multiple RAID processors. This can be even more important in the event of a drive failure because a single RAID card can quickly rebuild the failed drive since it isn’t being used for all RAID functions in the array.
The capacity of a RAID-100 configuration is fairly easy to compute assuming that all the drives have the same capacity.
Capacity = min(disk sizes) * (Number of RAID-0 groups at the intermediate level) * (Number of RAID-1 pairs in each intermediate RAID-0 group)
For Figure 1, this means,
Capacity = min(disk size) * (3) * (2)
Capacity = min(disk size) * 6
The resulting storage efficiency is also fairly easy to compute:
Storage Efficiency = 1 / (Number of drives in RAID-1 pair)
For Figure 1, the resulting storage efficiency is,
Storage Efficiency = 1 / (2)
Storage Efficiency = 0.50 (50%)
Since RAID-1 is at the lowest level the storage efficiency is 50% if we assume two drives in RAID-1 (very typical).
Notice that the minimum number of drives in a RAID-100 configuration is eight if you want to have more than one RAID-0 group in the intermediate layer. This means that you have four RAID-1 pairs that are combined to create two RAID-0 groups in the intermediate layer (two RAID-1 groups per intermediate RAID-0 group). Then the two intermediate RAID-0 groups are combined with RAID-0 at the highest level.
To make a “balanced” intermediate RAID-0 layer (i.e. the same number of RAID-1 pairs in each RAID-0 at the intermediate level), then you need to increment the total number of drives by the number of drives in each intermediate RAID-0 layer. In the case of Figure 1, the number is four (two RAID-1 pairs). If we had used six drives in each intermediate RAID-0 group (three RAID-1 pairs), then we would have to increment RAID-100 by six drives to maintain a “balanced” configuration.
The fault tolerance of RAID-100 is limited to one drive. If you lose one drive in a RAID-1 pair, then you can still access the data. But if you lose the second drive, then that RAID-1 pair is down, and the entire RAID-100 configuration goes down. But remember that RAID-10 is designed for very good performance with a small amount of data redundancy. RAID-100 just follows this approach.
Table 1 below is a quick summary of RAID-100 with a few highlights.
Table 1 – RAID-100 Highlights
||Minimum Number of disks
- Outstanding read performance.
- Outstanding write performance because of striping (RAID-0). But RAID-1 reduces the performance a bit from what it could be.
- Reasonable data redundancy (can tolerate the loss of any one disk)
- Only one disk involved in rebuild.
- You have to use at least 8 drives (very large number of drives)
- Low storage efficiency (50%)
- Can only lose one disk without losing data access.
|Storage Efficiency = 1 / (Number of drives in RAID-1 pair)
In the article about Nested RAID with RAID-5 and RAID-6, it was shown that you could lose up to five drives in some configurations without losing access to data. That is an amazing amount of data protection! Moreover, you have great read performance with RAID-16 but the write performance and the storage efficiency can be quite low. As an example of a three-level Nested RAID configuration that balances performance and redundancy, I created a three level RAID configuration, RAID-160, that attempts to build on the great data redundancy of RAID-16 and add back some performance and storage efficiency.
RAID-160 starts with RAID-1 pairs at the lowest level (I’m assuming RAID-1 with just two drives). Then the intermediate layer (RAID-6), takes four of these pairs per intermediate RAID-6 group (need at least two intermediate RAID-6 groups). The top RAID layer combines the intermediate RAID-6 layers with RAID-0 to gain back some write performance and hopefully some storage efficiency. Figure 2 is the smallest RAID-160 configuration which uses sixteen drives.
Figure 2: RAID-160 layout with Sixteen Drives