ZFS 和硬件的结合获得 Raid 51

Bur*_*ome 2 zfs high-availability software-raid hardware-raid

我正在研究一个非常大的文件服务器(70+TB,只提供 NFS 和 CIFS)的 RAID 解决方案。我知道在硬件 raid 之上使用 ZFS raid 通常是禁忌的,但是我发现自己处于不寻常的情况。

我个人的偏好是设置大型RAID-51虚拟磁盘。即两个镜像 RAID5,每个 RAID5 有 9 个数据 + 1 个热备件(因此我们不会损失太多存储空间)。这通过将数据镜像到两个不同的驱动器机箱上来缓解我的管理偏执,同时允许在危机发生之前在每个镜像集中出现 1 个磁盘故障。

然而,这个问题源于这样一个事实,即我们有现有的硬件 RAID 控制器(LSI Megaraid 集成磁盘机箱 + 服务器),仅许可用于 RAID5 和 6。我们还有一个现有的 ZFS 文件系统,这是预期的(但尚未配置)使用 RFS-1 提供 HA。

从我在文档中看到的,ZFS 不提供 RAID-51 解决方案。

建议使用硬件raid 在每个机箱上创建两个大小相同的RAID5 虚拟磁盘。然后,这两个 RAID5 虚拟磁盘将作为 /dev/sdx 提供给它们各自的服务器。

然后使用 ZFS + RFS-1 将这两个虚拟磁盘镜像为 HA 镜像集(见图)

这是一个好主意,一个坏主意,还是一个丑陋(但可用)的配置。

有更好的解决方案吗?

在此处输入图片说明

eww*_*ite 5

有趣的问题...

我对RSF-1的使用感到惊讶。您是否看过我的Linux 高可用性 ZFS指南?

可以设计您在上面描述的内容,但是它可能过于复杂。

另外,这些都不是问题:

在高可用中使用 ZFS 绝对是一个正常的要求。在硬件 RAID 上
使用ZFS没问题。

您的设计问题在于您在解决方案中注入了更多的复杂性、性能损失和更多的故障点。

CIFS 和 NFS 工作负载可以从 ZFS 缓存中受益,因此也必须考虑到拓扑。

如果您受困于硬件并且无法规划具有多路径 SAS 磁盘的共享机箱解决方案,则最好创建两个容错域并构建无共享解决方案或重新评估需求并确定可接受的损失。例如,您要防止哪些故障模式和情况?

如果我有你上面描述的设备,我会将两个存储服务器构建为单独的节点;将一个指定为主,另一个指定为次,并使用一种从主要到次要的连续ZFS 异步复制形式。即使在繁忙的系统上,也可以以 15 秒的间隔安全地执行此操作。

如果您想同时使用两个服务器,您可以在每个服务器上提供不同的数据集并以两种方式复制。如果您需要在每个节点上处理硬件 RAID,那很好。您仍然可以利用 ZFS RAM 缓存、卷管理、压缩以及可能的 L2ARC 和 SLOG 设备。

设计更简单,性能将最大化,这为使用更快的缓存驱动器提供了机会,并消除了对 SAS 数据池磁盘的需求。如果需要,您还可以在节点之间添加地理分隔或引入第三个节点。