RAID 10 Vs RAID 01 (RAID 1+0 Vs RAID 0+1) Explained with Diagram

by Ramesh Natarajan on October 24, 2011

RAID 10 is not the same as RAID 01.

This article explains the difference between the two with a simple diagram.

I’m going to keep this explanation very simple for you to understand the basic concepts well. In the following diagrams A, B, C, D, E and F represents blocks.

RAID 10

  • RAID 10 is also called as RAID 1+0
  • It is also called as “stripe of mirrors”
  • It requires minimum of 4 disks
  • To understand this better, group the disks in pair of two (for mirror). For example, if you have a total of 6 disks in RAID 10, there will be three groups–Group 1, Group 2, Group 3 as shown in the above diagram.
  • Within the group, the data is mirrored. In the above example, Disk 1 and Disk 2 belongs to Group 1. The data on Disk 1 will be exactly same as the data on Disk 2. So, block A written on Disk 1 will be mirroed on Disk 2. Block B written on Disk 3 will be mirrored on Disk 4.
  • Across the group, the data is striped. i.e Block A is written to Group 1, Block B is written to Group 2, Block C is written to Group 3.
  • This is why it is called “stripe of mirrors”. i.e the disks within the group are mirrored. But, the groups themselves are striped.

If you are new to this, make sure you understand how RAID 0, RAID 1 and RAID 5 and RAID 2, RAID 3, RAID 4, RAID 6 works.

RAID 01

  • RAID 01 is also called as RAID 0+1
  • It is also called as “mirror of stripes”
  • It requires minimum of 3 disks. But in most cases this will be implemented as minimum of 4 disks.
  • To understand this better, create two groups. For example, if you have total of 6 disks, create two groups with 3 disks each as shown below. In the above example, Group 1 has 3 disks and Group 2 has 3 disks.
  • Within the group, the data is striped. i.e In the Group 1 which contains three disks, the 1st block will be written to 1st disk, 2nd block to 2nd disk, and the 3rd block to 3rd disk. So, block A is written to Disk 1, block B to Disk 2, block C to Disk 3.
  • Across the group, the data is mirrored. i.e The Group 1 and Group 2 will look exactly the same. i.e Disk 1 is mirrored to Disk 4, Disk 2 to Disk 5, Disk 3 to Disk 6.
  • This is why it is called “mirror of stripes”. i.e the disks within the groups are striped. But, the groups are mirrored.

Main difference between RAID 10 vs RAID 01

  • Performance on both RAID 10 and RAID 01 will be the same.
  • The storage capacity on these will be the same.
  • The main difference is the fault tolerance level. On most implememntations of RAID controllers, RAID 01 fault tolerance is less. On RAID 01, since we have only two groups of RAID 0, if two drives (one in each group) fails, the entire RAID 01 will fail. In the above RAID 01 diagram, if Disk 1 and Disk 4 fails, both the groups will be down. So, the whole RAID 01 will fail.
  • RAID 10 fault tolerance is more. On RAID 10, since there are many groups (as the individual group is only two disks), even if three disks fails (one in each group), the RAID 10 is still functional. In the above RAID 10 example, even if Disk 1, Disk 3, Disk 5 fails, the RAID 10 will still be functional.
  • So, given a choice between RAID 10 and RAID 01, always choose RAID 10.

Linux Sysadmin Course Linux provides several powerful administrative tools and utilities which will help you to manage your systems effectively. If you don’t know what these tools are and how to use them, you could be spending lot of time trying to perform even the basic administrative tasks. The focus of this course is to help you understand system administration tools, which will help you to become an effective Linux system administrator.
Get the Linux Sysadmin Course Now!

If you enjoyed this article, you might also like..

  1. 50 Linux Sysadmin Tutorials
  2. 50 Most Frequently Used Linux Commands (With Examples)
  3. Top 25 Best Linux Performance Monitoring and Debugging Tools
  4. Mommy, I found it! – 15 Practical Linux Find Command Examples
  5. Linux 101 Hacks 2nd Edition eBook Linux 101 Hacks Book

Bash 101 Hacks Book Sed and Awk 101 Hacks Book Nagios Core 3 Book Vim 101 Hacks Book

{ 68 comments… read them below or add one }

1 DarioMor October 24, 2011 at 3:01 am

Something is still out of my sight… if performance, sorage and # of disks (=~cost) are the same, and RAID10 is better in fault tolerance than RAID01, why should any vendor offer RAID01? Is someone offering it?

Or there is some topic where RAID01 is better than RAID10?

oh, I almost forget: YOUR BLOG IS EXCELLENT. Thank you.

2 Pardeep Rathi October 24, 2011 at 4:37 am

Hi Ramesh,

If disk1 and disk2 both failed in RAID10, then what will be happend?

3 Ken Whitesell October 24, 2011 at 5:23 am

I’m sorry, but your logic doesn’t hold here.

You wrote – “In the above RAID 01 diagram, if Disk 1 and Disk 4 fails, both the groups will be down. So, the whole RAID 01 will fail.” Well, that’s also true for the RAID 10 diagram you presented. If disks 1 and 2 fail, your entire RAID is down.

Likewise you wrote – “In the above RAID 10 example, even if Disk 1, Disk 3, Disk 5 fails, the RAID 10 will still be functional.” Again, that also holds true for your RAID 01 diagram. Disks 1, 2 and 3 can all fail in RAID 01 and your system will remain functional.

It’s an issue of probabilities. In both cases, each block exists on two physical drives. The system will fail any time a block becomes unavailable, regardless of grouping. Likewise, the system will remain functional if all blocks are available, regardless of how many drives have failed – assuming your structure can retrieve the unavailable blocks from the other drive on which it resides.

4 jalal hajigholamali October 24, 2011 at 12:15 pm

Hi,

thanks a lot

i think raid 5 is the best one…

5 gUI October 24, 2011 at 2:45 pm

Hi !

I made the maths with my wife (safety expert) :

- ‘f’ is the failure probability of one single disk.
- Gx is the name of the groups
- Dx is the name of the disks

RAID 10 :
For loosing your file, you need to loose G1 OR G2 OR G3. To loose G1, you need to loose D1 AND D2, to loose G2 you need to loose D3 AND D4 and to loose G3 you need to loose D5 AND D6.
=> probability of loosing your file : (f*f)+(f*f)+(f*f) = f²+f²+f² = 3f²

RAID 01 :
For loosing your file, you need to loose G1 AND G2. To loose G1 you need to loose D1 OR D2 OR D3, and to loose G2 you need to loose D4 OR D5 OR D6.
=> probability of loosing your file : (f+f+f)*(f+f+f)=3f*3f=9f²

In this particular case (6 blocks, 6 disks), you have 3 times more chances to loose your file on RAID01 than on RAID10.

More basically, you can think like that :
- on RAID 10, if one disk fails, when the second failure appears, I have 1 possibility between 5 that this makes my entire system fail (the other disk in the group)
- on RAID 01, if one disk fails, when the second failure appears, I have 3 possibilities between 5 that this makes my entire system fail (any disk in the other group)

6 geeknik October 24, 2011 at 5:01 pm

The Intel RAID controller in my system (Gigabyte X58A-UD7 motherboard) shows the RAID as RAID 10 and then (RAID0+1) shortly there after while the machine is booting up, and then the Intel RST software shows RAID10 while in Windows. I’m honestly not sure which I have at this point. I’ll just assume I have RAID10 and hope for the best. =)

7 weebl October 25, 2011 at 11:55 am

Ken, I agree the logic is flawed.
gUI, you may have done the math but you are following the flawed logic.

In either of the setups if disk 1 fails you lose the redundancy on blocks A and D, so in order to have a complete failure you would have to lose the other disk that contains the A and D blocks.
In the case of RAID 10 it would be losing disk 1 and 2, in the case of RAID 01 it would be losing disks 1 and 4.
Both have the same probability after loss of the first disk. 1 out of 5.

8 ramsse October 25, 2011 at 6:54 pm

Hi Ramesh,

In Raid10 section, the last bullet says:
This is why it is called “stripe or mirrors”. i.e the disks within the group are mirrored. But, the groups themselves are striped.

But I think you try to say “stripe of mirror”.

9 Ramesh Natarajan October 25, 2011 at 8:43 pm

@ramsee,

Thanks for pointing it out. It is corrected now.

10 gUI October 25, 2011 at 11:49 pm

@weebl

No, in 01, the problem is the group. If you loose disk 1, group1 is dead, it won’t help you even for getting pieces C,D,E or F. So if the next failure is on the group 2, whatever the disk, the group 2 also is dead, and you won’t get any file.

The disks are not independants.

11 weebl October 26, 2011 at 4:57 am

@gUi thanks for clarifying. It makes sense now, and re-reading the article i see the auhor also states the same thing. I agree RAID 10 is better.

12 Jidifi November 21, 2011 at 8:01 am

Comparing raid10 and raid01 seems easier with
the same number of disks (4) for each raid:

- raid10: 2 disks in each group for mirroring,
2 groups for stripping
(D1G1 D2G1, D1G2 D2G2)

- raid01: 2 disks in each group for stripping,
2 groups for mirroring
(D1G1 D1G2, D1G1 D2G2).

Then, complete failure if:

- raid 10: if 2 disks of one or more group failed
((D1G1 and D2G1) and/or (D1G2 and D2G2))

- raid 01: if 2 disks of one or more mirror failed
((D1G1 and D1G2) and/or (D2G1 and D2G2)).

But probability of “((D1G1 and D2G1) and/or (D1G2 and D2G2)) failed”
is equal to
probability of “((D1G1 and D1G2) and/or (D2G1 and D2G2)) failed”.

And then raid10 == raid01.

13 gUI January 27, 2012 at 4:44 am

@Jidifi
For 2 disks, maybe it’s the same (don’t want to redo the maths), but for more, it’s no more equivalent. Please re-read carefully all comments.

14 Jidifi January 27, 2012 at 4:12 pm

@gUI

In your first comment, you write:
“RAID 10 :
For loosing your file, you need to loose G1 OR G2 OR G3. To loose G1, you need to loose D1 AND D2 …”.

Question:
“RAID 10 :
If you lose D1 only (or D2 only), have you lost your file ? “

15 Jidifi January 27, 2012 at 5:43 pm

@gUI

In your first comment, you write:
<
< – ‘f’ is the failure probability of one single disk.
< RAID 10 :
probability of loosing your file : (f*f)+(f*f)+(f*f) = f²+f²+f² = 3f²
< RAID 01 :
probability of loosing your file : (f+f+f)*(f+f+f)=3f*3f=9f²
probability of loosing your file : 3 x 0.8 x 0.8 = 1.92 !!
RAID 01 : => probability of loosing your file : 9 x 0.8 x 0.8 = 5.76 !!

gUI, probabilities greater than one do not exist in our world.
(Please re-read carefully all your first mathematical books)

16 gUI January 28, 2012 at 4:33 am

I know, thank you very much… but why did you choose f=1 ? I think you also should have a look at your maths books…

17 gUI January 28, 2012 at 4:42 am

Oups, no, you did not choose f=1, you choose 0.8, yes… But the formula still true. It just means that with a hard drive that have 80% of probability to fail in an hour, you are sure that you will loose your system. Not very interesting.

Now check with other value, more realistic, like 1/10e-4 (around one failure in one year).

18 Vasudev March 25, 2012 at 6:46 am

Thanks a lot for this post. You described it very simple and easy to understand.

19 raj April 8, 2012 at 12:38 pm

Very good article
Thanks to all for sharing their views

20 Laurence May 3, 2012 at 10:01 am

While the above definition are 100% correct it is important to recognise RAID 10 is a relatively new term and there are many Raid 10 implementation out there that call them selves Raid 0+1. As late as 2006/7 manifacturers were documenting raid 10 implementations as raid 0+1

21 karl July 2, 2012 at 9:31 pm

Are you saying that (in raid 01 diagram) if disk 1 and disk 6 both fail, then the files cannot be reconstructed from disks 2, 3, 4, & 5, which together contain the complete set of blocks?

22 Laurence July 5, 2012 at 4:12 pm

In answer to Karl, Yes in Raid 01 If disk 1 fails then the Stripe Group1 has failed, so the only data access available is via the Group 2 stripe. If any disk in Group 2 fails then both Groups have failed.

This is why RAID 10 is far superior to RAID 01 in terms of availablity.

23 Stoinov August 10, 2012 at 10:54 am

For all the people that can’t get why 01 is worse here is a more detailed description:

The gist is basically that when a Drive fails in RAID 01 the whole Group fails. In the case above imagine failure of Disk1 then the whole Group1 is down and you’re left with only three disks that make up Group2. If ANY of them fails then I hope you have recent backups :)

As for the RAID 10 – it needs to lose two mirrored disks (for instance Disk1 and Disk2) in order to lose whole group (in this case Group1) so the RAID could fail. And the probability is quite smaller even without a math: with 01 you have simple mirror, when any of the drives fail you have only one group left, and if any of these drives fails while you’re replacing or rebuilding the RAID – it’s all gone.

24 Dev Mgr August 17, 2012 at 11:24 am

A decent raid controller should be able to pick up that, if disk 1 and 5 had failed, it still had access to all data. It would basically piece the 2 raid 0′s together to make a working set of data.

The problem is that some of the low end raid controllers don’t have this level of intelligence.

Also, if you were to resort the drive order in the picture to show “Disk 1 and Disk 4, then Disk 2 and Disk 5, and then Disk 3 and Disk 6″ you would still have the same raid 0, and you could see that data-wise, raid 10 and raid 01 should be the same; it’s just a question of how smart is the raid controller (to understand that all I need are blocks A to F, and it doesn’t matter which drive in which raid set they are on).

25 Laurence August 21, 2012 at 6:03 am

Dev Mgr, you miss the point of this discussion, if the Raid controller implements Raid 0+1 then it can not handle that failure mode if the raid controller implements Raid 10 then it can. It has nothing to do with level of intelligence of the controller or whether itis a low or high end controller, just the raid algorythm chosen. The selection of the latter has significant amounts to do with the level of intellience of the firmware developer but that said there can be good reasons to choose raid 0+1 over raid 10 !!!

26 grant August 24, 2012 at 2:17 pm

I want to understand more the availability of the data. As Dev Mgr points out, depending on the failure mode/sequence of events, your file may actually still exist, but limitations in the RAID algorithm prevent you from accessing it.

Does this mean that with some manual intervention, e.g. physically juggling the drives and putting them in a certain sequence, one could restore their file for use once more? Once restored, further manual steps could be taken to restore your full striped mirror (or mirrored strip) and your RAID array of choice would once again by live?

27 Hugh August 26, 2012 at 12:57 pm

I found this link looking for the benefit of RAID 10 vs. RAID 01, but using FOUR drives in total. With all things being equal, in a four-drive (2 pairs) array, RAID 01 & 10 should be equal. I’m running an older 3ware controller, and I’ve learned never to trust luck.

It seems to me that the redundancy depends on the controller you use.
If I do RAID 01, and one drive from each stripe fails, even if they weren’t holding the same data, I’m depending on the controller being smart enough to “marry” up one drive from each stripe to form a whole effective non-RAID stripe pair. In essence, to re-build one striped pair dynamically. That isn’t a bet I’m anxious to make!

With the fundamental element being a mirror, the controller can be a good deal stupider and the low-level mirrors still dutifully cough-up their contribution to the over-arching stripe, and my day isn’t ruined.

Since both 01 & 10 use BOTH striping and mirroring, they are likely to provide the same performance. So I’m going with RAID 10. (now if there were only some way to make it go to ELEVEN! :)

28 Laurence August 26, 2012 at 11:54 pm

Grant, what you say may be possible, however in a Raid0+1 scenario you really only want to consider this if you had multiple simultaneous failures. The longer the period between the failure the more out of step the remaining good drives in the failed stripe get with the drives in the live stripe.

Whether manual intervention as you describe will work really depends on the Raid software (frimware), what controls it allows and what meta data it stores, do not assume the raid software will allow such activity.

29 Laurence August 27, 2012 at 12:16 am

Hugh, I’m affraid to say raid 0+1 and raid 10 are not the same and will NOT give to the same availablity.

In raid 0+1, when the first disk lost means the first strip in lost which means both disks in that stripe ater ejected from membership of the Raid volume and so the data is no longer mirrored at all.. At this point the data on the other member(s) in the stripe starts to become increasingly stale as it is no longer being updated. If either of the disks in the remaining stripe is loss the complete volume is lost… the controller can’t have the smarts to sort the issue out, we have lost data …

In Raid 10, when the first disk is lost, only 1 of the 2 mirrors is lost and the stripe between the mirrors is unaffected. So providng your next disk failure comes from a disk in the remaining good mirror then the stripe will still be good.

So if Raid0+1 has two disk failures, the volume is toast …
Raid 10 can tolerate at least 1 disk failure and potentially 2 if they are the “right disks” so raid 10 has better availablity,

30 Grant August 27, 2012 at 5:35 am

Hi Laurence,

I’m stuck searching for a backup solution, wondering if you or any of the readers can help.

I have an industrial slim PC at a remote site, no internet connection is permissible (corporate regulation), and I’m nervous of hdd failure. If I could completely mirror the drive, even once a week, the local techs could simply swap the drives to get the system running again and then contact me for warranty support – this keeps downtime very low. The PC box does not have a RAID controller, and does not have room for a 2nd hdd in the box.

Does there exist an external mirror device that works in parallel to the primary disc, or perhaps an external 2 disc RAID 1 device that I can use instead of the internal disc (I’m picturing a 30cm IDE extension cord, so the PC thinks the RAID is internal)?

I prefer a hardware sol’n over software, simply because I cannot login and confirm the software is working at all times.

Thx

31 Leon September 10, 2012 at 10:51 am

Please correct me if my logic is wrong, but it seems the math was made much more complicated that it needs to be. Here is my explanation:

Based on the diagrams for Raid 10 with 6 disks –
In Raid 10 if 2 disks fail the probability of complete failure is 1/5.
1st disk is probabiliy of 1 since it does not matter which disk fails first, and 2nd disk must be part of the same group of the first disk to fail. Therefore out of the remaining 5 and there is only 1 disk that can cause complete failure. Probability is 1 out of 5.

In Raid 01 if 2 disks fail the probability of complete failure is 3/5.
1st disk can be anything once again, and to cause complete failure the 2nd disk can be any of the 3 disks in the other group. Therefore out of the rest of the 5 disks, the probably is 3 out of 5.

Based on this for a 2 disk failing scenario Raid 10 is better. Writing out the probability for 3 disk failure would prove the same result.

The same applies for 4 disk, for Raid 10 probability of 2 disks failing to cause complete failure is 1/3 and for Raid 01 it is 2/3.

32 Laurence September 11, 2012 at 2:52 am

Hi Leon, your maths fails to take into account that in raid 0+1 after the first failure half the disks are no longer available (in the above example two good disks will have effectively been failed along with the bad disk).

In raid 0+1 the first disk failure fails all disks in that stripe, the failure of any subsequent disk means a member of the other stripe has failed and so data access is lost. Two disk failures = total data access losss

In raid 1+0 there is potential for loss of upto half the members and for data access to remain.

As stated earlier this is why RAID 1+0 is so superior to Raid0+1

33 Ven September 24, 2012 at 3:36 pm

Guys it’s a Simple logic don’t make it complex.
RAID 1+0 has a mirrored pair as its basic element. If a drive fails and is replaced, only the mirror needs to be rebuilt. In other words, the disk array controller uses the surviving drive in the mirrored pair for data recovery and continuous operation. Data from one surviving disk will be copied to the replacement disk.
Note: If there is a hot spare, data is rebuilt onto the hot spare from the surviving drive in the mirrored pair . When the failed disk is replaced, data from the surviving drive in the mirrored pair is used to rebuild the data on the replaced disk.

RAID 0+1 uses a stripe as its basic element. The stripe has no protection (RAID 0). If a single drive fails, the entire stripe is faulted, meaning that only half the disks in the RAID set are available for data access. A rebuild operation rebuilds the entire stripe, copying data from each disk in the healthy stripe to the equivalent disk in the failed stripe. This causes increased, and unneeded, I/O load on the backend, and also makes the RAID set more vulnerable to a second disk failure.

RAID 0+1 is less common than RAID 1+0, and is a poorer solution.
Hope above helps

34 Sammitch September 26, 2012 at 12:14 pm

Also, after disk failure in 0+1 you have to rebuild fully half of the disks in the array, which means you have to do a lot of reads on the other, non-failed half. You really end up putting the system through a large amount of disk I/O, and risking failures in other disks.

In 1+0 you’re only involving the one other disk in the affected mirror.

35 Michael October 12, 2012 at 12:11 pm

In case this has not been settled yet, here is every possibility for a 2 drive failure:
Drive R 0+1 R 1+0
1,2 Up Down
1,3 Up Up
1,4 Down Up
1,5 Down Up
1,6 Down Up
2,3 Up Up
2,4 Down Up
2,5 Down Up
2,6 Down Up
3,4 Down Down
3,5 Down Up
3,6 Down Up
4,5 Up Up
4,6 Up Up
5,6 Up Down

36 jake12 January 14, 2013 at 3:22 am

Raid 10 tolerance is not better, and here’s why. Let’s discuss the failure scenarios the article mentions:

Scenario #1: Disks 1 and 4 both fail simultaneously. The entire RAID 01 array would fail, but the RAID 10 array would survive.

My response: True, but if disk 1 and disk 2 both fail, RAID 10 fails, while RAID 01 survives. Since the chances of disks 1 and 2 both failing simultaneously are exactly the same as disks 1 and 4 doing the same, it’s a wash; RAID 10 provides no advantage.

Scenario #2: Disks, 1, 3, and 5 all fail simultaneously. According to the article, the RAID 01 array would fail, while the RAID 10 array would survive.

My response: NOT TRUE. Data on the RAID 01 array would NOT be lost. Why? Because the data on disks 2 and 5 are identical. So just take the (still working) disk 2, substitute it for disk 5 in the “group 2″ array, and voila, the array is working again, with all data still intact.

So in conclusion, it doesn’t matter too much whether you do RAID 10 or RAID 01; the fault tolerance is the same either way.

37 gUI January 14, 2013 at 4:10 pm

@jake12 : in conclusion, you’re wrong :D

RAID is not working in this way, that’s precisely why 01 has lower availability. As soon as you loose one disk (say #1), you’ll loose all the group (Group1), even if the other disks are still OK. That’s the implementation, you cannot change this.
So once this happens, if the next failre is on the other group, you’re dead (even if all data still available globally, I agree).

38 jake12 January 15, 2013 at 2:13 am

@gUI

I don’t think that’s true.

If one drive in a Raid 0 array dies you lose the “entire array” because it’s inacessible, but the data on the surviving drives doesn’t go anywhere. It’s not like the RAID controller says “Oh crap, a drive died; I’d better format all the other drives in the array just in case”

When a drive dies, the RAID 0 *ARRAY* dies, but the *DRIVES* themselves are still perfectly good, and all the data is still there. The only reason the array “dies” is because it needs all drives present in order to access the data, and if one drive is dead/missing, it can’t access the data on the other drives. But if you could somehow magically replace the failed drive with an identical drive with identical data (as is the case when the array is mirrored across another, identical RAID 0 array on the other side of the RAID 01), then the controller has no way of knowing that you just switched drives, and the array lives to see another day.

39 gUI January 15, 2013 at 2:48 am

In that way, you are totally right. But you’ll have to switch off your system, modify the array structure, and stitch it back on. We can’t talk about availability of the system, and that’s why 10 is more reliable, meaning it guarantees a better availability of the service.

In case #2, your data are still there (you can retrieve them at the cost of a little effort), but the service is down.

This being said, I’m not sure that you can switch the drives between them and simply restart your RAID, I wonder if they are tagged or something. But even if this is the case, there will always be a way to retrieve your data, yes.

40 jake12 January 15, 2013 at 3:26 am

@gUI

So then I think we’re in agreement – Raid 10 provides no extra redundancy against catastrophic data loss, only against system uptime regarding how long it takes to swap drive slots and reboot the system.

But even then, that’s assuming that the RAID controller/driver/firmware can’t figure out that there are still enough “good” drives left in the array to get a 100% intact RAID array going. I’ll admit I don’t know a whole lot about server-level RAID controllers, but wouldn’t it be logical for the RAID card manufacturer to put this incredibly simple bit of programming into whatever function monitors the drive status? They’ve been putting all kinds of upgrades/improvements to RAID cards over the years (caching, battery backup, etc.), it wouldn’t very much trouble to make it so that a RAID 01 array had the same redundancy of a RAID 10, so that RAID noobs didn’t have to worry about how to set the array up.

41 Laurence January 15, 2013 at 3:49 am

Hi Jake12, I have to disagree because the drives failures are not likely to be simultaneous which means in a RAID0+1 model after the first drive failure the other two drives that are “marked” bad are no longer being updated which means very quickly you will not be able to re-consitute any file that is written to and there will be real data-consistency issues

Secondly the idea of re-constituting the data from the surviving drives may not work as some raid implementations will not allow such and action as they track the membership using meta-data store either on the drive or in the controller.

Regards, Laurence

42 jake12 January 15, 2013 at 4:07 am

@Laurence

Not a bad point. Theoretically, a RAID controller could alleviate this problem by continuing to update the other drives in the “failed” RAID 0 array, but the particular RAID controller device may or may not do this in practice.

So in theory, there should be no difference in redundancy between RAID 01 and RAID 10, but in practice, you should stick with RAID 10 just to play it safe.

43 good_weather January 21, 2013 at 8:02 am

> @gUI
>
> RAID 10 :
> For loosing your file, you need to loose G1 OR G2 OR G3. To loose G1, you need to loose D1 AND D2, to loose G2 you need to loose D3 AND D4 and to loose G3 you need to loose D5 AND D6.
> => probability of loosing your file : (f*f)+(f*f)+(f*f) = f²+f²+f² = 3f²

> RAID 01 :
> For loosing your file, you need to loose G1 AND G2. To loose G1 you need to loose D1 OR D2 OR D3, and to loose G2 you need to loose D4 OR D5 OR D6.
> => probability of loosing your file : (f+f+f)*(f+f+f)=3f*3f=9f²

You can’t add up probabilities like that because their events overlap. Also probabilities will never ever be higher than one if you do proper calculations.

Considering the first case RAID 10:
You are asking for the probability P(G1=d or G2=d or G3=d). To calculate this you could break this down to each _disjoint_ case:
(G1=d and G2=l and G3=l) or (G1=d and G2=d and G3=l) or (G1=d and G2=d and G3=l) or (G1=d and G2=l and G3=l) …
Here you could add each probability because their events are disjoint. But it is simpler to calculate P(G1=l and G2=l and G2=l) which is the only event left out, the opposite case.

Therefore the probability of P(G1=d or G2=d or G3=d) = 1 – P(G1=l and G2=l and G2=l) = 1-3(f-1)^2.

Another approach would be to negate the boolean expression “G1=d or G2=d or G3=d” which actually is “G1=l and G2=l and G2=l”.

If you now let f be 0.8 the result would be 1 – 0.2^2 = 99.2 %, which of course is within the range [0, 1].

44 good_weather January 21, 2013 at 8:19 am

Wait, i’m stupid. I messed up the probability for a group to be alive:

P(G=l) = 1-f^2

Therefore P(G1=l and G2=l and G3=l) is (1-f^2)^3. The hopefully correct formula is P(G1=d or G2=d or G3=d) = 1-(1-f^2)^3. Let f=.8 then the result is ~ 95.3 %.

Sorry for the confusion :/

45 jake12 January 22, 2013 at 2:21 am

To simplify the point good_weather is making, consider rolling six dice (regular, 6-sided cubic dice). What are the chances of rolling a “5″ on at least one of them?

Let’s see, the chances of getting a 5 (or any other number) on a single die is 1 in 6, because there are 6 possible numbers. So the chances of getting a “5″ on at least one of the six dice rolled is:
(1/6) + (1/6) + (1/6) + (1/6) + (1/6) + (1/6) = 6 * (1/6) = 1
So by that logic, you have a 100% chance of rolling at least one “5″, which is obviously wrong.

While it’s true that *on average* you’ll get a 5 on one of the six dice, you’re not guaranteed to have exactly one on every roll, because some rolls will produce more than one “5″, while others will produce none.

The easiest way to correctly calculate the odds, as good_weather points out, is to calculate the odds of getting *NO* 5′s; i.e. the odds of all six dice resulting on something *other* than a 5, which is easy. The odds of getting a non-5 roll on a single die is 5/6, so the odds of getting a non-5 roll on all 6 dice is (5/6)^6, or 15,625/46,656, or about 1 in 3.

So you have a 1 in 3 chance of NOT getting a 5, which means you have a 2 in 3 chance of rolling at least one. p(at least one) = 1 – p(none).

I think that simplifies it. Either that, or makes it more confusing ;P

46 Anonymous February 3, 2013 at 7:25 am

Very Good Info Ramesh

47 john Johnson February 20, 2013 at 2:32 am

Raid 10 is the same performance as Raid 1?

No.

48 Witek March 12, 2013 at 2:20 pm

gui@ – almost correct, but you made mistakes in calculations.
good_weather@ – correct, but still there are significant assumptions in your calculations.

Distinction between 10 and 01, matters only if you are using them in different layers. For example doing RAID 0 in software on top of hardware RAID 1. or reverse. Or using everything in software, but using two SATA/SAS controllers (each one for half of your drives). Then, loosing one of drives in 01, may mean whole group is unavailable (because hardware raid will not know about other group, or because whole group failed because of faulty controller, or faulty shared PSU), and then it is just a matter of loosing any of remaining disks in remaining group to loose whole array. However, if all disks are behind a one controller, and you are doing software raid or smart hardware raid, then there is no difference – each block is available on some 2 device, shuffling order of drives doesn’t matter.

Your analysis of failure probabilities for 10 and 01, assumes there exists dependency between disks in single group, but it is only true in some cases (as explained above). Still valid in many situations. As also explained above, when using 2 controllers or doing replication across machines – think about it. Is it better to have first mirror on 1 machine (server) and second mirror on 2 machine, and perform striping on client (raid 01)? Not really, if one of the machines dies, you are losing access to data, because having at least one drive in each machine is necessary. Contrast that with oposite. Strip non-mirrored drives on each machine, and mirror them (in client) across machines (raid 10)? Yes, even loosing whole single machine will make array still available to client. Also loosing some disks will be fine in such scenario, because you can choose which machine to use for each block.

49 Claireron April 2, 2013 at 9:21 am

real world working with 5x9s the array RAID theory is all change – classic RAID level is going … going nearly gone, chunklets as in HP 3PAR’s array are the way ahead, and in regard to the posting classic RAID 10 vs 01 – I would always put in two arrays and have layered either

A) array based replication
or
B) HBM (software raid) over the two arrays.

(separate fabrics of course). Within my SAN (2PB 14 arrays stretched over 2 sites), we have had a (multi disk failure) just (once) in three years (that was 2 disk). and the Hot spares kick in very fast so the exposure time is very low, and we run RAID 10.

As for asking the array to choose which RAID 10 or 01 – for the question I would go with suppliers best practice.

Claire

50 Jason June 4, 2013 at 1:35 pm

As all these attempts to clarify seem to have not worked, here is another try.

RAID 10 -> Each disk in a 3 disk striped array has its own mirror. If you lose D1, you must lose D4 to have failure. Losing D5 or D6 would be ok. You are guaranteed to have D1 = D4, D2 = D5, and D3 = D6.

RAID 01 -> A complete 3 disk striped array is mirrored to another 3 disk striped array. In this case, you are NOT guaranteed D1=D4, D2=D5 and D3=D6. If that were true, then you actually have RAID 10. In RAID 01 the stripe sets are independent of each other.

For example, files A, B, and C could be split into 3 stripes each – A1, A2, A3, B1,…. Now in the above illustrated setup for RAID 01, you can have the following:
D1 – A1, B1, C1 | D4 – A1, B2, C3
D2 – A2, B2, C2 | D5 – A2, B3, C1
D3 – A3, B3, C3 | D6 – A3, B1, C2
Each stripe set is free to stripe data any way it wants because the parts of the set are not individually mirrored (like they are in RAID 10. Again, if you know the sets are identical, it is RAID 10). Here, if you lose D1, then losing any of D4, D5, or D6 will cause failure. In other words, after losing 1 disk, RAID 01 is 3 times more likely to fail than RAID 10.

If you know the stripe sets are identical, it is a RAID 10. When you say RAID 01, you are implying that the stripe set pieces MAY NOT necessarily be identical.

When would anyone use RAID 01? Hopefully never, but suppose you have 6 disks and 2 four port RAID controller cards. You could set up RAID 10 with 3 RAID 1 sets (2 on one controller and 1 on the other) and then a software RAID 0 stripe set. Or you could set up RAID 01 with a 3 disk RAID 0 stripe set on each controller, and a software RAID 1. In this case there can be a slight performance advantage to RAID 01 because software RAID 1 uses fewer processor cycles than software RAID 0.

But just get a 6 port controller card and do everything (RAID 1+0) in hardware. Restoring anything after any kind of failure in a hardware + software RAID setup is a nightmare, and you have more points of failure.

Jason

51 gUI June 4, 2013 at 2:24 pm

@Jason

Brilliant !!! Thanks a lot :)

52 Yev October 15, 2013 at 11:02 am

No Jason you’re totally wrong, but what describing is just simple clustering of random disks, same size or not. that’s not an actual raid 0, If you wanna cluster same sized disks and not actually stripe the data across like it should be go for it.

Witek is the only one correct so far. All of this should be assumed to be hardware array setups, otherwise how is this a comparison. I’d even go as far as to say the 0+1 obviously using hardware raid on same controller would be faster. Striping across several disks usually gives better performance. Your scenario is pretty dumb in the first place trying to compare 2 similar raid setups, but using odd/even number of groups. If you had 6 disks why are you doing 3 groups of Raid 1. I highly doubt striping that many Raid 1 groups would even benefit as much. please provide benchmarks to your completely illogical raid grouping.

53 Danilo November 4, 2013 at 12:09 am

But if only one of disks becomes defect, which is the best fault tolerance from 1+0 vs 0+1 ?
In this situation, so same in 1+0 same in 0+1, the array works the same or stops ?
Thanks

54 JdMc November 17, 2013 at 12:29 pm

I would like to thank all the participants in this discussion for all the crucial information they have provided. With that said I agree the RAID 10 has a lower probability of failure of data recovery, that is the key, you don’t wait for another failure. The RAID controller is designed to rebuild the data after replacing the failed drive/s, right? Provided you have not had several critical drive failures at the same time, in the same group and at least one of each data set still exist the array is rebuilt upon drive replacement, am I incorrect? Lets say drive #1, #4 and #5 all fail at one time in the 6 disk RAID 10 example above, there is still a full data set, you replace the drives, rebuild the array and you have lost no data. Is this correct?

55 GeekTheSneak November 24, 2013 at 8:09 pm

Im an HD Digital Video Editor who SERIOUSLY needs a good recommendation for an ext. hard drive [RAID]. I have a PC system. Long story short, I want a RAID 10 system if they have one [ext. HD]. Is there such thing?
[I haven't been able to locate one] And if so, which is recommended?

If they don’t have one what is the next best thing??

HD files are HUGE & my current [lame] ext. hard drives perform extremely slow due to the video graphics and effects. :/

A quick, simple, legit solution would be EMMENSLY appreciated!

Thanks in advance guys :)

56 Witti December 9, 2013 at 5:00 pm

Sorry guys, but your whole discussion is amusing. Please check the difference between 1E, 0+1, 1+0, 5, 6 and mdadm’s true 10 raid-levels with its different near, far, offset options (which to mee seem relevant to more and more obsolete rotating rust).
Also check up btrfs and zfs and possibliy win2012 server and later storage pools.
Basically, in >2010 we know that block-level redundancy is 2000s, now we have multi-device filesystems per machine in different stages of maturity. Including SSD caching in hardware or via dedicated device… Let alone concepts like replicating all data n times on your different local machines…

57 JdMc December 10, 2013 at 10:37 am

To GeekThe Sneek, yes they do have external RAID 10 USB plug and play HD sets. Check TigerDirect I know they have them. Good Luck and happy Computing to all.

58 ryan January 12, 2014 at 6:22 am

RAID 10

—1— —2—
A* A* B B
C* C* D D

RAID 01

—1— —2—
A* B A* B
C* D C* D

* Represents Drive Failures

I think it depends where the drive failes.In RAID 10,if both the drives in the same array fail,then its a complete failure of the RAID.

In RAID01,if 2 drives,one in each array fails,its a complete failure of the RAID.

59 jake12 January 12, 2014 at 1:05 pm

@ryan

But therein lies the rub. You’re more likely to get a complete array failure in Raid 01 than in RAID 10. I’m not sure if your illustrated example uses 4 drives or 8 drives, but here’s an example using 4 drives for simplicity.

RAID 10

—1— —2—

—(RAID 0)—
***A*** ***B***
__^__ __^__
mirror mirror
—v— —v—
***C*** ***D***

Here, A and C are mirrored (RAID 1) on side 1 (left) of the array, and likewise for drives B and D on the right. Arrays #1 and #2 are then striped in a RAID 0 setup.

In this case, if one of the drives fails (say, drive A), then the entire could be lost if, and only if, drive C is the next drive to fail. Failure of drive B or D does not disable the array, since they interchangeable with one another thanks to being “mirrors” of one another. Thus, since only 1 drive (out of the 3 remaining) can disable the array, odds are 1 in 3 that the next drive failure will ruin the IT department’s day.

Now consider RAID 01. Same setup as above, but with mirroring and striping reversed. So drives A and C are striped in a RAID 0 setup (array #1), while drives B and D are the same (array #2), and the two RAID 0 arrays are mirrored in a RAID 1 array across sides 1 and 2.

Once again, consider that one drives fail (again, assume it’s drive A; it doesn’t matter which drive, because the concept will still apply). Since drive A is gone, that means array AC is gone also, since they were a RAID 0 array, and a RAID 0 array dies when just one of its constituent drives fails. So the system now relies on just two drives (B and D), which are also set up in a RAID 0 configuration. I think you’re starting the see the problem; if either drive B or D is the next drive to fail, then the entire hard disk array falis, so your odds are 100% that the next drive failure will disable the entire disk array (or 2 in 3 if you count the disable-but-still-functional drive C).

Either way, your odds of an array failure are lower with RAID 10 than RAID 0, with a typical RAID controller.

Hypothetically a smart, thorough, well-designed RAID controller could continue to write data to drive C after drive A failed (instead of disabling array AC as soon as one of its drives failed), effectively using it as a mirror of drive D in case D fails. In this case, overall fault tolerance is the same as RAID 10, since you have the same 1 in 3 chance of a total array failure (since drive B would be the only drive out of the 3 that could cause it). However, in practice, few (if any) RAID controllers are smart enough to do this, so using RAID 10 over RAID 01 is pretty much always the better choice, since it gives you the same speed/performance anyway, and usually greater fault tolerance.

Hope that made sense, and forgive my lousy ASCII art skills =)

-jake

60 FB January 13, 2014 at 12:17 pm

This whole argument only takes into account the redundancy of DISKS.
What if a controller fails?

YOU SHOULD: stripe off of a single controller, then mirror that stripe to
an identical stripe on a separate controller. That’s a “mirror of stripes”.
This way if a disk fails, a stripe is down, the other one is still up as usual.
But what if a controller fails? In a mirror of strips, you’re still up.
In a stripe of mirrors, you’ve lost one piece of each stripe and you’re
down. Pray to never have a controller failure for 10.
Conclusion: 01 is better in all cases.

so you say you’ve got 1 RAID controller for everything? That’s even worse.
Best is a mirror of stripes created such as you would do within Solstice Disksuite,
using separate controllers for each stripe to hang off of.

Also the examples you give are unnecessarily confusing, and you introduce the
concept of a “group”. There are mirrors and stripes, nothing more.
You don’t need the letters “A-F” for any purpose I could see.

61 DEW January 18, 2014 at 9:25 pm

I basically agree with a comment from Ven bask on Sep 24 2013.
Think of striped data as one one storage unit/group composed of 2 or more disks for performance and/or extra storage. (The 0 in Raid 10/01)
Think of a mirror as having a mirror image (hot backup) to immediately use. (The 1 in Raid 10/01) Failed mirror must be resynced before fully mirrored again. Assume only one mirror… overhead of multiple mirrors and extra redundant storage is probably prohibitive.

Raid 01: Each storage unit/group is mirrored – identical striped data on a second storage unit/group. Individual disks are not considered mirrored but there should be a disk with identical data in the other unit/group. Any one disk fails in a storage unit/group and that one is down. The remaining data on the remaining disks in the unit/group becomes stale and not suitable for normal recovery. (Unlikely RAID/system can continue to partially mirror the stripe). Drives in the failed storage unit/group are no longer active. A failure of one still >activeactiveanother< mirrored pair does not bring system down. However, additional failure in already failed mirrored pair of disk before failure has been recovered (resync/resilver the 1 replacement disk) brings down the storage unit/group and the system.
Raid 10 would have faster recovery times from a failed disk – 1 disk to resync vs. 2+. Also could survive a second disk failure if not the mirror of the failed disk.

Larger systems could have storage subsystems with mirrored disks and mirrored (or hot backup) subsystems but that may not be considered a RAID level. (101?)

—update—
Something got dropped in the middle of that long post…

RAID 01 … A failure of any one of the still >active< drives in the remaining storage unit/group before failed mirror has been recovered (resync/resilver the failed stripe (2+ drives) does bring system down. May be worth using if separate controllers for each stripe (storage unit/group) is important.

RAID 10 would be a storage unit/group composed of striped data on 2 or more mirrored pair of disks. A failure of one drive in any mirrored pair does not bring system down. …

62 Sampath January 29, 2014 at 10:05 pm

Nice explanation which made me to understand easily.

63 James D February 7, 2014 at 5:20 pm

Thank you Ramesh, that makes the RAID 10 versus RAID 01 very clear as I understood it to be the opposite configuration of the groups versus the stripes. I can now understand the group itself contains the first of the data stripes as well as the mirror of the disk. My concern was the ability to rebuild the data with the loss of one drive in each set as I can see the RAID 10 has a higher fault tolerance to multiple drive failures, being all new, good quality drives will leave the odds very low to failure at any given time and the odds decrease very rapidly for multiple drive failure at the same time becomes very low. You very clearly expressed the differences of the two configurations for me and I’m sure any with the same question. Good Day to you and Happy Computing to all.

64 Steven February 14, 2014 at 5:46 pm

How come everyone is so hell-bent on *their* scenario for failure being the biggest problem? If you have replication across multiple machines, then there is an additional possibility of failure of the machines – this is not a RAID failure! It is the same as arguing that the 6 (as in the diagrams) hard drives are stacked vertically and a small (yet armed) child is more likely to drill holes in the hard drives at the very top and bottom, so a solution which allows for these to fail is better than one which doesn’t. Circumstantially there may be advantages to one or the other, but these are linked to said circumstances. Likewise, if the RAID controller deems a group failed because 1 drive failed this is a badly designed controller, and nothing to do with the theoretical RAID.

Here’s hoping everyone predicted (and protected against) the actual problem they end up with!

65 Laurence February 17, 2014 at 4:33 am

Steven,

Apologies but I completely disagree with you last sentence. This whole thread started with a discussion about the difference between Raid 1+0 (10) and Raid 0+1 and there are distinct differences in the availability profile of each solution and performance profile although niche corner cases (will not discuss more here). When a designer comes to implement their solution they weigh up those difference and advantages and choose the best implementation for their requirements.

So choosing a solution (0+1) that deems a group failed because1 drive failed is not bad design if availability is not your primary concern, It probably is a bad design if availability is your primary concern.

66 Satish Naidu Vavilapalli April 18, 2014 at 12:02 am

Nice Presentation about Raid01,Raid10 but i have some doubts here

1.As you said If Disk1,Disk3,Disk5 from each group then the Raid10 still will be functional I agree with you.But if Disk1 and Disk2 are fail in the same disk group the what will happen ?

And coming to the RAID01 here even if one disk fails or two disks are fail or 3 disk are fail in the same disk group1 or Disk group2 However the no of disk failures but the Raid 10 will be down.For this post i agree with you

67 keel lel April 19, 2014 at 12:42 pm

Hey guys. Just wanted to explain it how I understand in case anyone doesn’t get the above comments .

Think of it like this:

You have 1 hard drive. It needs to read a,b,c and d. It does this at a rate of 1letter per second. It takes 4 seconds for all the letters to be read.

In raid 10 you have 4 hard drives seperated into 2 groups of hard drives . Group 1 contains drive 1 and drive 2. Drive 1 contains letters a and b which it reads at 1 letter per second. Drive 2 is a copy of this so it also reads at 1 letter per second, however these speeds do not add together to read a and b at 2 letters per second, drive 2 is more like a backup. This means letters a and b take 2 seconds to be read. At the same time group 2 (containing drives 3 and 4) reads letters c and d. Drive 3 reads letters c and d at 1 letter per second, and drive 4 is identicle and a sort of backup. This means letters a and b are read in two seconds and because this is done at the same time as group 1 reads a and b (read In 2 seconds) letters a,b,c and d are al read in 2 seconds. 2x faster than one hard drive.

Raid 01 also reads a,b,c and d in 2 seconds. However, in group 1 (consisting of drive 1 and drive 2) drive 1 reads letters a and b and drive 2 reads c and d. Group 2 is a copy of this.

The main difference are that in raid 10 drives 1 and 3 could both fail and the system would still run because drives 2 and 4 would take over. This means that drives 1 and 3, 1 and 4, 2 and 3 or 2 and 4 could both be down, but the system would still be running as the two functional drives would take over. Whereas in raid 01 if drive 1 or 2 failed group one would fail and group 2 would take over. This means drives 1,2,3 or 4 could fail and the system would still be functional, but if anymore failed the system would fail.

PHEW! Hope it helped.

68 R. GANAPATHI RAO April 29, 2014 at 12:53 am

Hello Ramesh,
Now only I realise how ignorant I was and was misinforming many a
colleagues the wrong thing. Of course neither I nor any of my colleages
got a doubt. Thanks for the enlightenment.

R. GANAPATHI RAO

Leave a Comment

Previous post:

Next post: