Linux 上的 ZFS:将分区切换到整个磁盘

Linux 上的 ZFS:将分区切换到整个磁盘

有一个包含 raidz1 的 ZFS 池。该池是在三个 2TB 驱动器上使用整个磁盘和 3TB 驱动器上的 2TB 分区创建的。

重新配置池以使用整个 3TB 磁盘而不是分区的推荐流程是什么?

我阅读了很多 zfs 手册(man zpool),但我不确定应该使用哪些命令:附加/分离或在线/离线,以及是否应该导出池。

因为数组几乎充满了数据,所以我不喜欢盲目地玩弄它。

另外,我多次运行了 zpool scrub,并且没有任何错误地完成。

答案1

我设法解决了这个问题。其实这并不难。步骤如下:

  1. 彻底清洁泳池zpool scrub POOL
  2. 使用以下命令使磁盘分区脱机zpool offline POOL PARTITIN
  3. 使用 检查状态zpool status POOL,它应该处于降级但正常工作的状态。
  4. 这是最棘手的部分。您必须让 zpool 忘记该分区曾经位于该池中。我只是使用 dd 在磁盘开头覆盖了几个 Mb,如下所示:dd if=/dev/urandom of=DISK bs=1M count=10
  5. 最后一步是使用替换命令,如下所示:zpool replace POOL OLD-PARTITION NEW-WHOLE-DISK
  6. 当然,上一步将启动重新镀银。完成之后,我又进行了一次清理,以确保万无一失 :)

答案2

只需运行 zpool replace POOL OLD-PARTITION NEW-WHOLE-DISK。无需通过移除(逻辑上或物理上)设备来危及阵列。

现在甚至连 Microsoft Storage Spaces 也放弃了故意危害数据的想法,使阵列陷入降级状态。

相关内容