当我添加第三个驱动器时,ZFS是否会自动切换到容错?

如果我从一个2驱动器剥离ZFS POOL开始,它会自动成为RAID-5容错池,当我添加第三个驱动器?

我似乎无法find任何我在网上find的有关添加第三个驱动器到条带集并更改为RAIDZ1的ZFS CheatSheets。

有没有人有这种情况下的实际经验?

不,它不会自动执行任何操作。 您不能dynamic地在RAID保护types之间进行转换。

RAIDZ1与ZFS中的条带化开发者不同。 我希望在types之间切换,您可能需要重build或备份/恢复到您所需的结构。

一些背景信息:

在ZFS中,您可以使用vdevs(虚拟设备)构build存储池。 一个池可以拥有任意数量的vdev,每个vdev本身可以包含一个或多个磁盘。 冗余在vdev级别进行pipe理,因此您的池将始终在所有由其组成的vdevs上进行分条(连接)。 这意味着如果你失去了一个单独的vdev,你将失去你的池。

为防止出现这种情况,通常不使用单个磁盘作为vdevs,而是使用冗余集:镜像磁盘(2,3或更多个完全镜像/相同的磁盘)或基于奇偶校验的磁盘集(具有一个奇偶校验磁盘的RAIDZ1等于RAID5,2个奇偶校验磁盘等于RAID6的RAIDZ2,或3个奇偶校验磁盘的RAIDZ3)。

一些规则适用:

  • 您不能转换或修改奇偶校验vdevs,除非通过用更大的磁盘replace所有磁盘来增加磁盘大小(不是磁盘数量!)。
  • 您可以使用zpool attach和zpool detach来将磁盘添加到镜像vdevs和基本单个磁盘(当然除了最后一个磁盘除外)。
  • 您可以将新的vdevs添加到任何池,但旧数据不会自动重新平衡(只有新写入的数据使用所有vdevs)。 您不能从池中删除任何vdev。
  • 您可以在池中混合使用不同的vdevtypes,但不build议这样做,因为您的安全和性能等于池中最弱/最慢的vdev。

ZFS与奇偶校验RAID并不那么灵活,因此您应该考虑您的数据和增长并相应计划:

  • 如果您希望尽可能灵活,请使用镜像,因为连接/分离。 镜子也具有良好的性能和快速的重build时间。 简单的解决scheme往往是最好的。
  • 如果你想要最大的存储空间,你必须使用RAIDZ n :或者用更小的磁盘填充所有的机箱插槽,并将它们更新到更大的磁盘,或者现在购买最大的磁盘,并使用一些插槽,例如RAIDZ2 6或8个磁盘,稍后添加另一个相同大小的RAIDZ2集。

有关RAIDtypes和一般池布局之间的select的更深入的信息,我build议阅读这篇博文以及ZFS最佳实践指南 。