FreeBSDでZFS root

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に切り替えようかな。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください