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

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

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

控制器 1 驱动器 1 驱动器 4 驱动器 7 驱动器 10
控制器 2 驱动器 2 驱动器 5 驱动器 8 驱动器 11
控制器 3 驱动器 3 驱动器 6 驱动器 9 驱动器 12

VDEV 设置:

vdev1:驱动器 1、驱动器 2、驱动器 3 vdev2:驱动器 4、驱动器 5、驱动器 6 vdev3:驱动器 7、驱动器 8、驱动器 9 vdev4:驱动器 10、驱动器 11、驱动器 12

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

更新:对于 3dinfluence 关于启动池的问题,它将位于 RAID1 集上。我不喜欢将操作系统和我的多 TB RAID 阵列混在一起。

答案1

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

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

Raidz 选项

  • ZFS 池
    • raidz 驱动器 1、驱动器 2、驱动器 3
    • raidz 驱动器 4、驱动器 5、驱动器 6
    • raidz 驱动器 7、驱动器 8、驱动器 9
    • raidz 驱动器 10、驱动器 11、驱动器 12

优点

  • 这将使您的设置能够承受控制器故障。
  • 它还会将您的 IO 分散到池中的所有 4 个组,从而进一步提高吞吐量。

镜像选项

  • ZFS 池
    • 镜像驱动器 1、驱动器 2
    • 镜像驱动器3、驱动器4
    • 镜像驱动器5、驱动器6
    • 镜像驱动器 7、驱动器 8、
    • 镜像 Drive9、Drive10
    • 镜像驱动器 11、驱动器 12

优点

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

缺点

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

答案2

我同意 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,因为单个磁盘故障将使你的数据处于危险之中,直到你更换故障磁盘(磁盘很容易在周五晚上出现故障,这意味着您可能整个周末都没有冗余!)

考虑到备用磁盘问题,您甚至可能想要使用以下配置:

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

此配置将是更安全与相当总容量损失较小

相关内容