Linux 版本的 ZFS pool 版本已经升级到 5000

两天前,发现 Gentoo portage 里面的 ZFS 模块已经升级到了 0.6.0-rc14,zpool 版本更是直接飙到了 5000。原本以为只是常规的漏洞修补和稳定性提升,没想到居然还引入了以下新特性:

async_destroy(异步销毁FS):”Destroy filesystems asynchronously.”

empty_bpobj(快照更省空间):”Snapshots use less space.”

都标了”只读兼容”: (read-only compatible)

于是打算做一次 zpool upgrade -a 以便及时用上最新版本的 zpool。在升级之前,看到了一句警告,说是一旦进行了升级,老版本的 ZFS 工具将无法对新版的 zpool 进行导入,但是可以指定创建旧版本 zpool。没想太多,直接升级了。

关机重启,grub 直接进了 rescue,提示 unknown filesystem。本以为只要用 LiveDVD 重新安装下 grub 就行了,结果由于 LiveDVD 的 ZFS 模块还是老的,根本无法 import 我的 zpool,而且我也想到了可能是 grub 无法识别新版本的 zpool。

欲哭无泪啊,立马给 Linux 的 ZFS 开发组发 issue 报告,等回复。开发组的反应速度比预期的要快,尽管是在周末,补丁仅仅经过 7 小时就发布出来了。用了搭载新版 ZFS 模块的 System Rescue CD,然后 import zpool,升级并重新安装 grub 引导代码,搞定。

看来以后再遇到类似问题,必须小心处理才行了,不能这么轻易升级 zpool 版本。同时也该赞赏开发人员的反馈速度和活跃度,让我对这个项目更有信心了。当然,新版的 zpool 就无法在 FreeBSD、Linux 和 OpenIdiana 之间互通了,得等另外两家的跟进才行。ZFS 目前可算是跨平台的文件系统了,希望开源版本的 ZFS 一直活跃开发吧。