先日、ZFSonLinuxにLinux用NativeなZFSがリリース(現時点ではRC2)されていると書きましたが、せっかくなのでOracle Linux 6 (Unbreakable Enterprise Kernel)でビルドしてみることにします。
本当は、ZFSのshareiscsiでZVolumeをiSCSIとしたかったのですが、shareiscsiは現時点では未実装でした。
上記のRC2のアーカイブを使ってもよいのですが、絶賛開発中のものであるのでgit リポジトリから最新ソースを持ってきてビルドしてみます。
ビルドの流れとしては
1. SPLのソースを持ってきてビルド
2. ZFSのソースを持ってきてビルド
の2段階です。
1. SPLのソースをgitリポジトリから取得
# git clone https://github.com/behlendorf/spl.git Initialized empty Git repository in /root/work/spl/.git/ remote: Counting objects: 4372, done. remote: Compressing objects: 100% (1195/1195), done. remote: Total 4372 (delta 3264), reused 4206 (delta 3137) Receiving objects: 100% (4372/4372), 1.53 MiB | 637 KiB/s, done. Resolving deltas: 100% (3264/3264), done.
2. SPLのビルド
# cd spl # ./configure # vi spl-modules.spec
ここで、UEKカーネル用にちょっとspecファイルを修正しておきます。
spl-modules.specの抜粋
# RHEL 5.x/6.x:
%if %{defined el5} || %{defined el6}
%if %{undefined kver}
%define klnk %{_usrsrc}/kernels/*/include/config
%define kver %((echo X; %{__cat} %{klnk}/kernel.release
2>/dev/null) | tail -1)
%endif
%define kpkg kernel-uek <-- ここと
%define kdevpkg kernel-uek-devel <-- ここ
# make rpm
3. 完成したSPLのrpmをインストール
# rpm -ihv spl*.rpm
4. ZFSのソースをgitリポジトリから取得
# git clone https://github.com/behlendorf/zfs.git Initialized empty Git repository in /root/work/zfs/.git/ remote: Counting objects: 70283, done. remote: Compressing objects: 100% (21559/21559), done. remote: Total 70283 (delta 48202), reused 69767 (delta 47741) Receiving objects: 100% (70283/70283), 15.40 MiB | 1.99 MiB/s, done. Resolving deltas: 100% (48202/48202), done.
5. 必要なパッケージのインストール
# sudo yum install zlib-devel libuuid-devel libblkid-devel libselinux-devel lsscsi
6. ZFSのビルド
# cd zfs # ./configure
ここで、SPLと同様にUEKカーネル用にちょっとspecファイルを修正しておきます。
zfs-modules.specの抜粋
# RHEL 5.x/6.x:
%if %{defined el5} || %{defined el6}
%if %{undefined kver}
%define klnk %{_usrsrc}/kernels/*/include/config
%define kver %((echo X; %{__cat} %{klnk}/kernel.release
2>/dev/null) | tail -1)
%endif
%define kpkg kernel-uek <-- ここと
%define kdevpkg kernel-uek-devel <-- ここ
# make rpm
7. 完成したZFSのrpmをインストール
# rpm -ihv *.rpm
何かと、SELinuxが悪さをしそうなので、切っておきます。
# setenforce 0 and # vi /etc/sysconfig/selinux
ちょっとテスト
- zpoolの作成
# zpool create myzpool sdb1
- zvolの作成
# zfs create myzpool/myzvol -V 5g
# zfs list
NAME USED AVAIL REFER MOUNTPOINT myzpool 5.16G 4.62G 21K /myzpool myzpool/myzvol 5.16G 9.78G 16K -
# df -h Filesystem Size Used Avail Use% マウント位置 /dev/sda1 7.7G 3.5G 3.9G 48% / tmpfs 1001M 88K 1001M 1% /dev/shm /dev/sda3 18G 1.2G 16G 7% /export myzpool 4.7G 1001M 3.7G 22% /myzpool
Productionレベルではないと注記があるものですので、利用に際してはご注意ください。
コメント
コメントを投稿