[FreeBSD][UFS] 定期的にSnapshotを作成

UFSにはSnapshot機能があることは知っていたが、いつか試そうと思って放っていた。

今日rm *~しようとしてrm *してしまい激しく後悔。

定期的にSnapshotを作成するように設定することにした。

『FreeBSD UFS Snapshot Management Environmentを使って定期的にSnapshotを作成する』 – mteramotoの日記
によるとFreeBSD UFS Snapshot Management Environmentというのがあって、設定したスケジュールに従ってSnapshotをrotateしてくれるらしい。

sysutils/freebsd-snapshotというportsになっているのでこれをインストール。

/etc/crontabに

# /etc/crontab
0	*	*	*	*	root	/usr/local/sbin/periodic-snapshot hourly
0	0	*	*	*	root	/usr/local/sbin/periodic-snapshot daily
0	0	*	*	0	root	/usr/local/sbin/periodic-snapshot weekly

と記述してperiodic-snapshotを呼び出す時間を指定。

スケジュールは/etc/periodic.confに記述する。

インストール時には作られないので新規に作成。

napshot_enable="YES"
snapshot_schedule="/usr,/usr/pub:2:10:0"

のように書く。

/usrとか/usr/pubとかはマウントポイント。

snapshot_scheduleの書式は

<schedule>
::= <entry>*
<entry>
::= <fs> (", <fs>)* : <spec>
<fs>
::= /^.*$/
<spec>
::= <gen_weekly> : <gen_daily> : <gen_hourly> <gen_weekly> 
::= <generation>
<gen_daily>
::= <generation> <gen_hourly> 
::= <generation> ("@ <hour> (", <hour>)*)? <generation> 
::= /^[0-9]+$/
<hour>
::= /^(0?[0-9]|1[0-9]|2[0-3])$/

のようになっていて、週ごと、日ごと、時間ごとに保持するSnapshotの個数を指定する。

はじめは2:2:2とかにしてみたが、毎時のSnapshotの作成に5分ほどかかる。

わりと負荷が高いので今のところ2:10:0としている。

空き容量を気にしながらしばらくは様子見。

参考
『FreeBSD UFS Snapshot Management Environmentを使って定期的にSnapshotを作成する』 – mteramotoの日記
『periodic-snapshot — run periodic UFS/ZFS backup snapshot maintenance task』

Leave a Reply

Your email address will not be published. Required fields are marked *

*