RAID 0+1 (or sometimes called RAID 01) is an array of many hyperactive RAID 0 kids in a play pen governed by a level-headed but slow RAID 1 nanny.
It potentially has the same drawbacks of RAID 1 – one needs double the capacity. It also puts a cap on the speed advantage of RAID 0 on the total throughput of the array.
Data flows to the first RAID array and is striped, just like I showed in the last chapter. Once the data is written, the system then acts like a RAID 1 array, and the data is mirrored to the next RAID 0 array.
If you’re having trouble imagining it just remember that each RAID 0 array acts like a drive, so the whole system works like a RAID 1 array.
Think fast cars being transported on a slow ship. Instead of marrying the advantages of RAID 0 and RAID 1, we seem to have married the disadvantages!
So what the hell use is it? Whenever you need a RAID 1 array in general but each drive isn’t fast enough to get the transfer speeds you want you can boost performance by using RAID 0+1 instead. The failure of a single drive doesn’t theoretically stop the operation of the array.
Let’s say a SATA II drive has a theoretical speed of 3 Gbps. Striping two of them in RAID 0 doubles the transfer speed to 6 Gbps. If two of these arrays are mirrored via a RAID 1 array, thus making a RAID 0+1 array, each RAID 0 array behaves like a 6 Gbps drive. Cool, right?
The other way to marry RAID 0 and RAID 1 is by RAID 10 (or RAID 1+0).
If RAID 0+1 was a mirror of stripes, then RAID 10 is a stripe of mirrors. Ha! The detectives were caught in a twist. They couldn’t digest the jargon.
At this point they sat down and ordered a large café latte each with an extra shot of espresso. The sodas just didn’t cut it anymore.
It was hard enough keeping track of RAID 0 and RAID 1, but RAID 0+1 and 10 took the cake. After the small break, they decided to plough ahead.
An array that spreads its data around is said to be a stripe. An array that mirrors is said to be a mirror.
RAID 10 is a stripe of mirrors. Many quiet elderly folk (RAID 1s) in an old-age home run by a hyperactive nanny (RAID 0). Or think slow cars being transported on a supersonic jet.
Each RAID 1 array acts like a drive, with the advantages and disadvantages of a RAID 1 array. But by being striped together, their speed disadvantages vanish, while their mirroring ability remains.
Each block of data is mirrored or duplicated, yet the entire system also has the speed advantages of a RAID 0. The almost perfect match.
If any drive in a RAID 10 array fails, the system still works. In fact, one drive in every RAID 1 array can fail, as long as both don’t. The great advantage this has over a simple RAID 1 array is that the capacity hit is fixed.
Let’s say two drives are used per RAID 1 array in a RAID 10 array, then the capacity will stay at 50% no matter now many more arrays are added.
As we have seen earlier, this is not the case in RAID 1, where the more drives you add, the worse the capacity gets.
This is how RAID 10 combines the speed of RAID 0 with the mirroring ability of RAID 1, while keeping the capacity hit to less than 50%.
RAID 10 is used for both read and write-intensive applications such as database, email, and web servers, as well as for any other use requiring high disk performance – like video streaming and transfer in a post production studio.
One can also have a RAID 100, which looks like this:
A RAID 100 is a stripe of RAID 10s, which is a stripe of RAID 1 mirrors. Getting the hang of it? Think about my box, truck and ship analogy.
What’s the advantage in being striped ‘two-ways’ – a double RAID 0?
It gives you the ability to use multiple RAID controllers to spread the load. The more drives you add to an array the more controllers you’ll need. It gets expensive very quickly.
You see, each Controller has a fixed number of ports. After a point it makes more sense to add more controllers than ports. Why?
Increasing the number of controllers also increases the efficiency of random read performance. If your data is not being read in large chunks, but in small packets spread all over the array, then this is your ticket.
It might not make sense theoretically but practical necessity and economics forces this on us. Very few manufacturers make good controllers, so the price points they set are what we have to contend with, for better or for worse.
For this reason, RAID 100 is often used for large databases, where hardware RAID Controllers limit the number of drives that can be connected per array. The speed advantages are obvious enough, and the complexity and costs increases exponentially.
“I didn’t sign up for this!”
The detectives had had enough. They hadn’t bargained for such complexity.
The head detective wondered how many would call in sick the next day.
“Let’s forget about RAIDs 0, 1, 01, 10 and 100 boys. I think they have enough problems of their own. We’ll move on, tomorrow.”
He couldn’t say for sure whether the grunts that followed his statement were of assent or dissent.
Stripes of mirrors of stripes indeed! What’ll happen if we added parity to the mix?
Links for Further Research: