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/