On 06/30/2015 11:11 PM, Wen Congyang wrote:
On 07/01/2015 11:09 AM, Michael R. Hines wrote:
On 03/25/2015 04:36 AM, 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-v2
Changs Log:
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 (13):
docs: block replication's description
quorum: allow ignoring child errors
NBD client: connect to nbd server later
Add new block driver interfaces to control block replication
quorum: implement block driver interfaces for block replication
NBD client: implement block driver interfaces for block replication
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
qcow2: support colo
skip nbd_target when starting block replication
Don't allow a disk use backing reference target
block.c | 242 +++++++++++++++++++++++-
block/Makefile.objs | 2 +-
block/backup.c | 12 ++
block/nbd.c | 171 +++++++++++++++--
block/qcow2.c | 447
++++++++++++++++++++++++++++++++++++++++++++-
block/qcow2.h | 6 +
block/quorum.c | 143 ++++++++++++++-
docs/block-replication.txt | 147 +++++++++++++++
include/block/block.h | 5 +
include/block/block_int.h | 13 ++
include/qemu/hbitmap.h | 8 +
qapi/block.json | 16 ++
tests/qemu-iotests/051 | 13 ++
tests/qemu-iotests/051.out | 13 ++
util/hbitmap.c | 19 ++
15 files changed, 1230 insertions(+), 27 deletions(-)
create mode 100644 docs/block-replication.txt
When I try this patch with the MicroCheckpointing codebase, I'm having trouble
starting up the secondary/backup VM
using the branch "block-replication-v7"
$ qemu-system-x86_64 -drive if=none,driver=raw,file=file.raw,id=nbd_target1
-drive
if=virtio,driver=replication,mode=secondary,export=foo,file.file.filename=active_disk.qcow2,file.driver=qcow2,file.backing_reference.drive_id=nbd_target1,file.backing_reference.hidden-disk.file.filename=hidden_disk.qcow2,file.backing_reference.hidden-disk.driver=qcow2,file.backing_reference.hidden-disk.allow-write-backing-file=on
Block format 'qcow2' used by device '' doesn't support the option
'backing_reference.hidden-disk.allow-write-backing-file'
What am I doing wrong here?
The command is wrong. If you use the branch block-replication-v7, the command
line should like:
-drive
if=none,driver=raw,file=/data/images/kvm/suse/suse11_3.img,id=colo1,cache=none,aio=native
-drive
if=virtio,driver=replication,mode=secondary,throttling.bps-total-max=70000000,file.file.filename=/mnt/ramfs/active_disk.img,file.driver=qcow2,file.backing.file.filename=/mnt/ramfs/hidden_disk.img,file.backing.driver=qcow2,file.backing.allow-write-backing-file=on,file.backing.backing.backing_reference=colo1
Thanks
Wen Congyang
- Michael
.
Also, this command line you sent doesn't have the export option, but
your wiki does. What's the difference?
- Michael