delete from hateblo.jp where 1=1;

タイトルに意味はありません。

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などを参照すると、zfssqlバージョンがあっていない場合に発生するという記述があった。

現象(インストール時)

インストール時に以下のような現象が発生する。

$ 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 

なぜかunstableがインストールされ、zfs-0.6.5.7とバージョンが合わない。

対応方法

いったんすべてをキレイキレイする。

$ 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.