Date: Sat, 29 May 2010 19:58:24 -0700 From: Garrett Cooper <yanefbsd@gmail.com> To: Kirk Strauser <kirk@strauser.com> Cc: FreeBSD-STABLE Mailing List <freebsd-stable@freebsd.org> Subject: Re: Make ZFS auto-destroy snapshots when the out of space? Message-ID: <AANLkTilpvnh7gpUCYFSHpxrehNhVl3DiO0OFkKcg7MdX@mail.gmail.com> In-Reply-To: <4C017419.9010909@strauser.com> References: <4C017419.9010909@strauser.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, May 29, 2010 at 1:07 PM, Kirk Strauser <kirk@strauser.com> wrote: > I found some nice scripts to regularly snapshot all the filesystems in my > ZFS pool at > http://www.neces.com/blog/technology/integrating-freebsd-zfs-and-periodic-snapshots-and-scrubs > . One thing bothers me, though: I have to intentionally set how many months' > worth of snapshots I want to keep. Too many and I run out of room. Too few > and I lose some of the benefits of easy recovery of deleted data. My > computer is better at bookkeeping than I am, so why not let it? > > I'd propose standardizing on an attribute like org.freebsd:allowautodestroy. > Modify ZFS's disk full behavior to scan for snapshots with that attribute > set and destroy the oldest one, and continue until there's enough free space > to complete a write requests or until out of "expendable" snapshots to > destroy (at which time the normal disk full handler would run). Also run a > daily periodic script to ensure that the free space stays below a > configurable threshold each day so that ZFS isn't constantly butting up > against completely full drives. > > This would take all configuration guesswork out of the equation and would > let me keep as many snapshots as I have space to maintain. If I want to > extend my reach back in time, I can add another drive to the pool and the > rest is handled automatically. At the same time, should I suddenly *want* to > store massive amounts of new data, the snapshots can be easily and > automatically cleared out to make room for the stuff I want to hold. > > What do you think? It seems like this should be pretty easy to implement > without requiring any upstream changes or new FreeBSD-only data structures. > The whole thing could possibly be implemented in userspace, but I don't know > that ZFS has any exception handling callbacks that would make it easy. > > An unused resource is a wasted resource, right? So basically you're saying deal with an LRU snapshot deletion when you reach a certain threshold of free space, type scheme? This might get tricky, but it does lend itself to other systems I suppose (I hate to mention it, but the best one I can think of is Windows' system restore... there might be something else available with OSX's Time Machine). What would be more tricky is when the automated system is filling in a bunch of useless snapshots unnecessarily, but as you'd be providing the snapshot criteria, I suppose that you would know what snapshots you want to save and what ones you want to toss... It's an interesting thought though -- just increases the overall complexity of the system and may only meet one need. Cheers, -Garrett
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTilpvnh7gpUCYFSHpxrehNhVl3DiO0OFkKcg7MdX>