Block replication is a very important feature which is used for continuous checkpoints(for example: COLO).
Usage: Please refer to docs/block-replication.txt You can get the patch here: https://github.com/wencongyang/qemu-colo/commits/block-replication-v3 You can get the patch with the other COLO patches here: https://github.com/wencongyang/qemu-colo/tree/colo_huawei_v4.4 Changs Log: V3: 1: use error_setg() instead of error_set() 2. Add a new block job API 3. Active disk, hidden disk and nbd target uses the same AioContext 4. Add a testcase to test new hbitmap API V2: 1. Redesign the secondary qemu(use image-fleecing) 2. Use Error objects to return error message 3. Address the comments from Max Reitz and Eric Blake Wen Congyang (14): docs: block replication's description quorum: allow ignoring child errors NBD client: connect to nbd server later Add new block driver interfaces to control block replication quorum: implement block driver interfaces for block replication NBD client: implement block driver interfaces for block replication allow writing to the backing file Allow creating backup jobs when opening BDS block: Parse "backing_reference" option to reference existing BDS util/hbitmap: Add an API to reset all set bits in hbitmap Backup: clear all bitmap when doing block checkpoint qcow2: support colo skip nbd_target when starting block replication Don't allow a disk use backing reference target block.c | 246 +++++++++++++++++++++++- block/backup.c | 13 ++ block/nbd.c | 171 +++++++++++++++-- block/qcow2.c | 454 ++++++++++++++++++++++++++++++++++++++++++++- block/qcow2.h | 6 + block/quorum.c | 141 +++++++++++++- blockjob.c | 10 + docs/block-replication.txt | 153 +++++++++++++++ include/block/block.h | 6 + include/block/block_int.h | 12 ++ include/block/blockjob.h | 12 ++ include/qemu/hbitmap.h | 8 + qapi/block.json | 16 ++ stubs/Makefile.objs | 1 + stubs/backup.c | 11 ++ tests/qemu-iotests/051 | 13 ++ tests/qemu-iotests/051.out | 13 ++ tests/test-hbitmap.c | 39 ++++ util/hbitmap.c | 16 ++ 19 files changed, 1314 insertions(+), 27 deletions(-) create mode 100644 docs/block-replication.txt create mode 100644 stubs/backup.c -- 2.1.0