[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 0/6] Mirrored writes using blockdev-transacti
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH v2 0/6] Mirrored writes using blockdev-transaction |
Date: |
Mon, 05 Mar 2012 09:53:14 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20120209 Thunderbird/10.0.1 |
Am 01.03.2012 22:10, schrieb Anthony Liguori:
> On 03/01/2012 05:21 AM, Paolo Bonzini wrote:
>> 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" }
>
> We don't have schema introspection today. How would one determine when new
> transaction types are available?
>
> I think we need some sort of introspection method too in order for clients to
> figure out when the command is extended.
How about coupling the types with independently available commands for
now? We would rename 'snapshot' to 'blockdev-snapshot-sync', which does
the same thing outside of transactions. The mirror patches would then
introduce a 'drive-mirror' top-level command at the same time as they
introduce a 'drive-mirror' transaction type.
Kevin
- [Qemu-devel] [PATCH v2 5/6] Add blkmirror block driver, (continued)
- [Qemu-devel] [PATCH v2 5/6] Add blkmirror block driver, Paolo Bonzini, 2012/03/01
- [Qemu-devel] [PATCH v2 3/6] rename blockdev-group-snapshot-sync, Paolo Bonzini, 2012/03/01
- [Qemu-devel] [PATCH v2 6/6] add mirroring to blockdev-transaction, Paolo Bonzini, 2012/03/01
- Re: [Qemu-devel] [PATCH v2 0/6] Mirrored writes using blockdev-transaction, Luiz Capitulino, 2012/03/01
- Re: [Qemu-devel] [PATCH v2 0/6] Mirrored writes using blockdev-transaction, Anthony Liguori, 2012/03/01
- Re: [Qemu-devel] [PATCH v2 0/6] Mirrored writes using blockdev-transaction,
Kevin Wolf <=
- Re: [Qemu-devel] [PATCH v2 0/6] Mirrored writes using blockdev-transaction, Anthony Liguori, 2012/03/05
- Re: [Qemu-devel] [PATCH v2 0/6] Mirrored writes using blockdev-transaction, Paolo Bonzini, 2012/03/05