[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#947919: schroot: Support for ZFS snapshotting



On Sun, Jan 05, 2020 at 09:16:34AM +0000, Roger Leigh wrote:
> > Ok, you're right that I haven't done anything wrt 'zfs promote'.  Prior to
> > switching to zfs, all of my schroot work used the lvm-snapshot type, which
> > has the same limitation you describe here: session clones taken while the
> > source chroot is in the process of being updated end up cloning some
> > intermediate state.  I have never had a problem with this limitation in
> > practice, since my usage of schroot is entirely human-driven, so it's very
> > easy for me to avoid launching new schroots while in the middle of a
> > "maintenance window".

> > Being able to update the source atomically certainly seems like a nice
> > enhancement, but given that the implementation is currently at parity with
> > the lvm-snapshot type, I am not likely to invest effort in this myself at
> > this time.

> In this case, I think you should copy the btrfs-snapshot approach and make
> the source chroot a "directory" chroot type.  Then it will operate directly
> on the source dataset.  That is to say:

> sbuild::chroot::ptr
> chroot_zfs_snapshot::clone_source () const
> {
>   ptr clone(new chroot_zfs_snapshot(*this));
> 
> ...
> 
> should be
> 
> chroot_zfs_snapshot::clone_source () const
> {
>   ptr clone(new chroot_directory(*this));
> 
>   chroot_facet_source_clonable::const_ptr psrc
>     (get_facet<chroot_facet_source_clonable>());
>   assert(psrc);
> 
>   psrc->clone_source_setup(*this, clone);
> 
>   return clone;
> }

I did look into this as an option, but got tangled up because the source of
a zfs clone is not a directory, it's a dataset - which means it is not an
absolute filesystem path and is not stat()able.  Rather than hacking the
directory implementation to relax these constraints and make it compatible
with zfs, I decided to keep the zfs implementation self-contained.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                   https://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org

Attachment: signature.asc
Description: PGP signature


Reply to: