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-v2 Changs Log: 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 (13): 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 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 | 242 +++++++++++++++++++++++- block/Makefile.objs | 2 +- block/backup.c | 12 ++ block/nbd.c | 171 +++++++++++++++-- block/qcow2.c | 447 ++++++++++++++++++++++++++++++++++++++++++++- block/qcow2.h | 6 + block/quorum.c | 143 ++++++++++++++- docs/block-replication.txt | 147 +++++++++++++++ include/block/block.h | 5 + include/block/block_int.h | 13 ++ include/qemu/hbitmap.h | 8 + qapi/block.json | 16 ++ tests/qemu-iotests/051 | 13 ++ tests/qemu-iotests/051.out | 13 ++ util/hbitmap.c | 19 ++ 15 files changed, 1230 insertions(+), 27 deletions(-) create mode 100644 docs/block-replication.txt -- 2.1.0