okochangの馬鹿でありがとう

ふらふら適当に世間を生きる日々でございます

ZFS on LinuxをAmazon LinuxとEBSで試してみた

久しぶりに自分のToDoリストを見てみると、昨年の10月くらいに登録されたこんなものがありました。

『せっかくZFS Daysに参加したのだからブログに何か書く』

おお、そうだ、みんな他の人に見せられない大事なものをZFSに保存してたなー。
ブログを書くまでが勉強会なので、勉強会のクロージングの為にもZFS on LinuxをAmazon Linuxにインストールしてみました。
※安くなったとはいえ、検証の為にHDDを何個も買えません><
※今回は1台のEC2インスタンスに10GiBのEBSを3つアタッチした非常にケチ臭い構成です
こちらのページに詳しく解説されてます。

必要なパッケージのインストール

$ sudo yum -y update && sudo reboot
$ sudo yum -y groupinstall "Development Tools" "Development Libraries"
$ sudo yum -y install kernel kernel-devel zlib-devel libuuid-devel lsscsi parted

SPL(Solaris Porting Layer)をインストール

$ mkdir ./src
$ cd ./src
$ wget http://github.com/downloads/zfsonlinux/spl/spl-0.6.0-rc6.tar.gz
$ tar zxvf ./spl-0.6.0-rc6.tar.gz 
$ cd ./spl-0.6.0-rc6
$ ./configure
$ make rpm
$ sudo rpm -ivh ./*x86_64.rpm

ZFSをインストール

$ cd ~/src
$ wget http://github.com/downloads/zfsonlinux/zfs/zfs-0.6.0-rc6.tar.gz
$ tar zxvf ./zfs-0.6.0-rc6.tar.gz 
$ cd ./zfs-0.6.0-rc6
$ ./configure 
$ make rpm
$ sudo rpm -ivh ./*.x86_64.rpm

zfsのプールを作成する

$ sudo ls -alh /dev/sd*
lrwxrwxrwx 1 root root 5  2月 20 15:46 2012 /dev/sda1 -> xvda1
lrwxrwxrwx 1 root root 4  2月 20 15:46 2012 /dev/sdf -> xvdf
lrwxrwxrwx 1 root root 4  2月 20 15:46 2012 /dev/sdg -> xvdg
lrwxrwxrwx 1 root root 4  2月 20 15:46 2012 /dev/sdh -> xvdh

ストレージプールにEBSを追加してRAIDZを構成

$ sudo zpool create  mypool raidz /dev/xvdf /dev/xvdg /dev/xvdh

作成したプールの一覧を確認

$ sudo zpool list
NAME     SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
mypool  29.8G   172K  29.7G     0%  1.00x  ONLINE  -

作成したプールの状態を確認

$ sudo zpool status
  pool: mypool
 state: ONLINE
 scan: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	mypool      ONLINE       0     0     0
	  raidz1-0  ONLINE       0     0     0
	    xvdf    ONLINE       0     0     0
	    xvdg    ONLINE       0     0     0
	    xvdh    ONLINE       0     0     0

errors: No known data errors

dataというファイルシステムを作成

$ sudo zfs create mypool/data

マウント状態を確認

$ df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/xvda1            7.9G  1.6G  6.3G  20% /
tmpfs                 299M     0  299M   0% /dev/shm
mypool                 20G  128K   20G   1% /mypool

インストールしたら自動起動も設定されるみたいで再起動しても自動的にマウントされるみたい

$ sudo chkconfig --list zfs
zfs            	0:off	1:off	2:on	3:on	4:on	5:on	6:off

追加ディスクを既存のRAIDZ構成に追加出来ると少しずつEBSを追加出来てさらに面白いんだけどなー。