* Wen Congyang (we...@cn.fujitsu.com) 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-v7 > > You can get ths patch with framework here: > https://github.com/wencongyang/qemu-colo/commits/colo_framework_v7.2
Hi, I seem to be having problems with the new listed syntax on the wiki; on the secondary I'm getting the error Block format 'replication' used by device 'virtio0' doesn't support the option 'export' ./try/bin/qemu-system-x86_64 -enable-kvm -nographic \ -boot c -m 4096 -smp 4 -S \ -name debug-threads=on -trace events=trace-file \ -netdev tap,id=hn0,script=$PWD/ifup-slave,\ downscript=no,colo_script=$PWD/qemu/scripts/colo-proxy-script.sh,colo_nicname=em4 \ -device e1000,mac=9c:da:4d:1c:b5:89,id=net-pci0,netdev=hn0 \ -device virtio-rng-pci \ -drive if=none,driver=raw,file=/home/localvms/bugzilla.raw,id=colo1,cache=none,aio=native \ -drive if=virtio,driver=replication,mode=secondary,export=colo1,throttling.bps-total-max=70000000,\ file.file.filename=$TMPDISKS/colo-active-disk.qcow2,\ file.driver=qcow2,\ file.backing.file.filename=$TMPDISKS/colo-hidden-disk.qcow2,\ file.backing.driver=qcow2,\ file.backing.backing.backing_reference=colo1,\ file.backing.allow-write-backing-file=on \ -incoming tcp:0:8888 This is using 6fd6ce32 from the colo_framework_v7.2 tag. What have I missed? Dave P.S. the name 'file.backing.backing.backing_reference' is not nice! > > TODO: > 1. Continuous block replication. It will be started after basic functions > are accepted. > > Changs Log: > V7: > 1. Implement adding/removing quorum child. Remove the option non-connect. > 2. Simplify the backing refrence option according to Stefan Hajnoczi's > suggestion > V6: > 1. Rebase to the newest qemu. > 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 (17): > 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 > > block.c | 198 +++++++++++++++++- > 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 | 179 +++++++++++++++++ > hmp-commands.hx | 28 +++ > include/block/block.h | 11 + > 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, 1303 insertions(+), 47 deletions(-) > create mode 100644 block/replication.c > create mode 100644 docs/block-replication.txt > > -- > 2.4.3 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK