FreeBSD で ZFS を試す ― 2009年03月13日 01時28分37秒
zfs は zpool と対になって使う。zpool で仮想デバイスを管理し、zfs でファイルシステムを作る。よく、この様にまとめられる。FreeBSD で言うと、zpool は GEOM、つまりデバイスレベルの制御、zfs は ufs 等のファイルシステムレベルの制御の様だ。 一つの zpool の特徴的な動作としては、zpool が提供するにはファイルシステムだと言うこと。GEOM だと、デバイスしか提供しないので、その上にファイルシステムを作る必要がある。zpool は既にファイルシステムを提供するので、そのままでも使えるし、その中から別途ファイルシステムに割り当てる事も出来る。
zfs モジュールを読み込む。
$ kldload zfs
常用するのなら、echo 'zfs_enable="YES"' >> /etc/rc.conf
を行なう。
既に GPT で切られているパーティションをそのまま使う。何か失敗した時に、再度パーティションを切る手間を省く為だ。もちろん、ディスク全体を使うことも出来る。
$ gpt show da0
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 7600000 1 GPT part - FreeBSD UFS/UFS2
7600034 407485 2 GPT part - FreeBSD UFS/UFS2
8007519 32 Sec GPT table
8007551 1 Sec GPT header
$ gpart modify -i 1 -t freebsd-zfs da0
da0p1 modified
$ gpart modify -i 2 -t freebsd-zfs da0
da0p2 modified
$ gpart show da0
=> 34 8007485 da0 GPT (3.8G)
34 7600000 1 freebsd-zfs (3.6G)
7600034 407485 2 freebsd-zfs (199M)
$ gpt show da0
gpt show: unable to open device 'da0': Operation not permitted
$ gpart show da0
=> 34 8007485 da0 GPT (3.8G)
34 7600000 1 freebsd-zfs (3.6G)
7600034 407485 2 freebsd-zfs (199M)
$ gpt show da0
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 7600000 1 GPT part - FreeBSD ZFS
7600034 407485 2 GPT part - FreeBSD ZFS
8007519 32 Sec GPT table
8007551 1 Sec GPT header
scratch と言う名で、zpool を作った。
$ zpool create scratch /dev/da0p1 /dev/da0p2
$ df /scratch
Filesystem 1K-blocks Used Avail Capacity Mounted on
scratch 3904896 128 3904768 0% /scratch
$ zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
scratch 3.78G 112K 3.78G 0% ONLINE -
既に、/scratch としてマウントされている。
圧縮を有効にする。
$ zfs set compression=on scratch
zpool の様子を調べてみた。
$ zfs get all scratch
NAME PROPERTY VALUE SOURCE
scratch type filesystem -
scratch creation Wed Mar 4 13:03 2009 -
scratch used 142K -
scratch available 3.72G -
scratch referenced 18K -
scratch compressratio 1.00x -
scratch mounted yes -
scratch quota none default
scratch reservation none default
scratch recordsize 128K default
scratch mountpoint /scratch default
scratch sharenfs off default
scratch checksum on default
scratch compression on local
scratch atime on default
scratch devices on default
scratch exec on default
scratch setuid on default
scratch readonly off default
scratch jailed off default
scratch snapdir hidden default
scratch aclmode groupmask default
scratch aclinherit secure default
scratch canmount on default
scratch shareiscsi off default
scratch xattr off temporary
scratch copies 1 defaul
$ zfs get compression
NAME PROPERTY VALUE SOURCE
scratch compression on local
$ zpool status
pool: scratch
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
scratch ONLINE 0 0 0
da0p1 ONLINE 0 0 0
da0p2 ONLINE 0 0 0
errors: No known data errors
取り敢えず、これで /scratch として使う準備は整った。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2009/03/13/4172224/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。