◆F99a.q8oVE::Blog

ZFS で snapshot をローテーションしながら取得していく script

この記事をクリップ!コメントを見る このエントリーをブックマークこのエントリーを含むブックマーク ◆F99a.q8oVE: 2009/02/04 23:50:24

ZFS で、際限なく延々と snapshot をとるのではなく、古い snapshot は自動で消したいよね、というモチベーション。

そこで、こんな script を書いてみた。(自己の責任にてご利用ください。)

以下のように crontab に書いておくと…

@daily   /root/bin/zfs_snapshot.sh tank days_later   7  recursive
@weekly  /root/bin/zfs_snapshot.sh tank weeks_later  5  recursive
@monthly /root/bin/zfs_snapshot.sh tank months_later 12 recursive
@yearly  /root/bin/zfs_snapshot.sh tank years_later  10 recursive

このような感じで、今日 0days_later だった snapshot が明日には 1days_later ... というふうにローテーションしていきます。

tank/usr                                    5.23G   137G  2.64G  /usr
tank/usr@0weeks_later                           0      -  2.57G  -
tank/usr@0months_later                          0      -  2.57G  -
tank/usr@3days_later                        29.5K      -  2.57G  -
tank/usr@2days_later                        6.22M      -  2.59G  -
tank/usr@1days_later                        6.16M      -  2.59G  -
tank/usr@0days_later                        6.16M      -  2.59G  -

既知の問題

  • snapshot が規定数に達していない場合は、zfs destroy, zfs rename がエラーになる
  • コメントの英語が変

TrackBack URL: http://blog.f99aq8ove.net/comment.cgi/tb/1233759024/
Created by f99aq8ove.