以下、メモです。
まず、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 使う方は、お気をつけて。