Ok, but I don't want to keep old snapshots of the child volumes. Only
the latest and then diffing it in regards to the master. Would that be
possible?
On 2019-02-18 23:28, Chris Murphy wrote:
On Mon, Feb 18, 2019 at 2:36 PM André Malm <ad...@sheepa.org> wrote:
The reason why I'm using reflinks instead of snapshots is because the
master subvolume is large and will contain hundreds of gigabytes worth
of data. Now if I change / remove, say 10 GB worth of data from the
master subvolume unrelated to the child subvolume I don't want those
gigabytes sent down the wire with btrfs send as they are unrelated. Also
I want to be able to after time, when required, add more data from the
master subvolume to the child. Thats why I can't split the master
subvolume into parts of related data.
OK, is it your plan to have both master and child on the destination
Btrfs? So you plan to do a 'btrfs send' without -p option to send the
entire master subvolume (snapshot) to destination first? And then you
want to create the child efficiently using a difference between master
and child? Yes I think that might work but I haven't tried it. But of
course, master must already be on the destination.
btrfs sub create master
##populate the master
btrfs sub create childofmaster
cp --reflink master/bunchoffiles childofmaster/
btrfs sub snap -r master master.20190218-initial
btrfs sub snap -r childofmaster childofmaster.20190218-initial
btrfs send master.20190218-initial | btrfs receive /destination/
btrfs send -p master.20190218-initial childofmaster.20190218-initial |
btrfs receive /destination/
However your subsequent incremental send/receive has nothing to do
with master anymore; you indicate above you don't intent to keep
master up to date on the destination. Just child. In that case the
incremental changes look like this:
cp --reflink master/morefiles childofmaster/
btrfs sub snap -r childofmaster childofmaster.20190218T1905
btrfs send child -p childofmaster.20190218-initial
childofmaster.20190218T1905 | btrfs receive /destination/
cp --reflink master/yetmorefiles childofmaster/
btrfs sub snap -r childofmaster childofmaster.20190219T1301
btrfs send child childofmaster.20190218T1905
childofmaster.20190218T1905 | btrfs receive /destination/