[Top][All Lists]

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

Re: [Qemu-devel] [PATCH COLO-BLOCK v7 00/17] Block replication for conti

From: Wen Congyang
Subject: Re: [Qemu-devel] [PATCH COLO-BLOCK v7 00/17] Block replication for continuous checkpoints
Date: Sat, 04 Jul 2015 20:46:50 +0800
User-agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0

At 2015/7/3 23:30, Dr. David Alan Gilbert Wrote:
* Wen Congyang (address@hidden) wrote:
Block replication is a very important feature which is used for
continuous checkpoints(for example: COLO).

Please refer to docs/block-replication.txt

You can get the patch here:

You can get ths patch with framework here:

   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,\
      -device e1000,mac=9c:da:4d:1c:b5:89,id=net-pci0,netdev=hn0 \
      -device virtio-rng-pci \
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?

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.

Wen Congyang

1. Continuous block replication. It will be started after basic functions
    are accepted.

Changs Log:
1. Implement adding/removing quorum child. Remove the option non-connect.
2. Simplify the backing refrence option according to Stefan Hajnoczi's 
1. Rebase to the newest qemu.
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.
1. Introduce a new driver replication to avoid touch nbd and qcow2.
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
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


Dr. David Alan Gilbert / address@hidden / Manchester, UK

reply via email to

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