Ping... Does anyone have time to review this patchset? The block replication is not only for COLO. All other HA/FT can reuse it(for example, microcheckpoint).
Thanks Wen Congyang On 07/07/2015 04:42 PM, Wen Congyang wrote: > 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 >