From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34868) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZBMqv-0005eT-Oi for qemu-devel@nongnu.org; Sat, 04 Jul 2015 08:47:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZBMqu-0001ON-4O for qemu-devel@nongnu.org; Sat, 04 Jul 2015 08:47:29 -0400 Message-ID: <5597D5BA.6030500@gmail.com> Date: Sat, 04 Jul 2015 20:46:50 +0800 From: Wen Congyang MIME-Version: 1.0 References: <1435635285-5804-1-git-send-email-wency@cn.fujitsu.com> <20150703153011.GD2142@work-vm> In-Reply-To: <20150703153011.GD2142@work-vm> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH COLO-BLOCK v7 00/17] Block replication for continuous checkpoints List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Dr. David Alan Gilbert" , Wen Congyang Cc: Kevin Wolf , Fam Zheng , Lai Jiangshan , qemu block , Jiang Yunhong , Dong Eddie , qemu devel , Max Reitz , Stefan Hajnoczi , Paolo Bonzini , Yang Hongyang At 2015/7/3 23:30, Dr. David Alan Gilbert Wrote: > * Wen Congyang (wency@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 Sorry, the option export is removed, because we use the qmp command nbd-server-add to let a BB be NBD server. > > 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! Which name is better? My native language is not English, so any such suggestion is welcome. Thanks Wen Congyang > >> >> 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 / dgilbert@redhat.com / Manchester, UK > >