Skip site navigation (1)Skip section navigation (2)
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>