ZFS on Linuxのバージョンアップが失敗したので試行錯誤した手順メモ。
ZoL公式のupgrade手順やってもうまくいかなかった。
ちなみに環境はCentOS7.3
RHEL/CentOS 7.3 kmod package upgrade
Systemd Update
以上の手順を踏んだ後に
# dkms status
Error! Could not locate dkms.conf file.
File: does not exist.
とか
# dkms status
spl, 0.7.1, 3.10.0-514.26.2.el7.x86_64, x86_64: installed
zfs, 0.7.1, 3.10.0-514.26.2.el7.x86_64, x86_64: installed (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!)
みたいな結果になって、うまくZFSのモジュールが読み込めない。zpoolがマウントできない。
どうもupgradeの手順だけだと、dkms関連のファイルが残るっぽい。
以下の手順でいけた。古いカーネルの削除はお好みで。
# yum remove zfs zfs-kmod spl spl-kmod libzfs2 libnvpair1 libuutil1 libzpool2 zfs-release kernel-devel
# rpm -qa | grep kernel
# yum remove {アクティブでないカーネル}
# rm -rf /usr/module/{アクティブでないカーネル}
# rm -rf /var/lib/dkms
これで根こそぎ削除されるはず。
次にインストール
# yum install https://download.zfsonlinux.org/epel/zfs-release.el7_3.noarch.rpm
# yum install kernel-devel zfs
# modprobe zfs
# zpool import -a
# zpool status
modprobe zfsで以下のようにうまくいかない場合は、こうする。
# zpool import -a
The ZFS modules are not loaded.
Try running '/sbin/modprobe zfs' as root to load them.
# modprobe zfs
modprobe: ERROR: could not insert 'zfs': Unknown symbol in module, or unknown parameter (see dmesg)
# dkms remove -m zfs -v 0.7.1 --all
# dkms remove -m spl -v 0.7.1 --all
# dkms --force install -m spl -v 0.7.1
# dkms --force install -m zfs -v 0.7.1
# dkms status
spl, 0.7.1, 3.10.0-514.26.2.el7.x86_64, x86_64: installed
zfs, 0.7.1, 3.10.0-514.26.2.el7.x86_64, x86_64: installed
あとはプールのupgradeをしておしまい。
# zpool upgrade neo
# zpool upgrade morpheus
# zpool upgrade trinity
# zpool upgrade architect