Hi all! Here is push-backup with fleecing. What is it:
1. Make fleecing scheme guest blk | |root v copy-before-write filter -------> temp qcow2 | | |file | backing V | active disk <------------------------- 2. Start backup job from temp qcow2 to final remote target (NBD or something) Benefit in comparison with simple backup job: for remote final target write operations are not very fast. And guest have to wait for copy-before-write operations. With fleecing scheme target for copy-before-write operations is local qcow2 file with faster access than actual backup target. So, guest is less disturbed by copy-before-write operations. Based-on: <20210520142205.607501-1-vsement...@virtuozzo.com> ([PATCH v2 00/33] block: publish backup-top filter) Vladimir Sementsov-Ogievskiy (6): block/block-copy: use write-unchanged for fleecing scheme block/copy-before-write: require BLK_PERM_WRITE_UNCHANGED for fleecing block: share writes on backing child of fleecing node block: blk_root(): return non-const pointer block/backup: don't insert filter if no writers iotests/image-fleecing: test push backup with fleecing block/copy-before-write.h | 1 + include/sysemu/block-backend.h | 2 +- block.c | 3 +- block/backup.c | 55 ++++++++++- block/block-backend.c | 2 +- block/block-copy.c | 14 ++- block/copy-before-write.c | 48 ++++++++- tests/qemu-iotests/tests/image-fleecing | 104 +++++++++++++++----- tests/qemu-iotests/tests/image-fleecing.out | 60 +++++++++++ 9 files changed, 252 insertions(+), 37 deletions(-) -- 2.29.2