ZFS 池失灵

ZFS 池失灵

我正在从经典的 mdadm raid 切换到 zfs 池,并且遇到了一些失误,正在尝试恢复。

最初我在 raid 1 镜像中有两个 4tb 驱动器。

然后,我将两个新的 4TB 驱动器放入机器中并断开原始驱动器的连接。我创建了一个包含镜像中的新驱动器的 zpool,但我使用了/dev/sda,和 ,/dev/sdb因为这是我使用的指南告诉我要做的,我没有多想。

因此,当我重新连接旧驱动器以复制数据时,它们被占用,/dev/sdb/dev/sdc使得我的两个 zfs 驱动器中的一个驱动器被占用/dev/sdd,这当然会弄乱 zfs 池,并显示其中一个驱动器为UNAVAIL

在与网上的某人合作后,我设法让 zfs 池进入 UUID 模式,zpool export pool然后zpool import -d /dev/disk/by-uuid pool

然后,我就可以拆下UNAVAIL驱动器,然后将其清除干净,并将其作为第一个驱动器的镜像添加回 zfs /dev/disk/by-id。几天后,它成功重新镀银。

现在,我有一个 zpool,其中一个设备的标识符为长整数,另一个设备的标识符为ata-WDC_WD...。我想让它们都在同一页面上,所以我打算分离第一个具有整数标识符的磁盘,然后使用它的 重新添加它/dev/disk/by-id。但是,尝试分离时出现错误:cannot detach 13419994393693470939: only applicable to mirror and replacing vdevs

好的,所以我尝试用不同的驱动器替换它,但出现此错误:cannot open '13419994393693470939': name must begin with a letter

当池子运行时,我希望一切都保持一致的状态。我可以使用旧的两个驱动器创建一个新池并将数据复制回来,然后销毁旧池并将这些驱动器添加到新池(这需要我重命名池,这会导致服务中断),但我希望有办法解决这个问题,我只是还没有找到。

答案1

只需重新运行第一次重新识别磁盘的过程:

  1. zpool export pool
  2. zpool import -d /dev/disk/by-id pool

这会将驱动器统一为该格式。如果您希望采用该格式,则by-id可以使用。by-uuid

您收到的两个错误是:

  • cannot detach:此分离被拒绝,因为 ZFS 认为没有其他有效的数据副本。您确定正确配置了镜像中的池吗?CLI 也可能误解了错误并向您提供了无意义的错误消息;也许您实际上只是意外地使用错误的驱动器名称运行了命令(请参阅下面的下一点)。
  • cannot open:我无法从您提供的信息中完全判断,但我怀疑您需要提供该设备的完整路径,而不仅仅是其 UUID。

相关内容