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

Die*_*ego 3 raid

以下内容来自:Intro to Nested Raid

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

我不知道是否有错误,我真的找不到任何其他提及MD-RAID10 n2 f2 布局的巨大(在我看来)好处的地方 - 能够松散任何两个(从 4 个磁盘中)阵列)驱动器从阵列中取出,而不是标准 RAID10,在标准 RAID10 中,您只能丢失某些磁盘对。绝对适用于任何 MD RAID10 n2 f2 布局吗?另外,4 磁盘 md raid 10 n2 f2 布局的容量是多少?文章有误,有些评论不同意。

谢谢!

sys*_*138 6

他们是正确的,这样的安排将允许任意两个故障幸存。

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

“F=2”设置确保后两个复制块不与 N=2 个复制块共享磁盘,只要阵列大小达到或超过 N+F 个驱动器

至于容量数学,文章有错误(见下文)。让我们看几个例子:

一个 4 驱动器 2x2 阵列

  • 阵列中共有 4 个驱动器
  • 有 2 个“近”的复制品
  • 有 2 个“远”副本
  • 因此,“条带宽度”为 4 个块。

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

一个 5 驱动器 2x2 阵列

  • 阵列中共有 5 个驱动器
  • 有 2 个“近”的复制品
  • 有 2 个“远”副本
  • 因此,“条带宽度”为 4 个块。

与 4 个驱动器阵列一样,每个块被复制四次。但是,额外的驱动器提供了另一个完整驱动器的块来扩展。容量是两个驱动器的大小。


换个角度说:

鉴于:

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

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

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

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

“任何两个都可以失败”条件仅在 N ? R. 事实上,当 R=4 时,任何三个都可能失败。同样,只有当 N ? R。

我必须指出文章本身的一个数学错误。报价:


这种特殊的四驱动器“近”和“远”RAID 配置的容量如下。

Capacity = (n/2) * capacity of single disk
Run Code Online (Sandbox Code Playgroud)

这是不正确的。该2公式中的 应该是复制块的数量。这在 2x2 设置中是 4。图中清楚地展示了这一点,其中“A1”块出现了四次。对于 3-drive 示例,作者是正确的,因为这些公式显示除以 3。

[示例适用于三个磁盘上的两个副本 RAID]

Capacity = 2/3 * capacity of single disk 
Run Code Online (Sandbox Code Playgroud)

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

最后,可以有一个同时包含“near”和“far”副本的数组。如果一个阵列配置有 2 个近副本和 2 个远副本,那么每个块将总共有 4 个副本,每个副本位于不同的驱动器上。这是实现的产物,不太可能具有实际价值。

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

作者认为近/远 RAID 设置将提供超出正常 R10 的额外保护的论点很弱。保护不是来自近/远设置,而是来自超过 2 个数据复制。

数据被复制 R 次的 RAID 配置最多可以容忍 R-1 次磁盘故障。只要额外的故障设备在已经故障的复制集中,就可以容忍更多故障。这就是 RAID0 设备的镜像对 (R=2) 可以容忍单个驱动器故障的原因。如果 R 等于驱动器的数量 (N),您可以让除一个之外的所有驱动器发生故障并仍能维持服务。