RAID 10(1 + 0)和RAID 01(0 + 1)之间有区别吗?

我已经看到这两个列表,都是条带化和镜像跨多个驱动器,但它们之间的差异,我不接近?

它与执行操作的顺序有关,只适用于6个或更大的磁盘(如果你有4个磁盘,它们几乎是相同的)。

RAID 1 + 0(10) :磁盘1 + 2,3 + 4,5 + 6镜像创build一个RAID-1arrays,并在arrays顶部创build一个RAID 0arrays。

RAID 0 + 1(01) :磁盘1 + 2 + 3被创buildRAID 0arrays,然后磁盘4 + 5 + 6创buildRAID 1冗余。

使用RAID 0 + 1时,arrays一侧(1,2,3或4,5,6)出现单个磁盘丢失会使arrays降级到基本上运行RAID 0的状态(这很糟糕 )。

使用RAID 1 + 0,您可以从每对(1,2或3,4或5,6)中丢失单个磁盘,arrays将保持正常运行。 此arrays可以脱机的唯一方法是使两个磁盘中的一个失败。

除非你的情况是例外,否则应该使用0 + 1。

Raid 0 + 1 vs Raid 1 + 0(失败概率)

这里有一点math应该显示失败率的差异。 为了简单起见,我们假设有一个偶数的磁盘。

在两个arraysconfiguration中,每个磁盘都被分解成块。 在Raid 0 + 1中,条带首先出现然后镜像。 在RAID 1 + 0中,镜像先发生然后剥离。

我们总是可以将Raid 0 + 1分成两组(G1和G2)。
请注意,我在math意义上使用“分区”。
对于n个磁盘,我们可以定义:
G1 = {D 1 ,D 2 ,…,D n / 2 }
G2 = {D n / 2 + 1 ,D n / 2 + 2 ,…,D n }

Raid 0+1 4 Disks: 6 Disks: Disk1 Disk2 Disk3 Disk4 Disk1 Disk2 Disk3 Disk4 Disk5 Disk6 ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- | a | | b | | a | | b | | a | | b | | c | | a | | b | | c | | c | | d | | c | | d | | d | | e | | f | | d | | e | | f | ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- G1 = {D1, D2} G1 = {D1, D2, D3} G2 = {D3, D4} G2 = {D4, D5, D6} 

对于Raid 1 + 0,我们总是可以将磁盘分成n / 2组。
请注意,我在math意义上使用“分区”。
对于n个磁盘,我们可以定义:
G1 = {D1,D2}
G2 = {D3,D4}

G n / 2 = {D n-1 ,D n }

 Raid 1+0 4 Disks: 6 Disks: Disk1 Disk2 Disk3 Disk4 Disk1 Disk2 Disk3 Disk4 Disk5 Disk6 ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- | a | | a | | b | | b | | a | | a | | b | | b | | c | | c | | c | | c | | d | | d | | d | | d | | e | | e | | f | | f | ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- G1 = {D1, D2} G1 = {D1, D2} G2 = {D3, D4} G2 = {D3, D4} G3 = {D5, D6} 

现在,就这样,让我们​​进入一些math!
如果在RAID 0 + 1configuration中发生故障,则每组中至less有1个硬盘必须死亡。
对于在RAID 1 + 0configuration中发生故障,任何单个组中的所有硬盘都必须死亡。

在Raidconfiguration中,至less有两个磁盘必须死亡。 让我们看看所有可能的方式,如果两个磁盘死亡,两个RAIDconfiguration都可能失败。

 Number of Disks (n) = 4 2 Disks Die : Raid Failure D1D2 : R10 D1D3 : R01 D1D4 : R01 D2D3 : R01 D2D4 : R01 D3D4 : R10 

有4个磁盘,共有C(n,2)= C(4,2)= 6个组合。

4/6这些组合会导致RAID 0 + 1configuration失败。 (66%的失败几率)
我们可以这样说:

 P1 = P (Raid 0+1 Failure | 2 Disks die) = 2/3 

2/6的这些组合会导致Raid 1 + 0configuration失败。 (33%的失败几率)
我们可以这样说:

 P2 = P (Raid 1+0 Failure | 2 Disks die) = 1/3 

我们可以用n = 6做同样的testing,但我会省略表格。

 P1 = 9/15 = 3/5 P2 = 3/15 = 1/5 P3 = P (No failures | 2 Disks die) = 4/15 P1P2 = 1/15 

有6个磁盘,有c(n,2)= c(6,2)= 15个可能的组合。
Raid 0 + 1configuration失败的几率有60%。
Raid 1 + 0configuration失败的概率有20%。

现在这些结果可以概括为n个磁盘。

 P1 = c(n/2, 1) * c(n/2, 1) / c(n, 2) = (n/2 * n/2) / (n * (n - 1) / 2) = (n/2 * n/2) * (2 / (n * (n - 1)) = (n * n / 4) * (2 / (n * (n - 1)) = (n / 2) * (1 / (n - 1)) = n / (2 * (n - 1)) 

 P2 = (n/2) / c(n, 2) = (n/2) / (n * (n - 1) / 2) = (n/2) * (2 / (n * (n - 1))) = 1 / (n - 1) 

现在是math中最有用和最有趣的部分。 我们可以取上面两个方程的极限。 下面,我用“inf”表示无穷大。

 Lim n->inf P1 = Lim n->inf n / (2 * (n - 1)) // We can use L'Hopital's rule = Lim n->inf 1 / 2 = 1 / 2 

换句话说,如果2个磁盘死于Raid 0 + 1configuration,那么总是会有至less50%的失败几率!

现在让我们看看Raid 1 + 0configuration如何展示。

 Lim n->inf P2 = Lim n->inf 1 / (n - 1) = 0 

换句话说,我们添加到RAID 1 + 0configuration的磁盘越多,我们得到的失败概率就越接近0%!

一张决赛桌(请注意,我正在将整数值舍入)

 ------------------- | n | P1 | P2 | ------------------- | 4 | 66% | 33% | | 6 | 60% | 20% | | 8 | 57% | 14% | | 10 | 55% | 11% | | 12 | 54% | 9% | | 16 | 53% | 7% | | 20 | 52% | 5% | | 24 | 52% | 4% | | 32 | 51% | 3% | | 64 | 50% | 1% | | 128 | 50% | 0% | ------------------- 

结论:使用Raid 1 + 0。

这属于ServerFault,但这里是对维基百科差异的简要概述

RAID 10

RAID 1 + 0(或10)是镜像数据集(RAID 1),然后分条(RAID 0),即“1 + 0”名称。 RAID 1 + 0arrays至less需要四个驱动器 – 两个镜像驱动器来保存一半条带化数据,另外两个镜像驱动器用于另一半数据。 在Linux中,MD RAID 10是一种非嵌套的RAIDtypes,如RAID 1,只需要至less两个驱动器,并且可以在RAID 0级别上提供读取性能。

RAID 01

RAID 0 + 1(或01)是一个条纹数据集(RAID 0),然后镜像(RAID 1)。 RAID 0 + 1arrays至less需要四个驱动器:两个用于容纳条带化数据,另外两个用于镜像第一对驱动器。