Matthew Ahrens wrote:>> now wouldnt it be more natural way of usage when I intend to create a
>> clone, that by default
>> the zfs clone command will create the needed snapshot from the current
>> image internally as part
>> of taking the clone unless I explicitely specify that I do want to
>> take a clone of a specific snapshot ?
> While that might be convenient, hiding what''s really going on can
result
> in confusion.
> So really, administrators need to be aware of the underlying snapshot.
> Therefore, providing a "clone a fs by taking a snapshot under the
> covers" feature would serve only as syntactic sugar. I believe that
the
> potential for confusion outweighs this benefit.
I agree with both of you.
I agree with Frank that there should be the ability to run a single ZFS
command to create a clone without the admin need to manually create a
snapshot first. This isn''t a reduction from one command to two in
scripting but more like three or four commands because you would need to
calculate a snapshot name then snapshot with that then use it to clone.
I agree completely with Matt that we should never hide the fact from the
admin that for a clone you need a snapshot to first exist.
What I would like to see it that zfs clone when given an additional
argument creates the snapshot and the clone for you. This means we need
a way to name the snapshots to ensure they will never clash, I''d
suggest
using the date and time in an ISO format eg:
$ zfs clone -s homes/template/user homes/bob
Would be equivalent to doing the following:
$ snapname=`date +%F:%T`
$ zfs snapshot homes/template/user@$snapname
$ zfs clone homes/template/user@$snapname homes/bob
In both cases running zfs list would show the snapshot.
Where this becomes really useful is if we also had ''-r'' for
clones, for
example cloning a whole part os the namesoace might go something like this:
$ snapname=`date +%F:%T`
$ zfs snapshot -r homes@$snapname
$ for i in `zfs list -t snapshot -H -o name | sort | tail -1` ; do
zfs clone $i nhomes/${i%%$snapname}
done
If we had implicit snapshot with clones and a recursive capability
we could do this:
$ zfs clone -s -r homes nhomes
Its a easy of use thing in the UI, just like when running zpool to
create a new pool you get the top level filesystem without running zfs
create.
It could also be used when cloneing zones using zoneadm(1M), that
currently uses @SUNWzone as a prefix of the snapshot name.
Now I don''t think this is particularly high priority, I''d much
rather
see ''-r'' for zfs send/recv before I saw this.
--
Darren J Moffat