[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 for-6.2 0/6] push backup with fleecing
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v2 for-6.2 0/6] push backup with fleecing |
Date: |
Wed, 21 Jul 2021 17:04:18 +0300 |
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: <20210721100555.45594-1-vsementsov@virtuozzo.com>
([PATCH v6 00/33] block: publish backup-top filter)
v2:
01: changed to simply check s->target->perm
06: make explicit immutable-source parameter instead of auto-detecting
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
qapi: backup: add immutable-source paramter
iotests/image-fleecing: test push backup with fleecing
qapi/block-core.json | 12 ++-
block/copy-before-write.h | 1 +
include/block/block_int.h | 1 +
include/sysemu/block-backend.h | 2 +-
block.c | 3 +-
block/backup.c | 71 ++++++++++++-
block/block-backend.c | 2 +-
block/block-copy.c | 18 +++-
block/copy-before-write.c | 48 ++++++++-
block/replication.c | 2 +-
blockdev.c | 1 +
tests/qemu-iotests/tests/image-fleecing | 105 +++++++++++++++-----
tests/qemu-iotests/tests/image-fleecing.out | 61 ++++++++++++
13 files changed, 287 insertions(+), 40 deletions(-)
--
2.29.2
- [PATCH v2 for-6.2 0/6] push backup with fleecing,
Vladimir Sementsov-Ogievskiy <=
- [PATCH v2 1/6] block/block-copy: use write-unchanged for fleecing scheme, Vladimir Sementsov-Ogievskiy, 2021/07/21
- [PATCH v2 2/6] block/copy-before-write: require BLK_PERM_WRITE_UNCHANGED for fleecing, Vladimir Sementsov-Ogievskiy, 2021/07/21
- [PATCH v2 3/6] block: share writes on backing child of fleecing node, Vladimir Sementsov-Ogievskiy, 2021/07/21
- [PATCH v2 4/6] block: blk_root(): return non-const pointer, Vladimir Sementsov-Ogievskiy, 2021/07/21
- [PATCH v2 5/6] qapi: backup: add immutable-source paramter, Vladimir Sementsov-Ogievskiy, 2021/07/21
- [PATCH v2 6/6] iotests/image-fleecing: test push backup with fleecing, Vladimir Sementsov-Ogievskiy, 2021/07/21