From: "Daniel P. Berrange" <berrange@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Blue Swirl <blauwirbel@gmail.com>,
"libvir-list@redhat.com" <libvir-list@redhat.com>,
"Shribman, Aidan" <aidan.shribman@sap.com>,
Avi Kivity <avi@redhat.com>,
qemu-devel Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [libvirt] [PATCH v4] XBZRLE delta for live migration of large memory apps
Date: Thu, 11 Aug 2011 10:24:59 +0100 [thread overview]
Message-ID: <20110811092459.GB28218@redhat.com> (raw)
In-Reply-To: <4E42DBAD.5030900@codemonkey.ws>
On Wed, Aug 10, 2011 at 02:27:41PM -0500, Anthony Liguori wrote:
> On 08/10/2011 11:40 AM, Avi Kivity wrote:
> Instead of teaching management tools how to deal with all of these
> things, let's just fix this problem once. It just takes:
>
> 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 have a number of commands to set migration parameters (bandwidth,
max downtime, etc). One thing that has always troubled me with this,
is that they are a global setting for QEMU, not simply the next
migration command. This is fine if you expect that only a single
'migrate' command will ever be invoked during the lifetime of QEMU,
but this doesn't hold true when we use 'migrate' as a means to
implement saving of snapshots/save-to-file, or "core" dumps.
For example, when libvirt does 'save to file', we want to set the
max bandwidth to unlimited for that, but we don't want that 'unlimited'
setting to apply to a future cross-host migration attempt. This means
we have to send three commands
migrate_set_speed 9223372036854775808
migrate file:/some/file
migrate_set_speed 33554432
it doubly sucks because there is no way to reset the migration speed
to the QEMU default, so we have to hardcoded (32 << 20) which is what
QEMU currently uses.
It would be more desirable if we could simply pass in the desired
speed, compression algorithm, max downtime, etc, as parameters to
the 'migrate' command. And then have 'migrate_set_speed' only
affect the current active migration, not any future ones.
So a 'query-migration-caps' command is nice, but I think having a
set-migration-caps command is wrong. There should just be a 'caps'
parameter for 'migrate'.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
prev parent reply other threads:[~2011-08-11 9:25 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-08 8:42 [Qemu-devel] [PATCH v4] XBZRLE delta for live migration of large memory apps Shribman, Aidan
2011-08-08 13:29 ` Anthony Liguori
2011-08-08 13:41 ` Alexander Graf
2011-08-08 13:46 ` Anthony Liguori
2011-08-08 13:49 ` Avi Kivity
2011-08-08 13:51 ` Avi Kivity
2011-08-08 14:15 ` Anthony Liguori
2011-08-08 14:23 ` Avi Kivity
2011-08-08 14:33 ` Anthony Liguori
2011-08-08 14:39 ` Avi Kivity
2011-08-08 15:08 ` Anthony Liguori
2011-08-08 14:04 ` [Qemu-devel] [libvirt] " Daniel P. Berrange
2011-08-08 14:42 ` Avi Kivity
2011-08-08 14:46 ` [Qemu-devel] " Avi Kivity
2011-08-08 14:47 ` Avi Kivity
2011-08-08 14:56 ` Stefan Hajnoczi
2011-08-08 15:01 ` Avi Kivity
2011-08-08 15:10 ` Anthony Liguori
2011-08-08 15:15 ` Avi Kivity
2011-08-08 16:19 ` Anthony Liguori
2011-08-08 16:53 ` Avi Kivity
2011-08-08 16:55 ` Anthony Liguori
2011-08-10 15:07 ` Shribman, Aidan
2011-08-10 15:12 ` Avi Kivity
2011-08-10 15:58 ` Anthony Liguori
2011-08-10 16:08 ` Avi Kivity
2011-08-10 16:23 ` Anthony Liguori
2011-08-10 16:40 ` Avi Kivity
2011-08-10 19:27 ` Anthony Liguori
2011-08-11 8:03 ` Shribman, Aidan
2011-08-11 13:00 ` Anthony Liguori
2011-08-11 8:17 ` Avi Kivity
2011-08-11 9:16 ` [Qemu-devel] [libvirt] " Daniel P. Berrange
2011-08-11 9:20 ` Avi Kivity
2011-08-11 13:03 ` [Qemu-devel] " Anthony Liguori
2011-08-11 9:24 ` Daniel P. Berrange [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110811092459.GB28218@redhat.com \
--to=berrange@redhat.com \
--cc=aidan.shribman@sap.com \
--cc=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=libvir-list@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).