zfs在一个池中混合RAID级别

我读过“ 不build议将RAIDtypes混合在一个池中 ”,这意味着这是可能的。 为什么不推荐?

在我的设置中,非常重要,重要和不重要的文件混合在一个池中为不同的文件系统dynamic分配不同的RAID-Z级别是非常可取的。

第二个问题是:如果磁盘开始失败会发生什么? 我明白,我不能够访问不足够的文件系统。 但是如果被搜查到的(具有足够的冗余来处理故障)嵌套在失败的文件系统中呢? 他们可以通过? 怎么样?

我打算使用ZOL,版本号0.6.0.80,它与zpool版本28和zfs版本5兼容。

关于将重要文件存储在更安全的文件系统上的观点显示了关于ZFS如何在池中存储数据的错误概念。

如果您拥有多个vdev,则所有文件系统的数据将在所有vdevs中进行分条,但不能将文件系统分配给特定的vdev,因此整个池将被使用。

这意味着整个游泳池只能像最弱的vdev一样安全。 如果您有一个由5个radiz3 vdev组成的池和一个单独的vdev磁盘,则该单个磁盘的故障将导致整个池停机。

如果你想要多层次的安全,你最好创build独立的池。

只因为你可以不意味着你应该

你将如何dynamic地将这些数据分配给所需的RAID组?

避免池中RAIDtypes的原因是一致的访问时间/速度和可靠性。

您的顶级设备vdevs最终会被分条。 ZFS性能与条带数量成比例。 虽然你可以有一个RAIDZ1的vdev和一个RAIDZ2的vdev,如果合并在一个池中,他们将被分散在一起(例如,在他们的RAID0)。 您无法控制数据的写入位置或方式

如果您有足够的磁盘有不同的vdevs和RAIDtypes,请将它们分成多个池。

有一个function允许您设置文件的副本数量,以便它们可以存储在文件系统的不同部分。 也许这更接近你所需要的。

看看这个资源来帮助你规划你的ZFS实现。

解释的build议…

  • 不要在单个vdev中混合使用磁盘大小或速度
  • 根本不要在zpool中混合使用磁盘大小或速度
  • 不要在zpool中混合冗余types – 如果你做镜像vdevs然后做所有的镜像vdevs,如果你做raidz2然后做所有raidz2
  • 不要在zpool中的vdevs之间混合磁盘计数