Go for it!

モーターサイクルと自転車とキャンプの日々。

FreeBSDでZFSを使ってみた

ZFSが便利そうだったのでお勉強をしてみる。

奇しくも、新しいMacBook Airが届いた(レンタルなのですが、暴走しまくりで困ると伝えたら代替品に変わった)ので、VMware Fusionを入れてその上にFreeBSD 7.2Rを放り込んでお勉強開始。

以下のあたりを参考にしてみた。

カーネルモジュールをロードするとすぐに使えるのね。

zfsにアサインするディスクはとりあえずmemory diskを使用した。ddで空ファイルを作ってmdconfigデバイスを生成する。

# mkdir ~/images

cd ~/images

dd if=/dev/zero of=./disk1 bs=1m count=100

dd if=/dev/zero of=./disk2 bs=1m count=100

dd if=/dev/zero of=./disk3 bs=1m count=100

mdconfig -a -t vnode -f disk1

mdconfig -a -t vnode -f disk2

mdconfig -a -t vnode -f disk3

zpoolコマンドでプールを作成すると準備が整う。zfstestという名前でプールを作成する。

コマンドを実行すると/zfstestというディレクトリが作成されて、いきなりマウントされていて驚いた。ここがzfsとして利用できるようだ。

# zpool create zfstest md0

デバイスの追加と削除、ミラー(いわゆるRAID1)、ホットスペア、ディスクの入れ替えなどを学習した。長くなりそうなので、試した内容はwikiにまとめた

ーーー ZFSにはディットブロックという、同じブロック内容を別セクタにもコピーする仕組みがあって、データを多重に管理する仕組みがあって好感が持てる。

現代的なデジタルデータは数メガ、数百メガといったサイズになっていて、データの一部が欠損するだけでも大きな被害となる。ディットブロックを採用するとファイルシステムの利用可能容量は実際のディスク容量よりも少なくなってしまうが、HDDは非常に安価になっているし、多少のロスは気にせずにデータ保全を考えた方が良いと思う。

ZFS Hot Spareを追加してミラーを方肺にしてみたのだが、リビルドが行われるかと思いきや何も起こらなかった。まだ自動リビルドは実装されていないのかな?

また折を見て試してみようと思います。

[ad#text_wide]