最近の FreeBSD はインストーラでインストール先のファイルシステムとしてZFSが選択できるようになっています。しかも ZFS Root です。とはいえ、稼働中のサーバを止めてクリーンインストールして復元なんてのは面倒クサすぎなので、 Mac上でVirtualBoxから走らせた仮想PCにFreeBSD 10.3 をインストールして様子を見てみました。
ZFSを使うといっても昔みたいに難しいことは無く、デフォルト設定でポンポンキーを押して進んでいき、UFSの代わりにZFSを選択すると後は普通にインストール完了します。実は sysinstall が使われなくなってから初めて FreeBSD をインストールしたのですが、同じような手順でインストールできるのですな。てことでインストール後のシステムは下記のようになっていました。
=> 34 251658173 ada0 GPT (120G) 34 6 - free - (3.0K) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 4194304 2 freebsd-swap (2.0G) 4196352 247459840 3 freebsd-zfs (118G) 251656192 2015 - free - (1.0M)
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT zroot 117G 1.04G 116G - 0% 0% 1.00x ONLINE -
NAME USED AVAIL REFER MOUNTPOINT zroot 1.04G 112G 96K /zroot zroot/ROOT 451M 112G 96K none zroot/ROOT/default 451M 112G 451M / zroot/tmp 96K 112G 96K /tmp zroot/usr 613M 112G 96K /usr zroot/usr/home 136K 112G 136K /usr/home zroot/usr/ports 613M 112G 613M /usr/ports zroot/usr/src 96K 112G 96K /usr/src zroot/var 624K 112G 96K /var zroot/var/audit 96K 112G 96K /var/audit zroot/var/crash 96K 112G 96K /var/crash zroot/var/log 144K 112G 144K /var/log zroot/var/mail 96K 112G 96K /var/mail zroot/var/tmp 96K 112G 96K /var/tmp
kern.geom.label.gptid.enable="0" zfs_load="YES"
hostname="testBSD" ifconfig_em0="DHCP" sshd_enable="YES" # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable dumpdev="AUTO" zfs_enable="YES"
# Device Mountpoint FStype Options Dump Pass# /dev/ada0p2 none swap sw 0 0
まとめると下記になります。
という感じ。うちのサーバは GPTのHDD から起動して同一HDDの別パーティションに入ってるUFS にカーネルファイルを入れています。これと比較して完全 ZFS Root ではカーネル部分が入った部分でセクタ不良が起こったとしても ZFS ですからチェックサムやミラーリングにて正常に読み出せる可能性が高く、いくらか強固になります。が、ブートローダーの部分でたまたまセクタ不良が起きればブート不可能なのは変わりませんから、今のシステムをシングルユーザモードで起動して呪文を唱える(そして失敗するかもしれない)ことを考えれば、現行通りの運用でも特に問題はないでしょう。
ちなみに、この完全 ZFS Root では上記のような理由で起動不能になった場合にどうやって修復するんでしょうね。なんちゃって ZFS Root と違って起動用パーティションというのがありませんし、完全に別のシステムで起動しても頼りの zpool.cache が zpoolの中にあるというジレンマ(笑)。gptzfsboot が別ドライブのZFSを探してきてくれるのであれば、MBRと gptzfsboot だけ入れたHDDをでっち上げてBIOSでそのHDDから起動するように仕向ければよいのかな? ここらへんはちょっと調べておいたほうが良いかもですね。
□ 関連記事