配置具有大量存储的新 ZFS 服务器的最佳方法是什么?

Jon*_*ley 6 raid zfs opensolaris

假设以下驱动器设置(使用 ZFS):

控制器 1 Drive1 Drive4 Drive7 Drive10
控制器 2 Drive2 Drive5 Drive8 Drive11
控制器 3 Drive3 Drive6 Drive9 Drive12

VDEV 设置:

vdev1:drive1、drive2、drive3 vdev2:drive4、drive5、drive6 vdev3:drive7、drive8、drive9 vdev4:drive10、drive11、drive12

将所有 vdev 添加到同一个 zpool 中,还是使用单独的 zpool(每个 vdev 一个)更好(为了可靠性)?另外,如果我们丢失了一个 vdev,我们会丢失整个阵列吗?我们不需要将所有存储容量集中在一个地方——从存储的角度来看,可以找到较小的 zpool。

更新:对于 3dinfluence 关于引导池的问题,这将在 RAID1 集上。我不喜欢混合使用操作系统和我的多 TB RAID 阵列。

3di*_*nce 6

ZFS 的工作方式是在池内它有raid 集或组。要扩展容量,您必须在相同的 RAID 级别向池中添加其他组。然后在 zpool 中具有空闲块的所有组中剥离 IO。所以拥有大量小磁盘集的 zpool 速度快且可用性高。

因此,我建议您将所有驱动器作为 3 个磁盘 raidz 组或 6 个 2 驱动器镜像组放在一个池中。

突袭选项

  • ZFS 池
    • raidz 驱动器 1、驱动器 2、驱动器 3
    • raidz 驱动器 4、驱动器 5、驱动器 6
    • raidz Drive7, Drive8, Drive9
    • raidz Drive10, Drive11, Drive12

优点

  • 这将使您的设置能够在控制器故障时幸免于难。
  • 它还会将您的 IO 分布在池中的所有 4 个组中,这将进一步提高吞吐量。

镜像选项

  • ZFS 池
    • 镜像 Drive1, Drive2
    • 镜像 Drive3, Drive4
    • 镜像 Drive5, Drive6
    • 镜像 Drive7, Drive8,
    • 镜像 Drive9, Drive10
    • 镜像 Drive11, Drive12

优点

  • 这将使您的设置能够承受 1 个控制器故障。
  • 它还会将您的 IO 分布在池中的所有 6 个组中,这可能会更快。

缺点

  • 您将损失 50% 的驱动器原始容量。


knw*_*iss 5

我同意 3dinfluence 的建议。然而,恕我直言,更好的解决方案是使用 RAID-Z2(类似于 RAID6;即两个“奇偶校验”磁盘而不是只有一个)和两个这样的池:

  • raidz2 #1:1、4、2、5、3、6
  • raidz2 #2:7、10、8、11、9、12

现在,如果单个磁盘出现故障,您仍然剩下一个“奇偶校验”磁盘(与 RAID-Z 相比,如果您已经丢失了所有冗余信息)!如果您使用高容量硬盘,这可能是一个好主意,因为 ZFS 重新同步(填充替换磁盘,即在新磁盘上重新创建冗余信息)可能需要很长时间,并且在这段时间内您的数据处于危险之中 - 如果您使用使用 RAID-Z。(单个控制器故障不会关闭 RAID-Z2 池 - 但在这种情况下,冗余会丢失。)

另一个重要问题:您还应该考虑备用磁盘- 特别是如果您决定使用 RAID-Z,因为单个磁盘故障将使您的数据处于危险之中,直到您更换故障磁盘。(磁盘更喜欢在周五晚上发生故障,这意味着您可能整个周末都没有冗余!)

记住备用磁盘问题,您甚至可能想要使用此配置:

  • raidz2 #1:1、4、2、5、3
  • raidz2 #2:7,10,8,6,9
  • 备用磁盘:11,12

这种配置会更安全总容量损失很小