[zfs] zfsnap2を使った日々のzfs snapshot(取得編) | Nobwak's Lair
[zfs] zfsnap2を使った日々のzfs snapshot(削除編) | Nobwak's Lair
インストール
# pkg install zfsnap2
※ 2.0.0.b3_3 以降は /usr/local/etc/periodic/daily/500.daily_zfsnap.sh /usr/local/etc/periodic/daily/500.daily_zfsnap_delete.sh の作成は不要 /usr/local/etc/periodic/daily/402.zfsnap がインストールされる スナップショット作成+削除のスクリプトで 「付属のスクリプトではdestroyするfsの指定がないので補う。」も修正されている。 https://www.freshports.org/sysutils/zfsnap2
〜 以下 2.0.0.b3_3 以降は不要 〜
/usr/local/share/zfsnap/periodic/xPERIODICx_zfsnap_delete.sh を修正
付属のスクリプトではdestroyするfsの指定がないので補う。
[zfs] zfsnap2を使った日々のzfs snapshot(削除編) | Nobwak's Lair
# curl -O https://raw.githubusercontent.com/kurita0/zfsnap-v2.0.0-beta3-patch/master/patch-xPERIODICx_zfsnap_delete.sh # patch /usr/local/share/zfsnap/periodic/xPERIODICx_zfsnap_delete.sh < patch-xPERIODICx_zfsnap_delete.sh
dailyのスナップショット作成、削除スクリプトを作成
# sed -e 's|xPERIODICx|daily|g' -e 's|xPREFIXx|/usr/local/sbin|g' /usr/local/share/zfsnap/periodic/xPERIODICx_zfsnap.sh > /usr/local/etc/periodic/daily/500.daily_zfsnap.sh chmod +x /usr/local/etc/periodic/daily/500.daily_zfsnap.sh # sed -e 's|xPERIODICx|daily|g' -e 's|xPREFIXx|/usr/local/sbin|g' /usr/local/share/zfsnap/periodic/xPERIODICx_zfsnap_delete.sh > /usr/local/etc/periodic/daily/500.daily_zfsnap_delete.sh chmod +x /usr/local/etc/periodic/daily/500.daily_zfsnap_delete.sh
datatank/home のスナップショットをdailyで取得、2週間分残す
取得
# vi /etc/periodic.conf daily_zfsnap_enable="YES" daily_zfsnap_flags="-n -s -S -z" daily_zfsnap_fs="datatank/home" daily_zfsnap_ttl="2w" daily_zfsnap_verbose="YES" -n (Dry-run) で確認 # /usr/local/etc/periodic/daily/500.daily_zfsnap.sh /sbin/zfs snapshot datatank/home@daily-2020-04-03_16.05.00--2w -n を外す # vi /etc/periodic.conf daily_zfsnap_flags="-s -S -z" 実行確認 # /usr/local/etc/periodic/daily/500.daily_zfsnap.sh /sbin/zfs snapshot datatank/home@daily-2020-04-03_16.07.00--2w ... DONE スナップショット確認 # zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT datatank/home@daily-2020-04-03_16.07.00--2w 7.11M - 31.0G -
-s : resilver中は作業しない -S : scrub中は作業しない -z : 日付シリアルの秒切り捨て(18:06:15を18:06:00にする) http://april.fool.jp/blogs/2018/12/01/zfszpool-%E3%82%89%E3%81%8F%E3%82%89%E3%81%8F%E3%82%B9%E3%83%8A%E3%83%83%E3%83%97%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88zfsnap2/
削除
# vi /etc/periodic.conf daily_zfsnap_delete_enable="YES" daily_zfsnap_delete_flags="-n -s -S" daily_zfsnap_delete_fs="datatank/home" daily_zfsnap_delete_verbose="YES" -n (Dry-run) で確認 # /usr/local/etc/periodic/daily/500.daily_zfsnap_delete.sh 結果なし スナップショット名が削除対象になるようにリネーム 4/19 → 3/20 # zfs rename datatank/home@daily-2020-04-19_16.07.00--2w datatank/home@daily-2020-03-20_16.07.00--2w -n (Dry-run) で確認 # /usr/local/etc/periodic/daily/500.daily_zfsnap_delete.sh /sbin/zfs destroy datatank/home@daily-2020-03-20_16.07.00--2w -n を外す # vi /etc/periodic.conf daily_zfsnap_delete_flags="-s -S" # /usr/local/etc/periodic/daily/500.daily_zfsnap_delete.sh /sbin/zfs destroy datatank/home@daily-2020-03-20_16.07.00--2w ... DONE スナップショット確認 # zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT
daily_zfsnap_recursive_fs を使うと -r 相当、削除は daily_zfsnap_delete_recursive_fs を使用する