如何从已解除并重新连接的驱动器阵列导入 ZFS 池?

如何从已解除并重新连接的驱动器阵列导入 ZFS 池?

这与从崩溃的系统导入池不同,因为系统并未崩溃。操作系统正常(在不同的池/驱动器组/sata 总线上)。

我想在重新启动之前复制一些关键文件(并且不会清理它,因为在客户服务不足的远程数据中心附近没有智能手)。

在这种情况下,USB 盒消失了然后重新连接(电源故障/故障),但 zfs 认为池仍然安装,但所有到它的 IO 都楔入 - sdd 和 sde 现在已成为 sdf 和 sdg。

该池由 /dev/disk/by-id 安装,但当然这些 ID 是相同的(并且在 /dev 中现在指向 sd[fg])并且旧池尚未导出。

每个 zpool 命令都会楔入,因为我认为它触及 /dev/sdd 和 sde,然后挂起整个 shell(现在是屏幕窗口中的第 10 个 bash shell...)。

但是阵列可以正常工作 -dd if=/dev/sdf1 of=/dev/null工作正常,iostat 显示该驱动器上的 IO(sdg 也是如此)。因此驱动器无需卡住即可读取。

但是任何 zpool 命令,甚至zpool import -Nd /dev/sdf1 poolname newpoolname触及 sd[de] 世界中的某个地方并楔入。

我可以运行什么 zpool import 命令以便它绝对不会尝试接触任何其他驱动器?zpool import -d /dev/sdf1 -N newname(或'oldname newname')只是楔子。

最后的手段可能是将整个驱动器作为原始映像添加到另一个系统,然后在那里与 zpool 混淆(通过循环设备),但发送 4TB 将需要很长时间。

相关内容