使用嵌套 RAID 6+1+0 是个好主意吗?

使用嵌套 RAID 6+1+0 是个好主意吗?

目前我有 24 个 500 GB 的磁盘,我想使用 Dell Power Edge R730 服务器创建一个更大的嵌套 RAID,其中有 4 个 RAID 6,每个 6 个 500GB,我想在它们之上添加 RAID 1,并在顶部添加 RAID 0。

我的问题是:这安全吗?创建这么大的数组值得吗?

我知道我会拥有惊人的速度,但是维护和故障转移会花费我很多钱。

参见建议图片(图中有 48 个磁盘)。图片

答案1

我认为这超出了 RAID 概念的界限,你会遇到麻烦,PERC 控制器是否允许你将虚拟磁盘添加到另一个阵列?每个阵列都没有自己的写入和缓存策略,控制器上的缓存大小是多少 - 无论如何,如果你追求的是性能,那么你看过 Ceph 吗? - 它经过认证可以在 R730 上运行,但你需要一个 SSD 日志磁盘 - 所有写入都发生在 SSD 上,稍后会移动到阵列,它不需要 raid 来实现冗余,并提供对象、块和文件存储以及擦除编码

答案2

仅考虑堆栈每层所涉及的概念而不是具体的实现,对于某些应用程序来说,对这三种 RAID 模式进行分层是有意义的。

但是,所描绘图表中的布局存在严重缺陷。您错误地排列了层。为了获得最佳性能和可靠性,您必须交换 RAID-1 和 RAID-6 层的顺序。

通常,RAID-6 的配置允许丢失两个磁盘。因此,一旦丢失三个磁盘,RAID-6 就会发生故障。这意味着,在最坏的情况下,48 个磁盘中丢失三个磁盘会导致 RAID-6 的一个组件发生故障。

您的数据会在该事件中幸存下来,但您必须从 9 个好磁盘和 3 个新磁盘创建一个新的 RAID-6。完成此操作后,您必须同步新创建的 RAID-6,并将 RAID-1 层从另一个 RAID-6 复制到当前正在同步的 RAID-6。这是一个非常 I/O 密集型的操作。

因此,丢失 3 个磁盘的情况既需要管理员注意恢复,又会导致 I/O 负荷过重。

相反,您可以先使用 RAID-1 将 24 个磁盘分成 12 对,然后将这 12 个 RAID-1 组合成 RAID-6。

这样,单个磁盘的丢失总是可以在 RAID-1 层恢复,这比在 RAID-6 层恢复要高效得多。即使丢失了 5 个磁盘,也可以保证 RAID-6 层能够幸存。

在两种情况下,即使丢失 5 个磁盘,您的数据仍然能够保留下来,但是恢复速度会有所不同。

在这两种情况下,您的数据都可能由于 6 个磁盘的丢失而丢失,但是在您所描绘的场景中,风险比交换层时的风险要高得多。

实现细节

您使用的层数越多,遇到特定实现无法处理的情况的风险就越大。需要记住的一个问题是热备件是否可以在结构的各个分支之间共享。另一个问题是,当其中一个子 RAID 丢失时,如何自动恢复。例如,如果您在最低层的一个 RAID-1 中丢失了两个磁盘,它能否自动从两个热备件创建新的 RAID-1 并将其用作下一层备件?

答案3

我认为您所设想的架构过于复杂,我无法想到任何理由。本质上,您浪费了 48 个磁盘阵列中的 28 个磁盘来实现冗余。发明 RAID6 的原因是许多人认为 RAID1/RAID10 太浪费,但您甚至更进一步在 RAID6 之上应用 RAID10。

如果您确实需要所有这些冗余,我建议您在这里完全使用 RAID10,或者使用 RAID6 + RAID0(又名 RAID60)。

另外,请记住,RAID6 阵列的合理大小是 8-20 个磁盘,其中最常见的是 12-16 个磁盘,超出这个数字在技术上是可行的,但由于恢复时间非常长而不切实际。

相关内容