Proposal: enhancing zfs hold, atomic holds on create, snap and receive
Borja Marcos
borjam at sarenet.es
Tue Feb 24 16:43:59 UTC 2015
Hi :)
I''ve been doing some incremental replication work with ZFS, and I am using holds to prevent user errors.
When someone destroys the wrong snapshot, a dataset must be sent wholly beacuse it's no longer
possible to perform an incremental send. A hold can prevent it, marking the snapshot as "critical for incremental
replication". Of course holds are even better as you can assign several labelled holds
to a single snapshot, so that each hold can represent a different reason to keep it.
But there's a missing feature which would make them as perfect as they can get: holds
are somewhat of an afterthough, a second class citizen compared to properties and, unlike properties,
you can't (for example) place a hold atomically on a snapshot when creating it.
ZFS has a nice feature that allows you to create an object (snapshot or dataset) and, *atomically* assign a property to it.
The same feature applies to create and clone, of course, although it doesn´t to receive, which might be useful.
So, the proposal is to add a "-h hold1,hold2,..holdN" option to "zfs snap" and ideally zfs receive, so that a hold would be
placed atomically with the snapshot creation.
This feature would prevent some possible race conditions in snapshot management, which would make them much more useful.
I imagine that the -o option as added with the same purpose.
What do you think?
Thanks!
Borja.
More information about the freebsd-fs
mailing list