[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 00/14] Block replication for continuous checkpoi
From: |
Wen Congyang |
Subject: |
[Qemu-devel] [RFC PATCH 00/14] Block replication for continuous checkpoints |
Date: |
Thu, 12 Feb 2015 11:07:04 +0800 |
Block replication is a very important feature which is used for
continuous checkpoints(for example: COLO).
Usage:
Primary:
-drive if=xxx,driver=quorum,read-pattern=first,\
children.0.file.filename=1.raw,\
children.0.driver=raw,\
children.1.file.driver=nbd+colo,\
children.1.file.host=xxx,\
children.1.file.port=xxx,\
children.1.file.export=xxx,\
children.1.driver=raw
Note:
1. NBD Client should not be the first child of quorum.
2. There should be only one NBD Client.
3. host is the secondary physical machine's hostname or IP
4. Each disk must have its own export name.
Secondary:
-drive if=xxx,driver=blkcolo,export=xxx,\
backing.file.filename=1.raw,\
backing.driver=raw
Then run qmp command:
nbd_server_start host:port
Note:
1. The export name for the same disk must be the same in primary
and secondary QEMU command line
2. The qmp command nbd_server_start must be run before running the
qmp command migrate on primary QEMU
3. Don't use nbd_server_start's other options
You can get the patch here:
https://github.com/wencongyang/qemu-colo/commits/block-replication-v1
Wen Congyang (14):
docs: block replication's description
quorom: add a new read pattern
quorum: ignore 0-length child
Add new block driver interfaces to control disk replication
quorom: implement block driver interfaces for block replication
NBD client: connect to nbd server later
NBD client: implement block driver interfaces for block replication
block: add a new API to create a hidden BlockBackend
block: give backing image its own BlockBackend
allow the backing image access the origin BlockDriverState
allow writing to the backing file
Add disk buffer for block replication
COW: move cow interfaces to a seperate file
COLO: implement a new block driver
Makefile.objs | 2 +-
block.c | 53 +++++-
block/Makefile.objs | 1 +
block/backup.c | 52 +-----
block/blkcolo-buffer.c | 324 ++++++++++++++++++++++++++++++++
block/blkcolo.c | 409 +++++++++++++++++++++++++++++++++++++++++
block/blkcolo.h | 35 ++++
block/block-backend.c | 29 ++-
block/nbd.c | 155 ++++++++++++++--
block/quorum.c | 79 +++++++-
blockcow.c | 52 ++++++
docs/block-replication.txt | 129 +++++++++++++
include/block/block.h | 27 +++
include/block/block_int.h | 14 ++
include/sysemu/block-backend.h | 2 +
qapi/block-core.json | 4 +-
16 files changed, 1295 insertions(+), 72 deletions(-)
create mode 100644 block/blkcolo-buffer.c
create mode 100644 block/blkcolo.c
create mode 100644 block/blkcolo.h
create mode 100644 blockcow.c
create mode 100644 docs/block-replication.txt
--
2.1.0
- [Qemu-devel] [RFC PATCH 00/14] Block replication for continuous checkpoints,
Wen Congyang <=