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

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

我已经看到列出的这两种情况,它们都是在多个驱动器上进行条带化和镜像的,但是它们之间是否存在我没​​有注意到的区别?

答案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 阵列至少需要四个驱动器:两个用于保存条带化数据,另外两个用于镜像第一对。

相关内容