创建具有大量镜像 vdev 的 zpool 是否有意义?

创建具有大量镜像 vdev 的 zpool 是否有意义?

先说一句,我对 ZFS 还不太熟悉。我的目标是创建一个内部 NAS 系统,尽量减少丢失所有数据的可能性。

我目前已经购买了四个 4TB 磁盘,并且计划在具有两个镜像 vdev 的单个 zpool 中运行它们,如下所示:

  pool: data
 state: ONLINE
  scan: none requested
config:

    NAME                STATE     READ WRITE CKSUM
    data                ONLINE       0     0     0
      mirror-0          ONLINE       0     0     0
        <disk 0>        ONLINE       0     0     0
        <disk 1>        ONLINE       0     0     0
      mirror-1          ONLINE       0     0     0
        <disk 2>        ONLINE       0     0     0
        <disk 3>        ONLINE       0     0     0

mirror-2稍后当使用更多磁盘扩展 zpool 时,继续添加(mirror-3每个磁盘有两对磁盘)是否有意义?

答案1

对于 zfs 来说,使用多个镜像 vdev 根本不是问题。它们提供的性能比 raidz vdev 更高,并且恢复速度更快。全镜像池更容易扩展,而且使用最新的 zfs 版本,甚至可以缩小(即:支持 vdev 移除)。

raidz 具有更好的空间效率,并且在其 raidz2 和 raidz3 版本中具有更好的弹性。raidz 池可以一次扩展至少 3 个磁盘 - 从而产生新的 raidz1 vdev。但是,这样的配置并不理想:对于大硬盘,您应该始终使用 raidz2。这意味着扩展 raidz2 vdev 需要4磁盘,与镜像相比,空间效率并不更好(即 50%),但弹性稍好一些(任何两个磁盘可以发生故障而不会丢失数据)。

综合考虑,当需要良好的随机 IO 性能时,我总是使用镜像。我只在更关心空间效率时才使用 raidz2,并且只使用合理宽度的条带(6 个以上磁盘)。

由于您计划仅使用 4 个磁盘并稍后进行扩展,因此我建议您使用普通镜像。

答案2

视情况而定。您展示的实际上是 raid 10。所以是的 - 您可以继续使用更多镜像 vdev 来扩展它。不过您确实应该考虑使用 raidz,因为 raid10 只是浪费磁盘。

相关内容