El dom, 6 dic 2020 a las 22:52, Chris Murphy (<li...@colorremedies.com>)
escribió:

> On Sun, Dec 6, 2020 at 3:54 PM Sergio Belkin <seb...@gmail.com> wrote:
> >
> > Hi,
> > Let's say that I have 2 subvolumes for both / and /home.  What happen
> with a snapshot of /home if I run before :
> > chattr +C /home/jdoe/VMs ?
>
> If /home/jdoe/VMs is a directory, then it and its contents are
> included in the snapshot. And it means nodatacow extents have become
> shared extents. Writes to shared extents are always cow, even if
> marked as nocow. So the initial VM "overwrite" to a shared extent will
> be cow to a new extent that is exclusive, not shared. Subsequent
> writes to that same exclusive extent will be nocow, i.e. an overwrite.
>
> This same principle applies to reflink copies of any file, whether on
> Btrfs or XFS. A reflink copy also causes extents to become shared
> extents.
>
> My suggestion is to put the VM images in their own subvolume. i.e.
> from ~/ just do:
>
> btrfs sub create VMs
>
> Since Btrfs snapshots are not recursive [1] and instead stop at
> subvolume boundaries, a snapshot of ~/ will not snapshot ~/VMs.
>
> [1] https://github.com/kdave/btrfs-progs/tree/master/libbtrfsutil
> libbtrfsutil provies a C API and python bindings making it possible to
> do recursive snapshot creation and deletion; but this is not exposed
> in the user space tools for a number of reasons, mainly it's
> potentially confusing and risky since btrfs subvolumes and snapshots
> can be created anywhere without any meaningful limits beyond what the
> user institutes. Another advantage of libbtrfsutil is it provides an
> _fd variant of subvolume/snapshot creation and deletion, meaning there
> doesn't need to be a "line of sight" path to the source or destination
> via the mounted file system. Ergo, in effect creating "hidden"
> subvolumes and snapshots; "hidden" as in they're not in the normal
> mounted file system path. A user can of course always mount the
> top-level of the file system and see all such subvolumes.
>
>
> --
> Chris Murphy
>

Thanks Chris, nice explanation
-- 
--
Sergio Belkin
LPIC-2 Certified - http://www.lpi.org
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

Reply via email to