せっかくバックアップ機に FreeBSD7.0-BETA3が入ってるので、ZFSの実験をしてみることにしました。・・・の前に、最近まで名前も聞いたことがなかったZFSについてお勉強。重村法克さんの「ZFSメンテナンスの日々 #5 ZFS Root 編」 の中にあるjusの勉強会の発表資料 が感動的にわかりやすくまとまっています。興味ある方はぜひご一読を。
さて、お勉強できたところで個人的に興味深い事項をあげておきます。
ただ、幾つか問題もあります。
うちのバックアップ機はメモリ256MBしか乗ってないのですが、起動時に
ZFS WARNING: Recommended minimum RAM size is 512MB; expect unstable behavior.と言われます。そして大きいファイルを作成したり一気に削除していると何度か再起動がかかりました。ネットワーク越しなので詳細はわかりませんが、少なくともこのマシンで安定動作を望むのは難しいようです。
以上を踏まえた上での実験。まずうちの機械はバックアップ用として /dev/ad0s1d を /backup にマウントしています。umountしたあと、ここをZFS用に使うことにしましょう。
# zpool create zpool /dev/ad0s1dこれで /zpool が作られました。更に /backup を作ってみます。
# zfs create -o mountpoint=/backup zpool/backupこれで /backup にマウントされました。そう、マウントされたんですよ。あほな私は「 え~と、じゃあ newfs はどうやって??」 と迷っていたのですが、newfsなんて必要ありませんでした(笑)。
# mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
zpool/backup on /backup (zfs, local) ←これ
zpool on /zpool (zfs, local)
ZFS Root で使うのならいろいろおまじないが必要ですが、UFSの一部にZFSを使うだけであれば、 /etc/rc.conf に 'zfs_enable="YES"'を書くだけでOKです。/etc/fstab には何も書かなくても zfs コマンドで指定したマウントポイントに自動的にマウントされます。ホントはファイルシステム をぜんぶZFSにした方がバックアップやリストアが簡単なはずですが、Boot loaderや sysinstall の対応が遅れている現段階では逆に面倒かもしれません。
でもって最後に必殺技。
# zfs snapshot zpool/backup@hogeにてスナップショットが作れます。上のファイル構成では /backup/.zfs/snapshot/hoge という場所にてスナップショットを作った日時のファイルシステムで再現されます。うぉ、これはLeopardのタイムマシーンみたいなものではないか。 てことで実験
# rm -r /backup/*これで、消したはずの /backup/* が見事に復活します。うわ~すごいなーこれ。ZFS Root にしちゃえば、もはや 'rm -rf /'も敵ではないですな(^_^)。スナップショットをとるのはたいした時間もディスク容量も必要無いみたいですので、現在行っている「一日一回のバックアップ」というのは将来的には「一日数回」のスナップショット作成に置き換えることが可能かもしれません。
# zfs rollback zpool/backup@hoge
利用するにはある程度のメモリとCPU能力が必要とされそうな雰囲気ですが、それを加味してもなお導入したくなる要素満載です。いつから FreeBSD で*普通に*使えるようになるかはわかりませんが、こいつは大いに期待できます。
□ 関連記事