我有一个 3TB WD HDD,我使用 zfs 使用 proxmox 创建一个池。
在发生电源故障之前,我正在将数据复制到驱动器。现在我根本无法在新服务器上重新安装或导入驱动器。
它显示在存储部分,但我无法zpool import -f MV-Storage-3TB
在没有收到错误的情况下使用
$zpool import -f MV-Storage-3TB
cannot import 'MV-Storage-3TB': one or more devices is currently unavailable
/dev/sdb 和 /dev/sdc 位于池中,而 /dev/sde 是单个 zfs 驱动器
$zpool import & zpool import -f
$zfs list
现在,如果您注意到驱动器 /dev/sdb 具有一种“硬盘”类型以及下面的类型,那么它们是一个单独的工作 zpool 驱动器。如果您注意到红色块中驱动器 /dev/sde 的类型为“未知”。
我尝试过的是:
- zpool import MV-Storage-3TB(错误:主机 ID 不匹配)
- zpool import -f MV-Storage-3TB(错误:一台或多台设备当前不可用)
现在使用此命令不会返回任何内容
zpool import -nfF MV-Storage-3TB
我已经使用 smartctl 进行了扫描(已完成,没有错误),但在完成后我仍无法安装/导入驱动器。
该驱动器的问题是我需要其中的数据,而我要做的第一件事就是创建其所有内容的备份。
有人有类似的问题可以帮助我吗?请
答案1
解决方案非常简单。
这是您确定是否可以再次访问该驱动器的方法。
zdb -e YourPoolName
对我来说,运行需要 10 个小时,因为我的驱动器容量为 3 TB。
完成后,最后的输出将如下所示:
ZFS_DBGMSG(zdb) START:
spa.c:6110:spa_import(): spa_import: importing MV-Storage-3TB
spa_misc.c:418:spa_load_note(): spa_load(MV-Storage-3TB, config trusted): LOADING
vdev.c:160:vdev_dbgmsg(): disk vdev '/dev/disk/by-id/ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ2611164-part1': best uberblock found for spa MV-Storage-3TB. txg 2756441
spa_misc.c:418:spa_load_note(): spa_load(MV-Storage-3TB, config untrusted): using uberblock with txg=2756441
spa.c:8392:spa_async_request(): spa=MV-Storage-3TB async request task=2048
spa_misc.c:418:spa_load_note(): spa_load(MV-Storage-3TB, config trusted): LOADED
spa.c:8392:spa_async_request(): spa=MV-Storage-3TB async request task=32
spa.c:8392:spa_async_request(): spa=MV-Storage-3TB async request task=4
spa.c:8392:spa_async_request(): spa=MV-Storage-3TB async request task=4
ZFS_DBGMSG(zdb) END
现在,如果您注意到我们有一个可行的 uberblock 可以使用 txg 2756441
现在我们可以执行以下操作:
zpool import -f -T 2756441 readonly=on -F MV-Storage-3TB
对于 3 TB 驱动器来说,这可能还需要 10 个小时。
一旦运行,驱动器就安装好了,我可以从驱动器中读取数据。现在的问题是,如果您重新启动,它不会重新安装。要正常重新安装/导入它,您所要做的就是:
zpool import -f -T 2756441 -F MV-Storage-3TB
让它运行然后重新启动。重新启动后,您就可以像平常一样简单地导入池。
zpool import -f MV-Storage-3TB