RAID 0+1 and RAID 1+0 (RAID 10 and RAID 01)
In order to clearly understand RAID 1+0 and RAID 0+1, I will explain RAID 0 and RAID 1 first and then explains the difference between RAID 0+1 and RAID 1+0 with a simple diagram.
RAID 0 :
RAID 0 offers striping with no parity or mirroring. Striping means data is “split” evenly across two or more disks. For example, in a two-disk RAID 0 set up, the first, third, fifth (and so on) blocks of data would be written to the first hard disk and the second, fourth, sixth (and so on) blocks would be written to the second hard disk. A downside of this approach is that if even one of the disks crashes, the entire RAID 0 setup fails because data becomes unrecoverable.
example for two disk raid 1 array each size is 143 GB the total raid disk size =146+146
RAID 1 :
RAID 1 offers mirroring. There is no striping; the entire data is mirrored on each disk. This results in multiple copies of data (redundancy). And if one of the disks fails, data can still be recovered because it is intact on the second disk; most RAID 1 setups use only 2 disks.
example for two disk raid 1 array each size is 143 GB the total raid disk size =146
RAID 0+1 (RAID 01); It is also called as “mirror of stripes “, in most cases this will be implemented as minimum of 4 disks.
In order to understand this better, let’s assume you have total of 6 disks, create two groups with 3 disks in each group within the group, the data is striped as shown below.
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; 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”.
Note: in the above example, Group 1 has 3 disks and Group 2 has 3 disks.
RAID 1+0 (RAID 10); It is also called as “stripe of mirrors”, It requires minimum of 4 disks.
In order to understand this better, let’s assume you have total of 6 disks, create 3 groups (two disks in each group), disks in each group is mirrored.
The three groups are Group 1, Group 2, and Group 3 as shown below.
Within the group, the data is mirrored. In the above example, Disk 1 and Disk 2 belong 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 mirrored on Disk 2. Block B written on Disk 3 will be mirrored on Disk 4
Across the group, the data is striped, 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.
Main difference between RAID 10 and RAID 01
Performance on both RAID 10 and RAID 01 will be almost the same, the storage capacity on these will be the same.
The main difference is the fault tolerance level. On most implementations of RAID controllers,
A RAID 01 fault tolerance is less.
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 fail, both the groups will be down. So, the whole RAID 01 will fail.
A RAID 10 fault tolerance is more.
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.