我尝试使用各种命令导入我的池,但总是失败。这是在干净重启之后。我确实将一些磁盘热添加到服务器,然后使用它们创建池,这是自创建池以来的第一次重启,不确定是否存在关系。不幸的是,池中的一些数据没有备份,需要尽可能恢复。
如果我指定设备名称,如
sudo zpool import -d /dev/disk/by-id/ neo
sudo zpool import neo
我明白了
cannot import 'neo': one or more devices are already in use
如果我只是运行 sudo zpool import,我会得到
pool: neo
id: 5358137548497119707
state: UNAVAIL
status: One or more devices contains corrupted data.
action: The pool cannot be imported due to damaged devices or data.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
config:
neo UNAVAIL insufficient replicas
raidz3-0 UNAVAIL insufficient replicas
ata-HGST_HMS5C4040ALE640_PL1331LAHGWAJH-part1 ONLINE
ata-Hitachi_HDS5C4040ALE630_PL2331LAGD00RJ-part1 UNAVAIL
ata-ST4000DM000-1F2168_Z301VKAC-part1 UNAVAIL
ata-HGST_HMS5C4040ALE640_PL1331LAHGSVDH-part1 ONLINE
ata-Hitachi_HDS5C4040ALE630_PL1331LAGD81AH-part1 UNAVAIL
ata-WDC_WD40EFRX-68WT0N0_WD-WCC4EPFK6PYP-part1 UNAVAIL
ata-WDC_WD40EFRX-68WT0N0_WD-WCC4EK2CU8SV-part1 UNAVAIL
ata-Hitachi_HDS5C4040ALE630_PL2331LAGD08UJ-part1 UNAVAIL
ata-HGST_HMS5C4040ALE640_PL1331LAHD0BNH-part1 ONLINE
ata-HGST_HMS5C4040ALE640_PL1331LAHGXGSH-part1 ONLINE
ata-HGST_HMS5C4040ALE640_PL1331LAHGXG6H-part1 ONLINE
ata-HGST_HMS5C4040ALE640_PL1331LAHGW0DH-part1 ONLINE
但是,所有这些设备都存在(例如,我执行了 ls -l 并且所有不可用的设备都有符号链接),并且我刚刚使用 smartctl 检查的几个不可用的设备都报告正常)。
考虑到我在干净重启(sudo shutdown -r now)期间处于这种状态,我真的希望有办法恢复数据。任何帮助都将不胜感激。
谢谢你,埃里克
答案1
我应该更加注意“一个或多个设备已在使用中”的错误信息。事实证明,这些驱动器中有许多以前是 mdadm 阵列的一部分(非常感谢马特·西克),因此内核在 ZFS 尝试导入之前就从 ZFS 窃取了这些驱动器。我想我将逐个从阵列中删除这些驱动器,将 mdadm 超级块清零,然后重新导入。
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md3 : inactive sde1[1](S) sdb1[6](S) sdh1[0](S) sdg1[2](S) sdf1[5](S)
19534432357 blocks super 1.2
md127 : inactive sdc1[6](S)
2930134471 blocks super 1.2