[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 0/6] Mirrored writes using blockdev-transaction
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 0/6] Mirrored writes using blockdev-transaction |
Date: |
Wed, 29 Feb 2012 14:37:24 +0100 |
This implements all ingredients to establish mirrored writes.
The drive-reopen command that is used to terminate mirrored writes
is not included in this series.
Tested with the following scenarios:
a) mirror only
1) create base.qcow2 and start QEMU with it
2) Execute the following QMP command
{ "execute": "qmp_capabilities" }
{ "execute": "blockdev-transaction", "arguments":
{'actions': [
{ 'type': 'mirror', 'data' :
{ 'device': 'ide0-hd0', 'target': '/home/pbonzini/mirror.qcow2' } } ] } }
{ "execute": "cont" }
3) hibernate the guest (this requires an IDE disk and -cpu kvm64,-kvmclock)
4) restart the guest with mirror.qcow2
b) atomic snapshot+mirror
1) start QEMU with an existing image test.img
2) Execute the following QMP command
{ "execute": "qmp_capabilities" }
{ "execute": "blockdev-transaction", "arguments":
{'actions': [
{ 'type': 'snapshot', 'data' :
{ 'device': 'ide0-hd0', 'snapshot-file': '/home/pbonzini/base.qcow2' } },
{ 'type': 'mirror', 'data' :
{ 'device': 'ide0-hd0', 'target': '/home/pbonzini/mirror.qcow2' } } ] } }
{ "execute": "cont" }
3) hibernate the guest (this requires an IDE disk and -cpu kvm64,-kvmclock)
4) check that mirror.qcow2 has test.img as the base
5) restart the guest with base.qcow2
6) restart the guest with mirror.qcow2
Marcelo Tosatti (1):
Add blkmirror block driver
Paolo Bonzini (5):
fix format name for backing file
qapi: complete implementation of unions
rename blockdev-group-snapshot-sync
add reuse field
add mirroring to blockdev-transaction
Makefile.objs | 2 +-
block/blkmirror.c | 153 +++++++++++++++++++++++++++++++++++++++++++++
blockdev.c | 111 +++++++++++++++++++++-----------
docs/blkmirror.txt | 16 +++++
qapi-schema-test.json | 10 +++
qapi-schema.json | 51 ++++++++++++---
qmp-commands.hx | 66 +++++++++++++-------
scripts/qapi-types.py | 5 ++
scripts/qapi-visit.py | 31 +++++++++-
test-qmp-input-visitor.c | 19 ++++++
test-qmp-output-visitor.c | 35 ++++++++++
11 files changed, 426 insertions(+), 73 deletions(-)
create mode 100644 block/blkmirror.c
create mode 100644 docs/blkmirror.txt
--
1.7.7.6
- [Qemu-devel] [PATCH 0/6] Mirrored writes using blockdev-transaction,
Paolo Bonzini <=