zfsに挑戦

http://www.seichan.org/wiki/index.php?FreeBSD-ZFS
こちらを参考に/etc/rc.confに

zfs_enable="YES"

を付け加えて

/etc/rc.d/zfs start

したらzfs.koとopensolaris.koがロードされた。

WARNING: ZFS is considerd to be an experimental feature in FreeBSD.

とか出たけど、気にしない*1

raid5の様なものを作る

zfsはHDDの束をRAIDアレイではなくストレージプールと言うらしい。
で、RAID5相当のものは単一パリティのraidzという事になるらしい。
RAID5と比べて、データとパリティのどちらかが未更新の時にHDDがクラッシュするとRAIDとして致命的な不整合が起こらないようになっているらしい*2
zfsのストレージプールを操るコマンドはzpool

zpool create zpool raidz ad4 ad5 ad6

zfsのストレージプールを作って早速マウントだーと思ったら、なんかすでに/zpoolとかに勝手にマウントされてるorz

zfsをマウントする

df
Filesystem        1K-blocks      Used     Avail Capacity  Mounted on
中略
/dev/mirror/gm0s1 473015558 424415312  10759002    98%    /data
zpool             959688064  10553088 949134976     1%    /zpool

zfsはどうやらマウントポイントをファイルシステムの中に記憶しててfstabとかmountコマンドとかとは別管理になっているらしい。
zfsコマンドを使ってマウントポイントをzfsに教えてあげる仕組みの様だ。

一応# umount /zpoolとかやるとアンマウントされた
ストレージプールから好きなだけパーティションを切り分けてquotaとかかけて管理するというのをやりたいので、さっき作ったzpoolは一旦消して*3

zpool create -m none zpool raidz ad4 ad5 ad6

とした。*4
これでどこにもマウントされないストレージプールができた。

好きな場所にマウントする。
zfsコマンドを使う。

zfs create -o mountpoint=/data zpool/data

これでraidzのストレージプールを使う/dataができた。
ついでに

zfs create -o mountpoint=/data/ftp -o quota=1G zpool/data/ftp

/data/ftpは1GBの容量制限付の場所というdisk quotaも簡単にできる。


*1:駄目ならgmirrorで使ってたHDDからデータを救い出す計画

*2:久しぶりに買ったUNIXmagazine2009Winter号に書いてあった

*3:zpool destroy zpoolであっけなく消える

*4:2009/03/08オプションの順番を間違えていたので書き直した