Block replication is a very important feature which is used for continuous checkpoints(for example: COLO).
You can the detailed information about block replication from here: http://wiki.qemu.org/Features/BlockReplication Usage: Please refer to docs/block-replication.txt You can get the patch here: https://github.com/coloft/qemu/tree/wency/block-replication-v8 You can get the patch with framework here: https://github.com/coloft/qemu/tree/wency/colo_framework_v8 TODO: 1. Continuous block replication. It will be started after basic functions are accepted. Wen Congyang (18): Add new block driver interface to add/delete a BDS's child quorum: implement block driver interfaces add/delete a BDS's child hmp: add monitor command to add/remove a child introduce a new API qemu_opts_absorb_qdict_by_index() quorum: allow ignoring child errors introduce a new API to enable/disable attach device model introduce a new API to check if blk is attached block: make bdrv_put_ref_bh_schedule() as a public API Backup: clear all bitmap when doing block checkpoint allow writing to the backing file Allow creating backup jobs when opening BDS block: Allow references for backing files docs: block replication's description Add new block driver interfaces to control block replication skip nbd_target when starting block replication quorum: implement block driver interfaces for block replication Implement new driver for block replication Add a new API to start/stop replication, do checkpoint to all BDSes block.c | 266 ++++++++++++++++++++++++- block/Makefile.objs | 3 +- block/backup.c | 13 ++ block/block-backend.c | 33 +++ block/quorum.c | 244 ++++++++++++++++++++++- block/replication.c | 443 +++++++++++++++++++++++++++++++++++++++++ blockdev.c | 90 ++++++--- blockjob.c | 10 + docs/block-replication.txt | 182 +++++++++++++++++ hmp-commands.hx | 28 +++ include/block/block.h | 15 ++ include/block/block_int.h | 19 ++ include/block/blockjob.h | 12 ++ include/qemu/option.h | 2 + include/sysemu/block-backend.h | 3 + include/sysemu/blockdev.h | 2 + qapi/block.json | 16 ++ util/qemu-option.c | 44 ++++ 18 files changed, 1378 insertions(+), 47 deletions(-) create mode 100644 block/replication.c create mode 100644 docs/block-replication.txt -- 2.4.3