Hi Tim,
thank you for your comments.
Bringing in SMF is an excellent idea and should make what admins like to
do much more elegant.
I guess the question here is to find out:
- What degree of canned functionality is needed to address 80% of every admin's
need.
- Who should provide the functionality: The ZFS core team, a community of
people (inside OpenSolaris or outside) or some person/group who take this
as their personal project and maybe publishes it.
We're probably more than half way through the first. Maybe it's time to create
a project under the opensolaris community to nail down the second and start
thinking of what functionality is really needed to be inside ZFS to make our
life with integrating SMF support for managing snapshots easier.
I'm not sure user-defined properties in ZFS is the solution. Depending on the
apps, scripts and users using such properties, pools, filesystems and snapshots
can easily be polluted with lots of properties that someone thought might be
useful. Perhaps it may be more beneficial to go through the process of
discussing and deciding which set of properties would make snapshot management
much easier, then go with it.
Best regards,
Constantin
Tim Foster wrote:
Hey Constantin,
On Mon, 2006-05-08 at 11:37 +0200, Constantin Gonzalez wrote:
I took the liberty of renaming the thread to $SUBJECT because I think that what
we really are looking for is an ability for ZFS to automatically manage snapshot
after they have been created.
Wow, nice summary of the problem!
I thought I'd add a few ideas into the fray.
Here's what I was thinking could be fairly quick to implement, which
administrators could build upon if necessary.
I believe we certainly should provide a way for users to schedule
automatic snapshots, but probably not build it into the filesystem
itself (imho - ZFS is a filesystem dammit Jim, not a backup solution!)
This could be easily implemented via a set of SMF instances which
create/destroy cron jobs which would themselves call a simple script
responsible for taking the snapshots.
Of course, this isn't as flexible as an administrator writing their own
scripts, but it could be enough for most users, with those that want
more functionality being able to build on this functionality.
So, it's not as intelligent as the daemon Bill was suggesting, we
wouldn't poll the FS to reap snapshots when space is limited. For that
functionality, I'd hope for an as-yet-nonexistent ZFS FMA event to
report that some pools are getting short on space, which could be the
trigger for deleting these auto-snapshots if necessary (I'd also
imagine lots of other things would be interested in keying off such an
event as well...)
The service that we could have for taking auto snapshots could be called
/system/filesystem/zfs/auto-snapshot
We'd have one instance per set of automatic snapshots taken. Which isn't
to say we need one instance per filesystem, as we could define instances
that snapshot all child filesystems contained this top level filesystem.
/system/filesystem/zfs/auto-snapshot:[fs-name]
The properties we'd have for each instance are:
- interval = minutes | hours | days | months | years
- period = take snapshots every how many [interval]s
- keep = number of snapshots to keep before rolling over
(delete the oldest when we hit the limit)
- offset = # seconds into the start of the period
at which we take the snapshot ( < period * interval)
- snapshot-children = true | false
Here's some examples of SMF instances that would implement
auto-snapshots.
The following instance takes a snapshot every 4 days, at 01:00, keeping
30 snapshots into the past :
/system/filesystem/zfs/auto-snapshot:tank
interval = days
period = 4
keep = 30
offset = (60 * 60)
snapshot-children = false
This instance takes a weekly snapshot, keeping the last two, and will
snapshot all children of export/home/timf[1] :
/system/filesystem/zfs/auto-snapshot:export/home/timf
interval = days
period = 7
keep = 2
offset = 0
snapshot-children = true
Essentially, I'm really just suggesting a glorified interface to cron,
so why not just use cron ? Well, I suspect having a service like this
would be easier to manage than a heap of cron jobs : at a glance, I can
tell which auto-snapshots are being taken, when and how. I also like the
idea of tieing into SMF, since that means other options, like the GUI
interfaces in the Visual Panels project, may become available in the
future.
Anyway, that's what I was thinking of (and it wouldn't be too hard to
implement) I've no doubt this could be refined - but does anyone think
this is the right direction to go in ?
cheers,
tim
[1] I'm not yet sure if SMF instance names are allowed '/' chars, sorry
[2] http://blogs.sun.com/roller/page/dep?entry=visual_panels_debut
--
Constantin Gonzalez Sun Microsystems GmbH, Germany
Platform Technology Group, Client Solutions http://www.sun.de/
Tel.: +49 89/4 60 08-25 91 http://blogs.sun.com/constantin/
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss