答案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 个磁盘,超出这个数字在技术上是可行的,但由于恢复时间非常长而不切实际。