24.8 更新 OpenZFS
最后更新于
在实现多版本 FreeBSD 共存时,一个重要的考虑因素是 ZFS 池版本的兼容性问题。通常,在 FreeBSD 大版本之间,ZFS 池版本和特性都会发生变化,例如大版本更新时 zpool 通常有所变动,这可能导致无法互相访问存储池。
可通过 Ports 中的 OpenZFS 实现 13、14、15 等多个系统版本的共存。
首先查看当前系统内置的 ZFS 版本信息,以便确认待替换的版本。
显示当前 ZFS 工具和内核模块的版本信息:
# zfs version
zfs-2.2.7-FreeBSD_ge269af1b3
zfs-kmod-2.2.7-FreeBSD_ge269af1b3目前 FreeBSD 基本系统内置的是 OpenZFS 2.2.7(即来自 https://github.com/openzfs/zfs/commit/e269af1b3)。
Ports 中的 OpenZFS 提供了比基本系统更灵活的版本选择。可以使用 pkg 或 Ports 两种方式来安装它。
使用 pkg 安装
# pkg install openzfs使用 Ports 安装:
# cd /usr/ports/filesystems/openzfs/
# make install clean安装完成后,需要配置系统启动时加载哪个 ZFS 模块。默认情况下,系统会加载基本系统内置的 ZFS 模块,需要修改这个行为。
为了防止系统加载基本系统内置的 ZFS 版本,需要在 zfs_load=YES 前加上注释 #,取消其开机自动加载。
形如:
再新增下列数行:
完成后重启系统。
配置完成并重启后,需要验证系统是否正确加载了 Ports 版本的 OpenZFS。
在重启后,检查 ZFS 版本:
随后即可更新其他存储池或启用新的特性。
警告
考虑到基本系统中的 OpenZFS 版本不一定是最新的,建议所有版本均使用 Ports 中的 OpenZFS 以保持版本统一,包括 15.0-RELEASE 也应按照相同方法替换 ZFS。
最后更新于
# zfs_load=YES # 不加载内置 ZFS 内核模块zfs_load=NO # 显式禁用内置 ZFS 内核模块加载
openzfs_load=YES # 启用 OpenZFS 模块加载# zfs version
zfs-2.2.7-FreeBSD_ge269af1b3
zfs-kmod-2.3.5-1