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-vsementsov@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