qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [Qemu-devel] [RFC PATCH COLO v2 00/13] Block replicatio


From: Michael R. Hines
Subject: Re: [Qemu-block] [Qemu-devel] [RFC PATCH COLO v2 00/13] Block replication for continuous checkpoints
Date: Wed, 01 Jul 2015 14:30:22 -0500
User-agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

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

.


Can you also tell me what's wrong with the primary/source VM command line? Or could you update the documentation please?
Am I using the correct branch?

Here's my command line:

qemu-system-x86_64: -drive if=virtio,driver=quorum,read-pattern=fifo,no-connect=on,children.0.file.filename=/kvm_repo/image.raw,children.0.driver=raw,children.1.file.driver=nbd,children.1.file.host=192.168.168.3,children.1.file.port=6262,children.1.file.export=foo,children.1.driver=replication,children.1.mode=primary,children.1.ignore-errors=on:
Failed to read export length

What exactly is the purpose of the "export" parameter?

Thanks,

- Michael




reply via email to

[Prev in Thread] Current Thread [Next in Thread]