以下、メモです。
まず、dkms が必要ですが、これは EPEL の RHEL6/CentOS6 向けリポジトリから、.src.rpm を取ってきて再ビルドしてインストールしました。
# rpmbuild --rebuild dkms-2.2.0.3-20.el6.src.rpm # ls /root/rpmbuild/RPMS/noarch dkms-2.2.0.3-20.el7.noarch.rpm # rpm -ivh /root/rpmbuild/RPMS/noarch/dkms-2.2.0.3-20.el7.noarch.rpmつぎに、ZFS をインストールします。もちろん、RHEL7/CentOS7 向けのリポジトリは、まだありませんので、GitHub から最新のソースを取り出してビルドしました。
手順は以下のような感じです。
# mkdir zfs_on_linux # cd zfs_on_linux # git clone https://github.com/zfsonlinux/spl.git # git clone https://github.com/zfsonlinux/zfs.git # cd spl # autoreconf -i ※configureを生成するため、この操作が必要 # ./configure --with-config=user # make rpm-utils rpm-dkms # cd ../zfs # autoreconf -i # ./configure --with-config=user # make rpm-utils rpm-dkms # cd .. # ls -1 spl/*.rpm spl/spl-0.6.2-33_g89aa970.el7.src.rpm spl/spl-0.6.2-33_g89aa970.el7.x86_64.rpm spl/spl-debuginfo-0.6.2-33_g89aa970.el7.x86_64.rpm spl/spl-dkms-0.6.2-33_g89aa970.el7.noarch.rpm spl/spl-dkms-0.6.2-33_g89aa970.el7.src.rpm # ls -1 zfs/*.rpm zfs/zfs-0.6.2-259_gde39ec1.el7.src.rpm zfs/zfs-0.6.2-259_gde39ec1.el7.x86_64.rpm zfs/zfs-debuginfo-0.6.2-259_gde39ec1.el7.x86_64.rpm zfs/zfs-devel-0.6.2-259_gde39ec1.el7.x86_64.rpm zfs/zfs-dkms-0.6.2-259_gde39ec1.el7.noarch.rpm zfs/zfs-dkms-0.6.2-259_gde39ec1.el7.src.rpm zfs/zfs-dracut-0.6.2-259_gde39ec1.el7.x86_64.rpm zfs/zfs-test-0.6.2-259_gde39ec1.el7.x86_64.rpm # yum localinstall spl/spl-0.6.2-33_g89aa970.el7.x86_64.rpm \ spl/spl-dkms-0.6.2-33_g89aa970.el7.noarch.rpm \ zfs/zfs-0.6.2-259_gde39ec1.el7.x86_64.rpm \ zfs/zfs-dkms-0.6.2-259_gde39ec1.el7.noarch.rpm \ zfs/zfs-dracut-0.6.2-259_gde39ec1.el7.x86_64.rpm \ zfs/zfs-test-0.6.2-259_gde39ec1.el7.x86_64.rpmで、試運転結果です。
# uname -a
Linux hoge 3.10.0-121.el7.x86_64 #1 SMP Tue Apr 8 10:48:19 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
# zpool import tank4
# zpool list tank4
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
tank4 368G 283G 84.5G 77% 1.00x ONLINE -
# zpool get all tank4
NAME PROPERTY VALUE SOURCE
tank4 size 368G -
tank4 capacity 77% -
tank4 altroot - default
tank4 health ONLINE -
tank4 guid 1893700132493715388 default
tank4 version - default
tank4 bootfs - default
tank4 delegation on default
tank4 autoreplace off default
tank4 cachefile - default
tank4 failmode wait default
tank4 listsnapshots off default
tank4 autoexpand off default
tank4 dedupditto 0 default
tank4 dedupratio 1.00x -
tank4 free 84.5G -
tank4 allocated 283G -
tank4 readonly off -
tank4 ashift 12 local
tank4 comment - default
tank4 expandsize 0 -
tank4 freeing 0 default
tank4 feature@async_destroy enabled local
tank4 feature@empty_bpobj active local
tank4 feature@lz4_compress active local
# zpool status tank4
pool: tank4
state: ONLINE
scan: scrub repaired 12.1G in 1h34m with 0 errors on Sat Apr 26 12:37:25 2014
config:
NAME STATE READ WRITE CKSUM
tank4 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ata-HITACHI_HTS725050A9A364_xxxxxxxxxxxxxxxxxxxx-part1 ONLINE 0 0 0
ata-HGST_HTS721010A9E630_yyyyyyyyyyyyyy-part1 ONLINE 0 0 0
errors: No known data errors
気になる性能は、どうかというと。
# uname -a Linux hoge 3.10.0-121.el7.x86_64 #1 SMP Tue Apr 8 10:48:19 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux # zfs set compression=off tank4/backup # cd /tank4/backup # ls -l sda6.tar -rw-r--r-- 1 root root 10927441920 10月 20 2013 sda6.tar # time tar xf sda6.tar real 3m23.413s user 0m3.932s sys 0m57.623s # time rm -rf test.restore real 0m9.153s user 0m0.167s sys 0m8.924sにわかには信じ難いほど速くなってました!\(^0^)/
ピンと来ない方は、こちら を参照。同じマシン上に、RHEL7.0 RC のマルチブート環境を用意して、実験しています。
ちなみに、RHEL7 のデフォルトのファイルシステムは XFS ですが、マルチブートと相性が悪いのと、SSD 節約のため、Btrfs (compress-force=lzo) を使いました。Btrfs にインストールする手順は、こちら を参照。
2014-05-05追記
el7 向けの EPEL beta が既に公開されているので、dkms はそちらからインストールすれば済みます。
2014-06-17追記
別途用意した RHEL7 + ZOL 0.6.3 環境にて、SELinux をデフォルトの Enforcing にしたまま、tar の展開/削除を試したら、zfs_iput_taskq が大量に CPU 消費して、焦りました。
https://github.com/zfsonlinux/zfs/issues/1953 こちらの現象のようでした。RoadMap 上 0.6.5 で修正目標のようです。
もし、どうしても SELinux が必要なマシンで ZFS 使う方は、お気をつけて。
