如果我从一个 2 个驱动器剥离的 ZFS POOL 开始,那么当我添加第三个驱动器时,它是否会自动变为像 RAID-5 这样的容错 POOLS?
我似乎无法在网上找到的 ZFS CheatSheets 中找到有关将第三个驱动器添加到条带集并更改为 RAIDZ1 的任何信息。
有谁有经历过这种情况的实际经验吗?
答案1
不,它不会自动执行任何操作。您无法动态地在 RAID 保护类型之间进行转换。
RAIDZ1 与 ZFS 中的条带化开发集不同。如果您希望在类型之间进行切换,则可能需要重建或备份/恢复到所需的结构。
答案2
一些背景信息:
在 ZFS 中,您可以使用 vdev(虚拟设备)构建存储池。单个池可以包含任意数量的 vdev,每个 vdev 本身可以由一个或多个磁盘组成。冗余在 vdev 级别进行管理,因此您的池将始终在其包含的所有 vdev 上进行条带化(连接)。这意味着如果您丢失池中的一个 vdev,您将失去池。
为了防止这种情况,通常不会使用单个磁盘作为 vdev,而是使用冗余集:镜像磁盘(2、3 个或更多完全镜像/相同的磁盘)或基于奇偶校验的磁盘集(具有一个奇偶校验磁盘的 RAIDZ1 等于 RAID5,具有 2 个奇偶校验磁盘的 RAIDZ2 等于 RAID6,或具有 3 个奇偶校验磁盘的 RAIDZ3)。
适用一些规则:
- 您无法转换或修改奇偶校验 vdev,只能通过将所有磁盘替换为更大的磁盘来增加磁盘大小(而不是磁盘数量!)。
- 你可以添加和删除磁盘
zpool attach
使用和 zpool detach来与镜像 vdevs 和基本单个磁盘(当然除了最后一个磁盘)进行连接。 - 您可以将新的 vdev 添加到任何池中,但不会自动重新平衡旧数据(只有新写入的数据才会使用所有 vdev)。您无法从池中删除任何 vdev。
- 您可以在池中混合搭配不同类型的 vdev,但不建议这样做,因为您的安全性和性能等同于池中最弱/最慢的 vdev。
ZFS 在奇偶校验 RAID 方面不够灵活,因此您应该考虑您的数据和增长并进行相应的计划:
- 如果您希望尽可能灵活,请使用镜像,因为它具有附加/分离功能。镜像还具有良好的性能和快速的重建时间。简单的解决方案通常是最好的解决方案。
- 如果你想要最大的存储空间,你必须使用 RAIDZn:要么在所有机箱插槽中安装较小的磁盘,以后再将它们更新为更大的磁盘,要么现在购买最大的磁盘并使用插槽的子集,例如具有 6 个或 8 个磁盘的 RAIDZ2,以后再添加另一组相同大小的 RAIDZ2。
有关 RAID 类型和常规池布局的选择的更多详细信息,我建议阅读此博客文章还有ZFS 最佳实践指南。