我有两个 1GB 驱动器配置为 ZFS 镜像,现在可以添加第三个 1GB 驱动器。我可以将镜像重新配置为 3 个驱动器 raidz,总容量为 (N-1)=2GB 吗?
我在 Debian Jessie 上运行 zfs-fuse
答案1
简短的回答是不行,您无法转换它。您需要备份、销毁镜像、创建 raidz 并从备份中恢复文件系统。
ZFS 支持在不破坏原始数据的情况下将驱动器添加到池中,但您不能更改池中现有驱动器的配置(镜像、raidz 等)。
在你的情况下,你可以(虽然我不推荐)将第三个驱动器添加到现有池中,并且额外的空间将可供池中的所有 ZFS 文件系统使用但整个池中不会有冗余。
您可以添加两个驱动器作为另一个镜像到同一个池,然后您将拥有整个池中具有镜像冗余的额外空间。
我过去曾运行过 raidz(家庭使用,非生产),但现在我更喜欢镜像,因为它们简单且性能好(特别是在 Scrubs 上),尽管可用容量较低。
答案2
我正要这样做,发现一个旧博客表明可以做到这一点。
注意:此过程会使 RAID 在迁移过程中处于降级状态。这会大大增加数据丢失的可能性!
这个想法是:
- 通过移除其中一个现有磁盘来破坏现有镜像
- 创建稀疏文件并将其挂载为环回设备
- 使用新磁盘、刚刚移除的磁盘和稀疏文件创建新的 Raid-Z1
- 通过移除稀疏文件设备立即降级 RAID
- 将所有数据从降级镜像复制到降级的 raid-z1
- 销毁镜像并将磁盘添加到 raid-z1 中并让其重新镀银。
诚然,我将在 SmartOS 而不是 Linux 上执行此操作,但我认为 Linux ZFS 足够先进,可以做到这一点。
有关该方法的更多信息,请访问https://web.archive.org/web/20151017154015/https://blogs.oracle.com/zhangfan/entry/how_to_turn_a_mirror