使用更大的磁盘来增长 zpool raidz2?

使用更大的磁盘来增长 zpool raidz2?

我有带有 RaidZ2 的 Linux PC,超过 6 个磁盘,每个磁盘 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 在比以前更大的分区中扩展。

谢谢

答案1

将 3T 驱动器克隆到 4T 驱动器后,不要添加新分区,只需调整现有 ZFS 分区的大小。

没有什么可以阻止您按计划添加分区,但如果您这样做,性能将非常糟糕,因为 zfs 会浪费大量时间将磁盘头从驱动器中间(现有sd[a-f]6分区)来回移动到末尾驱动器(新sd[a-f]18分区)。您将拥有一个实际上是两个 raidz6 vdev 的 raid-0 池,而不仅仅是一个 raidz6 vdev。

如果 ZFS 分区之后的磁盘上还有其他分区,请将它们移动到驱动器的末尾,为 ZFS 分区腾出空间,然后扩展 zfs 分区。重新启动到 Live CD 或 USB 等gparted(例如救援 CD/USB 等)gparted)对此有好处。

或者,将 ZFS 分区移动到其他分区之后,然后将其他分区移动到 ZFS 原来所在的位置,然后再次移动 ZFS 分区,最后调整 ZFS 分区的大小。这是一项更多的工作,需要花一些时间很多更多时间(所有停机时间!),并且可能会重命名/重新编号所有移动的分区,因此您需要更新相关的配置。唯一真正的好处是,如果您获得更大的驱动器,将来再次扩展 zfs 分区会更容易。

重新启动后,您可以对每个分区使用zpool offline pool partition后跟zpool online -e pool partition以扩展池以使用所有可用空间。

重要的:履行两个都一次对一个分区执行命令。做不是同时使多个分区脱机。例如

for p in sd[abcdef]6; do
  zpool offline pool "$p"
  zpool online -e pool "$p"
done

man zpool-online

-e 扩展设备以使用所有可用空间。如果设备是镜像或 raidz 的一部分,则必须先扩展所有设备,然后新空间才能可供池使用。

事实上,引用的文字并不完整。它应该说类似“如果设备是镜像或 raidz 的一部分虚拟设备然后是所有设备在那个vdev在新空间可供泳池使用之前必须进行扩展。”

即,如果您有一个包含多个 vdev 的池(例如多个镜像 vdev 和/或多个 raidz vdev),则可以/将单独扩展 vdev。

相关内容