OpenSolarisで開発されたZFSなるものがFreeBSDで使えるようになって
随分経ちますがZFSをrootにするために色々実験した顛末。
目標はswapまで含めての全領域ミラー化。
はまりポイントは /boot/zfs/zpool.cache とメモリの設定でした。
Googleで"FreeBSD ZFS root"で検索してヒットしたページと
ZFS管理ガイドをSunのサイトから入手して作業。
ほとんどの作業を4GBほどの古いHDDにインストールしたFreeBSDから起動して行った。
バージョンは7.1-stableで2008年12月頃のもの。
実験に使ったマシンはDuron 900とメモリ1GB、HDD 4GB、120GB、160GBが各1本。
160GBのHDDは外しておいた。
120GBのHDDにセットアップして再起動、kernelを読んで / をマウントする所までは
進むがなぜかpoolが見つからなくて失敗。
実はpoolを作成したときのHDDの上に /boot/zfs/zpool.cache なる
ファイルがあってこれがないとpoolが起動時に認識されずマウントできない。
再度4GBのHDDをつないで /boot/zfs/zpool.cache をコピー、
無事起動に成功しました。
boot用のUFSとswap領域はgmirrorでミラーリングしてます。
次に160GBのHDDを取り付けてミラーリング。
これは難なく成功。
次はFSのテスト。
FreeBSDのcvsリポジトリをzfs上で何度もコピーして負荷をかけると
メモリ関係のエラーで落ちる。
カーネルメモリが溢れてる様子。
http://wiki.freebsd.org/ZFS
から辿れる記事を参考にloader.confに
メモリ関係の設定をいくつか追加したら落ちなくなりましたが
swapをzvolで取っている状態で高負荷になるとやっぱり落ちます。
i386だと4G積んでても色々問題があるそうでこれからの発展に期待。
最近のマシンなら作業用のHDDの代わりにUSBメモリから
起動して作業できるはず。
cdbootだと zpool.cache を書けないのでうまくいかないかな?
もうしばらく様子を見てからメインマシンの方もzfsに切り替えようかな。