On 05/28/2015 12:59 PM, Wen Congyang wrote: > Ping... Does anybody have time to review it.
Thanks Wen Congyang > > On 05/21/2015 12:52 PM, Wen Congyang wrote: >> 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-v5 >> >> The other newest COLO patchse will be sent soon. >> >> TODO: >> 1. Continuous block replication. It will be started after basic functions >> are accepted. >> >> Changs Log: >> V5: >> 1. Address the comments from Gong Lei >> 2. Speed the failover up. The secondary vm can take over very quickly even >> if there are too many I/O requests. >> V4: >> 1. Introduce a new driver replication to avoid touch nbd and qcow2. >> 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 (15): >> docs: block replication's description >> 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 >> Don't allow a disk use backing reference target >> Add new block driver interface to connect/disconnect the remote target >> NBD client: implement block driver interfaces to connect/disconnect >> NBD server >> Introduce a new -drive option to control whether to connect to remote >> target >> NBD client: connect to nbd server later >> Add new block driver interfaces to control block replication >> skip nbd_target when starting block replication >> quorum: implement block driver interfaces for block replication >> quorum: allow ignoring child errors >> Implement new driver for block replication >> >> block.c | 272 +++++++++++++++++++++++++++- >> block/Makefile.objs | 3 +- >> block/backup.c | 13 ++ >> block/nbd.c | 69 +++++-- >> block/quorum.c | 142 ++++++++++++++- >> block/replication.c | 441 >> +++++++++++++++++++++++++++++++++++++++++++++ >> blockdev.c | 8 + >> blockjob.c | 10 + >> docs/block-replication.txt | 179 ++++++++++++++++++ >> include/block/block.h | 10 + >> include/block/block_int.h | 18 ++ >> include/block/blockjob.h | 12 ++ >> qapi/block.json | 16 ++ >> qemu-options.hx | 4 + >> tests/qemu-iotests/051 | 13 ++ >> tests/qemu-iotests/051.out | 13 ++ >> 16 files changed, 1193 insertions(+), 30 deletions(-) >> create mode 100644 block/replication.c >> create mode 100644 docs/block-replication.txt >> > > > . >