2019年10月10日木曜日

CentOS8 で ZFS on Linux 0.8.2 をビルドする

RHEL8/CentOS8 で、ZFS on Linux 0.8.2 をビルドしてインストールする手順。備忘録。

現時点では、公式ページからビルド済みパッケージが提供されていないので、ソースから dkms 版をビルドします。
まず最初に、いつの間にか、EL8 向けの EPEL が出来ていたので、そちらから dkms パッケージをインストールしておきます。それから、次の手順 (bash history から抜粋) 。
[root@hoge zfs-0.8.2]# history
...
 3059   2019-10-10 06:39:21  cd zfs-0.8.2/
 3060   2019-10-10 06:39:28  ./autogen.sh 
 3061   2019-10-10 06:40:03  ./configure --with-config=srpm
 3062   2019-10-10 06:40:26  make -s -j$(nproc)
 3063   2019-10-10 06:41:15  make -j1 pkg-utils rpm-dkms
 3064   2019-10-10 06:44:39  rpm -Uvh $(ls -1 *.$(uname -p).rpm *.noarch.rpm | grep -v debug)
次は、インストールログです。
[root@hoge zfs-0.8.2]# rpm -Uvh $(ls -1 *.$(uname -p).rpm *.noarch.rpm | grep -v debug)
Verifying...                          ################################# [100%]
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:libnvpair1-0.8.2-1.el8           ################################# [  5%]
   2:libuutil1-0.8.2-1.el8            ################################# [ 10%]
   3:libzfs2-0.8.2-1.el8              ################################# [ 15%]
   4:libzpool2-0.8.2-1.el8            ################################# [ 20%]
   5:zfs-dkms-0.8.2-1.el8             ################################# [ 25%]
Loading new zfs-0.8.2 DKMS files...
Building for 4.18.0-80.el8.x86_64
Building initial module for 4.18.0-80.el8.x86_64
Done.

zavl.ko.xz:
Running module version sanity check.
 - Original module
   - This kernel never originally had a module by this name
 - Installation
   - Installing to /lib/modules/4.18.0-80.el8.x86_64/extra/

znvpair.ko.xz:
Running module version sanity check.
 - Original module
   - This kernel never originally had a module by this name
 - Installation
   - Installing to /lib/modules/4.18.0-80.el8.x86_64/extra/

zunicode.ko.xz:
Running module version sanity check.
 - Original module
   - This kernel never originally had a module by this name
 - Installation
   - Installing to /lib/modules/4.18.0-80.el8.x86_64/extra/

zcommon.ko.xz:
Running module version sanity check.
 - Original module
   - This kernel never originally had a module by this name
 - Installation
   - Installing to /lib/modules/4.18.0-80.el8.x86_64/extra/

zfs.ko.xz:
Running module version sanity check.
 - Original module
   - This kernel never originally had a module by this name
 - Installation
   - Installing to /lib/modules/4.18.0-80.el8.x86_64/extra/

icp.ko.xz:
Running module version sanity check.
 - Original module
   - This kernel never originally had a module by this name
 - Installation
   - Installing to /lib/modules/4.18.0-80.el8.x86_64/extra/

zlua.ko.xz:
Running module version sanity check.
 - Original module
   - This kernel never originally had a module by this name
 - Installation
   - Installing to /lib/modules/4.18.0-80.el8.x86_64/extra/

spl.ko.xz:
Running module version sanity check.
 - Original module
   - This kernel never originally had a module by this name
 - Installation
   - Installing to /lib/modules/4.18.0-80.el8.x86_64/extra/
Adding any weak-modules

depmod.....

DKMS: install completed.
   6:zfs-0.8.2-1.el8                  ################################# [ 30%]
   7:zfs-dracut-0.8.2-1.el8           ################################# [ 35%]
   8:zfs-test-0.8.2-1.el8             ################################# [ 40%]
   9:libzfs2-devel-0.8.2-1.el8        ################################# [ 45%]
  10:python3-pyzfs-0.8.2-1.el8        ################################# [ 50%]
整理中 / 削除中...
  11:libzfs2-devel-0.8.0-rc4.el8      ################################# [ 55%]
  12:python3-pyzfs-0.8.0-rc4.el8      ################################# [ 60%]
  13:zfs-test-0.8.0-rc4.el8           ################################# [ 65%]
  14:zfs-dracut-0.8.0-rc4.el8         ################################# [ 70%]
  15:zfs-0.8.0-rc4.el8                ################################# [ 75%]
  16:zfs-dkms-0.8.0-rc4.el8           ################################# [ 80%]
  17:libzfs2-0.8.0-rc4.el8            ################################# [ 85%]
  18:libzpool2-0.8.0-rc4.el8          ################################# [ 90%]
  19:libnvpair1-0.8.0-rc4.el8         ################################# [ 95%]
  20:libuutil1-0.8.0-rc4.el8          ################################# [100%]
2019-10-11追記
ビルドする前に必要なパッケージは、
https://github.com/zfsonlinux/zfs/wiki/Custom-Packages
に書いてありますが、一部のパッケージ (device-mapper-develなど) が PowerTools というリポジトリに分類されているようなので、次のように有効化する必要がありました。
[root@hoge ~]# dnf install device-mapper-devel --enablerepo=PowerTools
それから、UEFI secureboot が有効になっていると、zfs モジュールをロードできないようです。
[root@hoge ~]# dmesg | grep secure
[    0.000000] secureboot: Secure boot enabled
[    0.000000] Kernel is locked down from EFI secure boot; see man kernel_lockdown.7
[root@hoge ~]# modprobe zfs
modprobe: ERROR: could not insert 'zfs': Required key not available
[root@hoge ~]# grep LOCK_DOWN /boot/config-4.18.0-80.7.1.el8_0.x86_64 
CONFIG_LOCK_DOWN_KERNEL=y
# CONFIG_LOCK_DOWN_MANDATORY is not set
CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y
[root@hoge ~]# grep CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ /boot/config-4.18.0-80.7.1.el8_0.x86_64 
[root@hoge ~]# 
SysRq x も使えない。BIOS で、secureboot を無効化するとロードできまます。

2019-10-19追記
EL8 向けのリポジトリは、作業中の模様。
https://github.com/zfsonlinux/zfs/issues/9287

2019-11-19追記
EL8 向けリポジトリが公開されたので、これからは kmod-zfs を使えば良さそうです。
早速、入れ替えました。
[root@hoge ~]# rpm -qi kmod-zfs
Name        : kmod-zfs
Version     : 0.8.2
Release     : 1.el8
Architecture: x86_64
Install Date: 2019年11月19日 21時34分52秒
Group       : System Environment/Kernel
Size        : 6812072
License     : CDDL
Signature   : RSA/SHA256, 2019年11月14日 02時48分47秒, Key ID a9d5a1c0f14ab620
Source RPM  : zfs-kmod-0.8.2-1.el8.src.rpm
Build Date  : 2019年11月13日 10時17分58秒
Build Host  : fedora-30-repo
Relocations : (not relocatable)
URL         : http://zfsonlinux.org/
Summary     : zfs kernel module(s)
Description :
This package provides the zfs kernel modules built for
the Linux kernel 4.18.0-80.11.2.el8_0.x86_64 for the x86_64
family of processors.

0 件のコメント:

コメントを投稿

人気ブログランキングへ にほんブログ村 IT技術ブログへ