ひとりごと

新しい記事:[2095]  古い記事:[2093] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2007/12/03 (月)

・ ZFSで遊ぶ

せっかくバックアップ機に 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/*
# zfs rollback zpool/backup@hoge
これで、消したはずの /backup/* が見事に復活します。うわ~すごいなーこれ。ZFS Root にしちゃえば、もはや 'rm -rf /'も敵ではないですな(^_^)。スナップショットをとるのはたいした時間もディスク容量も必要無いみたいですので、現在行っている「一日一回のバックアップ」というのは将来的には「一日数回」のスナップショット作成に置き換えることが可能かもしれません。

利用するにはある程度のメモリとCPU能力が必要とされそうな雰囲気ですが、それを加味してもなお導入したくなる要素満載です。いつから FreeBSD で*普通に*使えるようになるかはわかりませんが、こいつは大いに期待できます。

□ 関連記事

[つっこみ]

新しい記事:[2095]  古い記事:[2093] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)