我已经看到列出的这两种情况,它们都是在多个驱动器上进行条带化和镜像的,但是它们之间是否存在我没有注意到的区别?
答案1
它与执行操作的顺序有关,并且仅适用于 6 个或更大的磁盘阵列(如果您有 4 个磁盘,它们几乎相同)。
RAID 1+0 (10):磁盘 1 + 2、3 + 4、5 + 6 被镜像以创建 RAID-1 阵列,并且在阵列上创建 RAID 0 阵列。
RAID 0+1(01):磁盘 1 + 2 + 3 被条带化以创建 RAID 0 阵列,然后磁盘 4 + 5 + 6 被条带化以创建 RAID 1 冗余。
对于 RAID 0+1,阵列一侧(1、2、3 或 4、5、6)的单个磁盘丢失将使阵列降级到基本运行 RAID 0 的状态(即坏的)。
使用 RAID 1+0,您可以丢失每对(1、2 或 3、4 或 5、6)中的一个磁盘,而阵列仍可正常运行。使该阵列脱机的唯一方法是让一对中的两个磁盘都发生故障。
除非你的情况特殊,你应该绝不使用0+1。
答案2
Raid 0+1 与 Raid 1+0(失败概率)
这里有一些数学知识,可以显示故障率的差异。为简单起见,我们假设磁盘数量为偶数。
在这两种阵列配置中,每个磁盘都被分成多个块。在 Raid 0+1 中,先进行条带化,然后进行镜像。在 Raid 1+0 中,先进行镜像,然后进行条带化。
我们总是可以将 Raid 0+1 分成两组(G1 和 G2)。
请注意,我使用“分区”一词是数学意义上的。
对于 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 组。
请注意,我是从数学意义上使用“分区”的。
对于 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}
现在,说完了这些,让我们来算一算吧!
如果在 Raid 0+1 配置中发生故障,则每组中至少有 1 个硬盘必须损坏。
如果在 Raid 1+0 配置中发生故障,则任何单个组中的所有硬盘都必须损坏。
在任何 RAID 配置中,至少有两个磁盘必须损坏。让我们看看如果两个磁盘损坏,两种 RAID 配置都可能出现故障的所有可能方式。
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+1 配置失败。(失败概率为 66%)我们
可以说:
P1 = P (Raid 0+1 Failure | 2 Disks die) = 2/3
这些组合中的2/6会导致 Raid 1+0 配置失败。(失败概率为 33%)我们
可以说:
P2 = P (Raid 1+0 Failure | 2 Disks die) = 1/3
我们可以用 n = 6 做同样的测试,但我将省略表格。
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+1 配置失败的概率为 60%。Raid
1+0 配置失败的概率为 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)
现在到了数学中最有用、最有趣的部分。我们可以取上面两个方程的极限。下面,我使用“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
换句话说,如果 Raid 0+1 配置中 2 个磁盘损坏,则发生故障的可能性至少为 50%!
现在让我们看看 Raid 1+0 配置如何。
Lim n->inf P2 = Lim n->inf 1 / (n - 1) = 0
换句话说,我们向 raid 1+0 配置中添加的磁盘越多,理论上发生故障的概率就越接近 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。
答案3
这属于 ServerFault,但这里是对 Wikipedia 中差异的简要概述
RAID 10
RAID 1+0(或 10)是镜像数据集(RAID 1),然后进行条带化(RAID 0),因此得名“1+0”。RAID 1+0 阵列至少需要四个驱动器 - 两个镜像驱动器用于保存一半条带化数据,另外两个镜像驱动器用于保存另一半数据。在 Linux 中,MD RAID 10 是一种非嵌套 RAID 类型,类似于 RAID 1,仅需要至少两个驱动器,并且可以提供与 RAID 0 级别相当的读取性能。
RAID 01
RAID 0+1(或 01)是条带化数据集(RAID 0),然后镜像(RAID 1)。RAID 0+1 阵列至少需要四个驱动器:两个用于保存条带化数据,另外两个用于镜像第一对。