[libvirt] [Qemu-devel] [PATCH v4] XBZRLE delta for live migration of large memory apps

Anthony Liguori anthony at codemonkey.ws
Thu Aug 11 13:00:20 UTC 2011


On 08/11/2011 03:03 AM, Shribman, Aidan wrote:
>> From: Anthony Liguori [mailto:anthony at codemonkey.ws]
>> Sent: Wednesday, August 10, 2011 10:28 PM
>> To: Avi Kivity
>> Cc: Blue Swirl; Stefan Hajnoczi; Shribman, Aidan; qemu-devel
>> Developers; libvir-list at redhat.com
>> Subject: Re: [Qemu-devel] [PATCH v4] XBZRLE delta for live migration of
>> large memory apps
>
>> a) A query-migration-caps command that returns a dict with two lists of
>> strings.  Something like:
>>
>> { 'execute': 'query-migration-caps' }
>> { 'return' : { 'capabilities': [ 'xbzrle' ], 'current': [] } }
>>
>> b) A set-migration-caps command that takes a list of strings.  It
>> simply
>> takes the intersection of the capabilities set with the argument and
>> sets the current set to the result.  Something like:
>>
>> { 'execute': 'set-migration-caps', 'arguments': { 'set': [ 'xbzrle' ]
>> }}
>> { 'return' : {} }
>
> We may want to further sub-divide capabilities into categories:
> { 'execute': 'query-migration-caps' }
> { 'return' :
>    { 'encoding' : { 'current', 'asn.1', 'proto2', 'thrift', etc. } },
>    { 'delta' : { 'xbzrle', "xdelta", ...} },
>    { 'compression' : { 'snappy', 'lzo' } } }
> This would help libvirt/management to select features automatically or manually (via UI) without having to 'understand' the any given capability meaning.

I would prefer caps to be mostly transparent to libvirt.  In fact, I'd 
like to see exactly three caps: xbzrle, asn1, and autonegotiate.

I'd like to move the caps negotation into the protocol itself.

>> Yes.  But that negotiation needs to become part of the "protocol" for
>> migration.  In the absence of that negotiation, we need to use the wire
>> protocol we use today.  We cannot have ad-hoc feature negotiation for
>> every change we make to the wire protocol.
>
> Agreed. Therefore caps plus xbzrle could be added before ASN.1/v1.0 without breaking anything as long as when 'set-migration-caps' is not issued Qemu uses the current protocol.

Exactly.

Regards,

Anthony Liguori

> Aidan
>




More information about the libvir-list mailing list