upgradeしたらzfsonlinuxがロードできなくて詰んだ
本件は、進行中の案件であるため、解決情報を含んでいません。→10/09 解決
現象
起動すると、サービス開始時点で以下のメッセージを吐き、zfsを開始できなくなった。
[FAILED] Failed to start Import ZAL pools by device scanning. See 'systemctl status zfs-import-scan.service' Starting Mont ZFS filesystems....
起動後、コマンドを実行するとzfsがロードされていない旨のエラーが出るので、dmesgを確認すると...
[ 9.507863] SPL: Loaded module v0.6.5.8-2 [ 9.565076] zfs: disagrees about version of symbol __cv_init [ 9.565078] zfs: Unknown symbol __cv_init (err -22) [ 9.565091] zfs: disagrees about version of symbol vn_close [ 9.565092] zfs: Unknown symbol vn_close (err -22) [ 9.565153] zfs: disagrees about version of symbol cv_timedwait_hires [ 9.565153] zfs: Unknown symbol cv_timedwait_hires (err -22) [ 9.565165] zfs: disagrees about version of symbol vn_seek [ 9.565166] zfs: Unknown symbol vn_seek (err -22) [ 9.565181] zfs: disagrees about version of symbol __cv_destroy [ 9.565182] zfs: Unknown symbol __cv_destroy (err -22) [ 9.565193] zfs: disagrees about version of symbol __cv_timedwait_sig [ 9.565194] zfs: Unknown symbol __cv_timedwait_sig (err -22) [ 9.565233] zfs: disagrees about version of symbol rootdir [ 9.565234] zfs: Unknown symbol rootdir (err -22) [ 9.565243] zfs: disagrees about version of symbol kobj_close_file [ 9.565244] zfs: Unknown symbol kobj_close_file (err -22) [ 9.565258] zfs: disagrees about version of symbol kobj_read_file [ 9.565259] zfs: Unknown symbol kobj_read_file (err -22) [ 9.565287] zfs: disagrees about version of symbol __kstat_delete [ 9.565288] zfs: Unknown symbol __kstat_delete (err -22) [ 9.565314] zfs: disagrees about version of symbol vn_open [ 9.565315] zfs: Unknown symbol vn_open (err -22) [ 9.565316] zfs: disagrees about version of symbol kobj_open_file [ 9.565317] zfs: Unknown symbol kobj_open_file (err -22) [ 9.565325] zfs: disagrees about version of symbol vn_getf [ 9.565326] zfs: Unknown symbol vn_getf (err -22) [ 9.565327] zfs: disagrees about version of symbol kobj_get_filesize [ 9.565328] zfs: Unknown symbol kobj_get_filesize (err -22) [ 9.565338] zfs: disagrees about version of symbol vn_fsync [ 9.565339] zfs: Unknown symbol vn_fsync (err -22) [ 9.565343] zfs: disagrees about version of symbol __cv_wait [ 9.565343] zfs: Unknown symbol __cv_wait (err -22) [ 9.565348] zfs: disagrees about version of symbol vn_getattr [ 9.565349] zfs: Unknown symbol vn_getattr (err -22) [ 9.565391] zfs: disagrees about version of symbol __cv_wait_sig [ 9.565391] zfs: Unknown symbol __cv_wait_sig (err -22) [ 9.565408] zfs: disagrees about version of symbol __kstat_install [ 9.565408] zfs: Unknown symbol __kstat_install (err -22) [ 9.565428] zfs: disagrees about version of symbol __cv_signal [ 9.565429] zfs: Unknown symbol __cv_signal (err -22) [ 9.565432] zfs: disagrees about version of symbol vn_rdwr [ 9.565433] zfs: Unknown symbol vn_rdwr (err -22) [ 9.565442] zfs: disagrees about version of symbol __cv_wait_io [ 9.565443] zfs: Unknown symbol __cv_wait_io (err -22) [ 9.565493] zfs: disagrees about version of symbol __kstat_create [ 9.565494] zfs: Unknown symbol __kstat_create (err -22) [ 9.565495] zfs: disagrees about version of symbol __cv_broadcast [ 9.565495] zfs: Unknown symbol __cv_broadcast (err -22) [ 9.565512] zfs: disagrees about version of symbol vn_openat [ 9.565513] zfs: Unknown symbol vn_openat (err -22) [ 9.565527] zfs: disagrees about version of symbol __kstat_set_raw_ops [ 9.565528] zfs: Unknown symbol __kstat_set_raw_ops (err -22) [ 12.245591] EXT4-fs (dm-0): re-mounted. Opts: errors=remount-ro [ 12.389671] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: errors=remount-ro [ 12.478719] EXT4-fs (sdb1): mounting ext2 file system using the ext4 subsystem [ 12.485896] EXT4-fs (sdb1): mounted filesystem without journal. Opts: (null) [ 12.490565] systemd-journald[204]: Received request to flush runtime journal from PID
ドライバのロードに失敗する。
issuesなどを参照すると、zfsとsqlのバージョンがあっていない場合に発生するという記述があった。
現象(インストール時)
インストール時に以下のような現象が発生する。
$ sudo aptitude install debian-zfs Setting up zfs-dkms (0.6.5.7-8-jessie) ... Loading new zfs-0.6.5.7 DKMS files... First Installation: checking all kernels... Building only for 3.16.0-4-amd64 Building initial module for 3.16.0-4-amd64 configure: error: *** Please make sure the kmod spl devel package for your distribution *** is installed then try again. If that fails you can specify the *** location of the spl source with the '--with-spl=PATH' option. Error! Bad return status for module build on kernel: 3.16.0-4-amd64 (x86_64) Consult /var/lib/dkms/zfs/0.6.5.7/build/make.log for more information.
原因
splがインストール対象のzfsパッケージと一致しないことにより発生していた。
splのバージョンを確認する
$ aptitude versions spl-dkms Package spl-dkms: p 0.6.5.7-5-jessie <NULL> 500 i 0.6.5.8-2 unstable 500
対応方法
いったんすべてをキレイキレイする。
$ sudo aptitude purge debian-zfs spl-modules-* spl spl-dkms zfs-dkms zfsutils
ここで再起動することを推奨する。
splをバージョン指定で取得する。
$ sudo aptitude install spl-dkms=0.6.5.7-5-jessie The following NEW packages will be installed: spl{a} spl-dkms 0 packages upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 352 kB/371 kB of archives. After unpacking 2707 kB will be used. Do you want to continue? [Y/n/?] (snip) Setting up spl (0.6.5.8-2) ... Setting up spl-dkms (0.6.5.7-5-jessie) ... Loading new spl-0.6.5.7 DKMS files... First Installation: checking all kernels... Building only for 3.16.0-4-amd64 Building initial module for 3.16.0-4-amd64 Done. spl: (snip) Running the post_install script: depmod.... DKMS: install completed.
次に、zfs-dkmsをインストールする。
$ sudo aptitude install debian-zfs The following NEW packages will be installed: debian-zfs zfs-dkms zfsutils{a} 0 packages upgraded, 3 newly installed, 0 to remove and 1 not upgraded. Need to get 0 B/1461 kB of archives. After unpacking 9222 kB will be used. Do you want to continue? [Y/n/?] (snip) Setting up zfs-dkms (0.6.5.7-8-jessie) ... Loading new zfs-0.6.5.7 DKMS files... First Installation: checking all kernels... Building only for 3.16.0-4-amd64 Building initial module for 3.16.0-4-amd64 Done. zavl: (snip) depmod.... DKMS: install completed. Setting up zfsutils (0.6.5.7-8-jessie) ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults Processing triggers for initramfs-tools (0.120+deb8u2) ... update-initramfs: Generating /boot/initrd.img-3.16.0-4-amd64 Setting up debian-zfs (7~jessie) ... Processing triggers for systemd (215-17+deb8u5) ...
spl-dkmsパッケージがaptitude upgradeで更新されてしまうのを防ぐ。(zfsモジュールが上がった場合は注意する)
$ sudo aptitude hold spl-dkms zfs-dkms No packages will be installed, upgraded, or removed. 0 packages upgraded, 0 newly installed, 0 to remove and 1 not upgraded. Need to get 0 B of archives. After unpacking 0 B will be used.