在 ZFS raidz 中使用奇特的设置来最大化容量(当使用不同大小的磁盘时)

Gre*_*reg 3 zfs mirror raidz zfsonlinux

我有 2 个 4TB 磁盘和 3 个 6TB 磁盘,我想将它们与 ZFS 一起使用。我的目标是最大化可用存储空间,同时允许单个磁盘发生故障。

理想情况下,将使用 raidz 设置,但根据我的研究,不同大小的驱动器会导致较大的驱动器利用率不足。也就是说,6TB 中仅 4TB 用于较大的驱动器。

是否可以对以下内容进行条带化(raid 0):

  • 镜像 (raid 1) 配置中的两个 4TB
  • raidz (raid 5) 配置中的三个 6TB 磁盘

或者,是否可以对两个 4TB 进行条带化,然后将条带用于带有 6TB 驱动器的 raidz 配置中?那是:

  • 对两个 4TB 驱动器进行条带化
  • Raidz 3 x 6TB 和条带化 4TB 磁盘

Bre*_*ith 5

出于对世界上一切美好事物的热爱,请不要在您的数据比这更重要的情况下使用此设置/dev/null- 这只是一个关于您可以不应该这样做的学术练习。

使用此拓扑您可能会丢失数据。由于合并的顺序操作会变成随机 IO,因此它的性能也会很差。

您要做的如下:

每个驱动器将被划分为 2TB 段,4TB 驱动器将有两个分区,6TB 驱动器将被划分为三个分区。是的,ZFS 确实接受分区作为 ZPool 的一部分 - 尽管不推荐,但它可以工作。

从那里,您将在所有 13 个分区上设置 RAIDZ3 三重奇偶校验。这将为您提供单磁盘弹性,因为您可能会丢失 3 个“磁盘”(也称为 1 个 6TB 磁盘),但仍然可以继续运行而不会出现问题。

通过此设置,您将拥有 20TB ZPool。从技术上讲,这与在物理磁盘故障中幸存的能力一样高效。正如我之前所说,仅仅因为数学有效,就不要这样做

请记住,当您更换磁盘时,您必须创建与故障磁盘相同的分区表,因此请确保分区命令的安全并使用相同扇区大小的磁盘。