Make ZFS auto-destroy snapshots when the out of space?

David Magda dmagda at ee.ryerson.ca
Mon May 31 02:36:07 UTC 2010


On May 30, 2010, at 22:17, Kirk Strauser wrote:

> For instance, what happens if a disk-full condition occurs 2 minutes  
> before the cron job would have run that would've averted it? At what  
> level do you trigger deletions that would both 1) provide enough of  
> a safety margin that disk-fulls are unlikely, but 2) allow the  
> snapshots to take advantage of as much storage as possible?

What happens now when your UFS file system gets full? :) The situation  
is no worse than that in the case of a pool filling up, regardless of  
whether it's because of an abundance of snapshots or simply lots of  
"regular" user data.

> But we have all sorts of daemons that do stuff behind our back.

Yes, but they're daemons, not kernel code. As a general rule I like to  
be able to do a ps(1) on any one of my systems and be able to describe  
what every single PID does. If it's Amanda, I know what its purpose  
is; if it would be something called auto-snap(8) or auto-scrub(8) or  
auto-snap-clean(8) then I'd have to learn what those are.

An event framework would certainly be helpful in a general sense  
(Linux has event(3) AFAIK), and that could certainly be useful for  
purging snapshots during resource constrained situations. But even if  
we don't have it, I doubt a fork(2) from cron(8) and a statfs(2) would  
be onerous on a system. :)

> That just scrubs the pools, ie verifies checksums and data  
> consistency.

Yes, I know, it was the general principle I was going after: if you  
want something periodic to be checked, you should run it from cron/SMF/ 
launchd/etc.



More information about the freebsd-stable mailing list