具有 ashift=12 的整个磁盘的 ZFS 与对齐分区的 ZFS 相比如何?

具有 ashift=12 的整个磁盘的 ZFS 与对齐分区的 ZFS 相比如何?

即将创建由 14 个 HDD 磁盘组成的 zpool,我看到了选项:

  • 可以简单做zpool create -f -o ashift=12 DATA raidz2 disk1 disk2 ...

或者

  • 可以使用例如parted在每个驱动器上创建一个最佳对齐的分区,然后执行zpool create -f -o ashift=12 DATA raidz2 disk1-part1 disk2-part2 ...

在两种情况下,数据都得到了最佳对齐,但哪种方法更(可以这么说)符合 ZFS 的要求?

答案1

不管怎样,这都不重要,但有些事情需要注意:

  • 使用整个磁盘:

    • 消除(或减少)对齐问题的可能性
    • 您删除了偏移量计算来访问分区(这无疑是可以忽略不计的)
    • 我看到有人建议“更好,就是这样“或者争论更好的磁盘缓存使用和其他事情,但几乎没有证据支持它......
    • 某些系统(例如:Windows)可能不知道如何处理磁盘并将其显示为“未初始化“,这可能会导致混乱或数据丢失
  • 带分区:

    • 你可能更容易遇到对齐问题
    • 您可以在磁盘上包含其他数据,例如:/boot或小型 FAT 文件系统来识别磁盘(如果它是外部/抓取磁盘)
    • 您可以稍微减小分区大小(例如:在磁盘末尾保留约 100 MB 未分配空间),以适应“结核病“磁盘实际上将呈现为,这意味着替换磁盘“大小相同“可能更符合”等于或大于“ 要求

据我所知,使用分区唯一真正的好处是,减轻对替换磁盘的担忧。只是太小了“供使用,并允许在磁盘上保存其他少量数据(即:/boot或标识)。

我尝试过这两种方法,在使用中确实没有明显的区别(尽管诚然没有进行广泛的 A/B 测试)。


请记住(至少在 Linux 上),“全磁盘“安装程序实际上会为你创建一个 GPT 分区表,在磁盘末尾有一个~8MiB 的分区,其中包含“Solaris 保留“类型(以解决上面提到的尺寸变化)。它还会将字段设置whole_disktrue(参见zdb -l ${pool})。

阅读更多:OpenZFS - 整个磁盘与分区


还需要考虑的一点是,14 个磁盘的 vdev 相当大 - 您可能希望将其分成两个或更多个 vdev。这在很大程度上取决于磁盘的大小、冗余级别和相关的重建时间...计划不要希望那样的事就不会发生。


truncate -s 1G a b c d e f g h i
zpool create TEST raidz2 ${PWD}/a ${PWD}/b ${PWD}/c ${PWD}/d raidz2 ${PWD}/e ${PWD}/f ${PWD}/g ${PWD}/h
zpool add TEST log ${PWD}/i
zpool status TEST
  pool: TEST
 state: ONLINE
  scan: none requested
config:

        NAME                       STATE     READ WRITE CKSUM
        TEST                       ONLINE       0     0     0
          raidz2-0                 ONLINE       0     0     0
            /home/attie/box/tmp/a  ONLINE       0     0     0
            /home/attie/box/tmp/b  ONLINE       0     0     0
            /home/attie/box/tmp/c  ONLINE       0     0     0
            /home/attie/box/tmp/d  ONLINE       0     0     0
          raidz2-1                 ONLINE       0     0     0
            /home/attie/box/tmp/e  ONLINE       0     0     0
            /home/attie/box/tmp/f  ONLINE       0     0     0
            /home/attie/box/tmp/g  ONLINE       0     0     0
            /home/attie/box/tmp/h  ONLINE       0     0     0
        logs
          /home/attie/box/tmp/i    ONLINE       0     0     0

errors: No known data errors
zpool destroy TEST
rm a b c d e f g h i

相关内容