On Sat, 01/30 13:56, Vladimir Sementsov-Ogievskiy wrote: > Hi all. > > These series which aims to add external backup api. This is needed to allow > backup software use our dirty bitmaps. > > Vmware and Parallels Cloud Server have this feature.
What is the advantage of this appraoch over "drive-backup sync=incremental ..."? > > There are three things are done: > - add query-block-dirty-bitmap-ranges qmp command > - add qmp commands for dirty-bitmap functions: create_successor, abdicate, > reclaim. > - make create-successor command transaction-able > > Then, external backup should be done like this: > > 1. qmp transaction { > external-snapshot > bitmap-create-successor > } > > 2. qmp query frozen bitmap, not acquiring aio context. What do you do with the query response, read the snapshot image with an external tool? Fam > > 3. do external backup, using snapshot and bitmap > > > 4. if (success backup) > qmp bitmap-abdicate > else > qmp bitmap-reclaime > > 5. qmp merge snapshot > > > v2: a lot of additions and changes, no sense to compare with v1 > > > Vladimir Sementsov-Ogievskiy (6): > block dirty bitmap: add next_zero function > qmp: add query-block-dirty-bitmap-ranges > iotests: test query-block-dirty-bitmap-ranges > qapi: add qmp commands for some dirty bitmap functions > qapi: make block-dirty-bitmap-create-successor transaction-able > iotests: test external backup api > > block/dirty-bitmap.c | 60 ++++++++++++++++++++++ > blockdev.c | 113 +++++++++++++++++++++++++++++++++++++++++ > include/block/dirty-bitmap.h | 9 ++++ > include/qemu/hbitmap.h | 8 +++ > qapi-schema.json | 4 +- > qapi/block-core.json | 90 +++++++++++++++++++++++++++++++++ > qmp-commands.hx | 118 > +++++++++++++++++++++++++++++++++++++++++++ > tests/qemu-iotests/150 | 88 ++++++++++++++++++++++++++++++++ > tests/qemu-iotests/150.out | 21 ++++++++ > tests/qemu-iotests/151 | 77 ++++++++++++++++++++++++++++ > tests/qemu-iotests/151.out | 7 +++ > tests/qemu-iotests/group | 2 + > util/hbitmap.c | 26 ++++++++++ > 13 files changed, 622 insertions(+), 1 deletion(-) > create mode 100755 tests/qemu-iotests/150 > create mode 100644 tests/qemu-iotests/150.out > create mode 100755 tests/qemu-iotests/151 > create mode 100644 tests/qemu-iotests/151.out > > -- > 1.8.3.1 >