我有超过 6 个磁盘的带有 RaidZ2 的 Linux PC,每个磁盘 3T。磁盘在多个分区之间共享;zpool 仅位于每个磁盘的第 6 部分;其他分区用于其他目的。
我打算买6x4T。
我的计划是:
- 引导不支持 ZFS 的 live CD
- 将每个 3T 磁盘复制到 4T 磁盘上
- 在每个 4T 磁盘上创建一个新的分区 n° 18
- 重新启动我的正常系统
- 在所有分区上扩展我的 zpool 18
它会起作用吗?用一组 6 个分区 sda18...sdf18 扩展池的命令是什么?
如果不可能,我有一个我不喜欢的备用方法:使分区 18 尽可能大(可能是 1T),将 sd[abcdef]6 转储到 sd[abcdef]18,擦除 sd[abcdef]6,然后,要求 zpool 在比以前更大的分区中扩展。
谢谢
将 3T 驱动器克隆为 4T 驱动器后,不要添加新分区,只需调整现有 ZFS 分区的大小即可。
sd[a-f]6
没有什么可以阻止您按计划添加分区,但如果您这样做,性能将非常糟糕,因为 zfs 会浪费大量时间将磁盘头从驱动器中间(现有分区)来回移动到末尾驱动器(新sd[a-f]18
分区)。您将拥有一个实际上是两个 raidz6 vdev 的 raid-0 的池,而不仅仅是一个 raidz6 vdev。如果 ZFS 分区之后的磁盘上还有其他分区,则将它们移动到驱动器的末尾,为 ZFS 分区腾出空间,然后扩展 zfs 分区。
gparted
使用(例如gparted之类的救援 CD/USB)重新启动到 Live CD 或 USB 等会对此有好处。或者,将 ZFS 分区移动到其他分区之后,然后将其他分区移动到 ZFS 以前所在的位置,然后再次移动 ZFS 分区,最后调整 ZFS 分区的大小。这是更多的工作,将花费更多的时间(所有停机时间!),并且可能会重命名/重新编号所有移动的分区,因此您需要更新相关的配置。唯一真正的好处是,如果您获得更大的驱动器,将来再次扩展 zfs 分区会更容易。
重新启动后,您可以使用
zpool offline pool partition
后跟zpool online -e pool partition
为每个分区扩展池以使用所有可用空间。重要提示:一次在一个分区上执行这两个命令。不要同时脱机多个分区。例如
来自
man zpool-online
:实际上,引用的文字并不完整。它应该说类似“如果设备是镜像或 raidz vdev的一部分,则必须扩展该 vdev 中的所有设备,然后新空间才可用于池。”
即,如果您有一个包含多个 vdev 的池(例如,多个镜像 vdev 和/或多个 raidz vdev),那么 vdev 可以/将单独扩展。