ZFS升级后出现zpool导入失败的问题

449 阅读1分钟

写在前面

我最终没有解决这个问题,因为我的pool已经存储了太多数据,不敢妄动。

环境

OMV版本:6.1.1-1 (shaitan)

原zfs版本:2.1.99-1266_gd51f4ea5f

新zfs版本:2.1.7

报错

原来的pool有两个feature,不被zfs-2.1.7所支持,因此无法导入。

图片.png

解决方案

  1. 降级回原先的版本

具体方法可以参照这篇:juejin.cn/post/711186…

  1. 查看feature
# pool-16T是我的pool名称
zpool get all pool-16T | grep feature

图片.png

可以看到原先的pool确实启用了这两个feature。

  1. 禁用不支持的feature
zpool set feature@zilsaxattr=disabled pool-16T
zpool set feature@head_errlog=disabled pool-16T

图片.png

未成功,报错提示这两个feature只有在创建pool的时候可以禁用。

结论

由于我先前使用的zfs-2.1.99-1266_gd51f4ea5f是直接拉取的当时Github最新Commit编译安装的,因此我猜测这两个feature是开发人员用于测试的。我尝试了使用现在最新的Commit,zpool导入没有问题。

这之后有两种选择:一种是继续使用Github最新Commit来升级ZFS,而不要使用正式发行版:2.1.7、2.1.6之类的。另一种是以只读方式导入pool,将数据备份出来后用正式发行版的zpool来重新创建pool。

# 只读方式导入(pool-16T是我的pool名称)
zpool import -o readonly=on pool-16T