Configuring ZFS auto snapshot destroy thresholds

A feature of ZFS automatic snapshots is automatic cleanup of snapshots when disk space is ‘low’. 95% full is considered an emergency, and all snapshots are purged, which probably isn’t desired with several TB free!

The following will appear in /var/adm/messages

Sep 21 05:24:49 host time-sliderd: [ID 702911 daemon.crit] tank exceeded 90% capacity. Weekly, hourly and daily automatic snapshots were destroyed
Sep 21 05:24:49 host time-sliderd: [ID 702911 daemon.notice] 43 automatic snapshots were destroyed

and later

Sep 22 06:18:40 host time-sliderd: [ID 702911 daemon.emerg] tank is over 95% capacity. All automatic snapshots were destroyed
Sep 22 06:18:40 host time-sliderd: [ID 702911 daemon.notice] 758 automatic snapshots were destroyed

Warning level exceeded: Destroy hourly and daily snapshots, oldest first, until threshold no longer exceeded.
Critical level exceeded: Also destroy weekly snapshots, oldest first, until threshold no longer exceeded.
Emergency level exceeded: Also destroy monthly snapshots, then frequent (15min) snapshots, until threshold no longer exceeded.

We can view the current thresholds as follows

root@host:~# svcprop time-slider | grep level
zpool/critical-level integer 90
zpool/emergency-level integer 95
zpool/warning-level integer 80

And change the thresholds as follows:

svccfg -s time-slider setprop zpool/emergency-level=99
svccfg -s time-slider setprop zpool/critical-level=98
svccfg -s time-slider setprop zpool/warning-level=97
svcadm refresh time-slider

References:
http://arc.opensolaris.org/caselog/LSARC/2008/571/proposal.txt
http://www.stormsail.com/2009/07/06/opensolaris-and-time-slider/

This entry was posted in Uncategorized. Bookmark the permalink.