FreeBSD - メンテナンス・トラブルシュート - boot 時のトラブル - ZFS対策

 クラウディア
1. 概要
2. ZFS を無効にする

1. 概要

 実のところ、「ZFS」については、まだ勉強しておらず。  実態がよくわかっていないのです。  なので、ここで書いていることは、一時的にエラーメッセージを出さないようにする程度のことなので、ご注意ください。

2. ZFS を無効にする

 FreeBSD 8.2 RELEASE 以降(バージョンについては確実ではありません)、ZFS が有効になっています。  これが、結構やっかいなもので、CPU が i386 であったり、実装メモリが少なかったりするとメモリが少なくなって kernel panic を引き起こし、システムが停止したりします。  気になるのが起動後にコンソールに

ZFS NOTICE: Prefetch is disabled by default on i386 -- to enable,
add "vfs.zfs.prefetch_disable=0" to /boot/loader.conf.
ZFS WARNING: Recommended minimum kmem_size is 512MB; expect unstable behavior.
Consider tuning vm.kmem_size and vm.kmem_size_max
と出ちゃうことです。  1行目は「i386 では prefetch をデフォルトで disable にしてますが、enable にしたければ /boot/loader.conf に vfs.zfs.prefetch_disable=0 を追加しなさいよ」ってことです。  2行目は「ZFS での推奨最少メモリは 512MB ですよ。今の値は少ないので vm.kmem_size や vm.kmem_size_max を調整しなさいよ」ってことです。ZFS では実装しているメモリは 4GB と仮定しているそうです(ああ、FreeBSD も贅沢になったものです。以前は 256MB のメモリでも文句ひとつたれることもなく動作していたのに・・・) 。  これらを解消するには、正に /boot/loader.conf を書き換えます。  ここで注意したいのは以下の設定では、実装メモリが少なくとも 1GB以上あることを想定しています。それよりも少ないメモリサイズの場合の記述方法はまだ探せていません。  /boot/loader.conf

vfs.zfs.prefetch_disable=1
vfs.zfs.arc_max="100M"

vm.kmem_size="512M"
vm_kmem_size_max="512M"
 これは、prefetch を明示的に disable にし、kernel メモリに 512MB を割り当てるというものです。  これで一応、安定して動作するようになります。  実は、ここの設定を誤って、システムが起動できなくなってしまったのですが、それから復旧する手順については次項で・・・。