具有n2 f2布局的md RAID10的容量和容错

以下是来自: 嵌套Raid的介绍

Linux md允许您将“近”和“远”RAIDconfiguration组合在一起。 例如,在具有四个驱动器(允许的最小值)的am = 2和f = 2configuration中,数据布局看起来如下(略)。 请注意,每个数据块有四个副本! 另外请注意,我们可以丢失两个驱动器,而不会丢失对数据的访问 但是,与正常的RAID-10相反,我们可能会丢失任何两个驱动器,并仍然保留对所有数据的访问权限。 这比RAID-10要好得多,我们可以丢失任何一个驱动器,但只有两个驱动器的特定组合。 这种特殊的四驱“近”和“远”RAIDconfiguration的容量如下。 | 容量=(n / 2)*单盘容量| 所以我们没有获得任何相对于RAID-10的额外容量,但是我们确实获得了丢失任何驱动器的能力(在我的书中是一个强大的优势)。

我不知道是否有一个错误,我真的不能find任何其他提及MD-RAID10 n2 f2布局的巨大 (在我看来)的好处 – 松动任何两个(从4磁盘arrays)驱动arrays,而不是标准的RAID10,在这个RAID10中,你只能松动某些磁盘对。 对于绝对的MD RAID10 n2 f2布局来说这是真的吗? 另外,4盘MDDRID 10N2F2布局的容量是多less? 文章是错误的,一些意见不同意。

谢谢!

他们是正确的,这样的安排可以让任何两个失败生存。

“N = 2”设置确保了前两个复制块位于不同磁盘的等同扇区上。

“F = 2”设置可确保只要arrays满足或超过N + F个驱动器,复制块中的后两个就不共享具有N = 2个复制块的磁盘。

至于容量math, 文章有误 (见下文)。 我们来看几个例子:

4驱动器2×2arrays

  • arrays中总共有4个驱动器
  • 有2'附近'复制品
  • 有2'远'副本
  • 因此“条纹宽度”是4个块。

每个块因此被复制四次。 容量是单个驱动器的大小。

一个5驱动器2x2arrays

  • arrays中总共有5个驱动器
  • 有2'附近'复制品
  • 有2'远'副本
  • 因此“条纹宽度”是4个块。

与4驱动器arrays一样,每个块被复制四次。 然而,额外的驱动器提供了另一个全盘驱动器块扩展到。 容量是两个驱动器的大小。


换一种说法:

鉴于:

  • N =驱动器数量
  • R =每个条纹的复制块数
  • S =驱动器的大小

容量= S *(N-(R-1))

4驱动arrays:
N = 4
R = 4
容量= S(4-(4-1))= S *(4-3)= S * 1

5驱动arrays:
N = 5
R = 4
容量= S *(5-(4-1))= S *(5-3)= S * 2

只有当N≥R时,才会出现“任意两个都可能失败”的情况。事实上,在R = 4的情况下, 任何三个都可能失败。 同样,只有当N≥R时

我必须在文章中指出一个math错误 。 去引用:


这种特殊的四驱“近”和“远”RAIDconfiguration的容量如下。

Capacity = (n/2) * capacity of single disk 

这是不正确的。 该公式中的2应该是复制块的数量。 在2×2设置中是4个。这在图中清楚地示出,其中“A1”块显示四次。 作者为3驱动的例子正确,因为那些公式显示除以3。

[示例是三个磁盘上的两个副本RAID]

 Capacity = 2/3 * capacity of single disk 

这是进一步支持md的手册页:

最后,可能有一个“近”和“远”拷贝的数组。 如果一个arraysconfiguration了2个近端副本和2个远端副本,那么总共会有4个副本,每个副本在不同的驱动器上。 这是实施的人为因素,不太可能具有实际价值。

所以一个2×2的RAID设置将有四个副本。 因此,一个2×2 RAID的四驱动实现将具有单个驱动器的容量。

作者的论点是,远近RAID设置将提供超出正常R10的额外保护。 保护不是来自近/远的设置,保护来自于数据的2次以上的复制。

RAIDconfiguration数据复制的位置R时间最多可容忍R-1磁盘故障。 只要额外的失败设备在已经失效的复制集中,就可以容忍更多的故障。 这就是为什么RAID0设备的镜像对(R = 2)可以容忍单个驱动器故障的原因。 如果R等于驱动器的数量(N),您可以拥有所有驱动器但只有一个失败并仍然保持服务。