Learn about the technologies behind the Internet with The TCP/IP Guide!|
NOTE: Using robot software to mass-download the site degrades the server and is prohibited. See here for more.
Find The PC Guide helpful? Please consider a donation to The PC Guide Tip Jar. Visa/MC/Paypal accepted.
|View over 750 of my fine art photos any time for free at DesktopScenes.com!|
[ The PC Guide | Systems and Components Reference Guide | Hard Disk Drives | Hard Disk Performance, Quality and Reliability | Redundant Arrays of Inexpensive Disks (RAID) | RAID Levels | Multiple (Nested) RAID Levels ]
RAID X+Y vs. RAID Y+X
Before looking at the specific multiple RAID levels, I have to explain a few things about the way multiple RAID levels are constructed. A multiple RAID level is generally created by taking a number of disks and dividing them into sets. Within each set a single RAID level is applied to form a number of arrays. Then, the second RAID level is applied to the arrays to create a higher-level array. This is why these are sometimes called nested arrays.
Since there are two levels, there are two ways they can be combined. The choice of which level is applied first and which second has an impact on some important array characteristics. Let's take as an example multiple RAID employing RAID 0 and RAID 1 to create an array of ten disks. Much as we can define 10 to be 2*5 or 5*2, we can create our multiple RAID array two ways:
Naming conventions for multiple RAID levels are just horrible. The standard that most of the industry seems to use is that if RAID level X is applied first and then RAID level Y is applied over top of it, that is RAID "X+Y", also sometimes seen as "RAID XY" or "RAID X/Y". This would mean that alternative number 1 above would be called "RAID 0+1" or "RAID 1+0", and that's in fact the terminology that most companies use. Unfortunately, other companies reverse the terms! They might call the RAID 0 and then RAID 1 technique "RAID 1/0" or "RAID 10" (perhaps out of fear that people would think "RAID 01" and "RAID 1" were the same thing). Some designers use the terms "RAID 01" and "RAID 10" interchangeably. The result of all this confusion is that you must investigate to determine what exactly a company is implementing when you look at multiple RAID. Don't trust the label.
Of course, I haven't even explained why you should care about the distinctions, so I suppose I should do that. :^) After all, if you have ten marbles, why would you care if they are arranged in five columns and two rows, or two columns and five rows? Same here: aren't ten disks in an array ten disks in an array? Clearly I am setting you up, so the answer is obviously "no". :^)
In many respects, there is no difference between them: there is no impact on drive requirements, capacity, storage efficiency, and importantly, not much impact on performance. The big difference comes into play when we look at fault tolerance. Most controllers implement multiple level RAID by forming a "super array" comprised of "sub-arrays" underneath it. In many cases the arrays that comprise the "super array"--often called sets--are considered to be logical "single units", which means that the controller only considers one of these "single units" to either be "up" or "down" as a whole. It will make use of redundancy features within a sub-array, but not between sub-arrays, even if the higher-level array means that drives in different sub-arrays will have the same data.
That makes this sound much more complicated than it really is; it's much easier to explain with an example. Let's look at 10 drives and RAID 0+1 vs. RAID 1+0 again:
Clearly, RAID 1+0 is more robust than RAID 0+1. Now, if the controller running RAID 0+1 were smart, when drive #2 failed it would continue striping to the other four drives in stripe set "A", and if drive #9 later failed it would "realize" that it could use drive #4 in its stead, since it should have the same data. This functionality would theoretically make RAID 0+1 just as fault-tolerant as RAID 1+0. Unfortunately, most controllers aren't that smart. It pays to ask specific questions about how a multiple RAID array implementation handles multiple drive failures, but in general, a controller won't swap drives between component sub-arrays unless the manufacturer of the controller specifically says it will.
The same impact on fault tolerance applies to rebuilding. Consider again the example above. In RAID 0+1, if drive #2 fails, the data on five hard disks will need to be rebuilt, because the whole stripe set "A" will be wiped out. In RAID 1+0, only drive #2 has to be rebuilt. Again here, the advantage is to RAID 1+0.
Tip: For a diagram
showing graphically the difference between RAID 0+1 and RAID 1+0, see the page discussing those levels.
Some controllers offer the choice of "what order" you use to set up a multiple RAID array; they will let you do either RAID X+Y or RAID Y+X, as you choose. Others will force you to use only one or the other configuration. Again, ask for details when considering a solution, and be specific with your questions so you can figure out what exactly the controller you are investigating does.