From: Anthony Liguori <anthony@codemonkey.ws>
To: Juan Quintela <quintela@trasno.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
qemu-devel@nongnu.org, Gleb Natapov <gleb@redhat.com>
Subject: [Qemu-devel] Re: Live migration protocol, device features, ABIs and other beasts
Date: Mon, 23 Nov 2009 10:44:04 -0600 [thread overview]
Message-ID: <4B0ABBD4.9030401@codemonkey.ws> (raw)
In-Reply-To: <m3y6lxqkpv.fsf@neno.neno>
Juan Quintela wrote:
> you can weasel the way you want (I can also do it).
>
> Customer had: 5.4 <-> 5.4 migration working (suboptimally)
> Now appears 5.4.1 that works best with migration. But he want to do the
> migration in two steps:
>
> migrate from qemu 5.4 -> 5.4.1, and be able to migrate back if he don't
> like it.
>
> At some point, he will migrate to 5.4.1 knowing that it lost backward
> migration. Think of a cluster of machines here, and you just add a
> 5.4.1 machine into the mix, and what this to work while you haven't
> changed _all_ the machines.
>
If I'm a customer and you introduce this sort of change in a .z release,
I would certainly want to know about it and have control over it.
I don't want to transparently migrate from 5.4.1 to 5.4.0 and have my
guest's time start drifting. I specifically want that to fail.
If I wanted to support both models because I didn't care, then I would
start with -M 5.4.0 on all of my nodes. I know you don't have a -M
5.4.1 and -M 5.4.0 but if you're introducing these sort of changes, you
really should.
>> However, if we rely on certain guest behavior, then it blows up the
>> testing matrix because now we have to test every guest with every
>> workload to see whether it works with migration. It's a slippery
>> slope that's hard to get off once you start.
>>
>
> I know :( But life sometimes don't agree with you. Notice that I
> understand that our problem is different that upstream one. Our prolbem
> is more in migrating from 0.11.0 -> 0.11.1, and be able to go back.
> Changes in the savevm are only introduced if there is no other solution.
> But we want to be able to get the 0.11.0 behaviour in 0.11.1, because we
> have a mixed environment. Requesting to upgrade all the hosts at the
> same time is not going to fly with any BOFH :)
>
You've made a policy decision. As a user, I really don't like that
policy decision and it makes me want to make sure that we upgrade all of
our hosts at once to avoid this problem. Of course, I'm a control freak
and I'm particularly concerned about time drift issues as that's been
consuming a bit of my time lately.
>>> But if you know substitute qemu-0.11 and qemu-0.12 for RHEL5.4 and
>>> RHEL5.4.1, you will see that the code bases are going to be really,
>>> really similar. And if any savevm format is changed, it is because
>>> there are no other solution.
>>>
>>>
>> In our own stable branch, we do not introduce any savevm changes. I
>> would recommend the same policy for RHEL :-)
>>
>
> Except if we found a bug, and there are no other solution. That is what
> we try to do. And we would not change the format for a new feature, but
> what happens if it was a bug that a field is really missing?
>
Can we reasonably support a guest that doesn't have this older field?
If the answer is "yes", then it's a feature that can be delayed until
the next release.
>> You may be willing to expose this to your users but as an upstream
>> policy, I'm very opposed to it. You're breaking the contract of
>> migration by changing the guests behavior from underneath it.
>>
>
> The layer inside me:
> - You are lying when you told me that qemu-0.11 -M pc-0.10 gives me a
> pc-0.10 like machine. The savevm format is different.
>
> (after talking about contracts, I couldn't resist)
>
That's a bug that we need to fix.
> I could make more examples to you. But that would just make the
> discussion longer. What we have here is:
>
> - migration beteween 0.11.0 -> 0.11.0 works some way
> - I want "that very way" between 0.11.1 -> 0.11.0.
>
Not a problem as long as we don't introduce features in the stable branch.
>> A better approach would be having an option to "force" a migration
>> across incompatible versions. I think such an option would be pretty
>> dangerous to offer but at least it puts the decision in the hands of
>> the management software where it belongs.
>>
>
> The difference is where you put things. In the source (newer code) or
> in the target (older code). By definition, once that you have changed
> something, you can change it to be backward compatible. What is a bit
> more difficult is to take the time machine, go to the past, and change
> 5.4 to be compatible with 5.4.1. (*)
>
The problem here isn't migration, it's what you've decided to backport
into your stable branch.
Note that the discussion we're having isn't about backporting pvclock to
qemu or qemu/kvm's stable branch. We're not going to change the
migration protocol in upstream to support a decision that we haven't
actually made.
And from an upstream position, I would oppose implementing the pvclock
change in the stable branch exactly because of the problems it would
create with live migration.
Regards,
Anthony Liguori
next prev parent reply other threads:[~2009-11-23 16:44 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-22 15:03 [Qemu-devel] Live migration protocol, device features, ABIs and other beasts Dor Laor
2009-11-22 15:49 ` Anthony Liguori
2009-11-22 20:22 ` [Qemu-devel] " Paolo Bonzini
2009-11-23 2:17 ` Anthony Liguori
2009-11-23 8:18 ` Paolo Bonzini
2009-11-23 13:04 ` Anthony Liguori
2009-11-23 8:26 ` Gleb Natapov
2009-11-23 9:29 ` Paolo Bonzini
2009-11-23 9:31 ` Gleb Natapov
[not found] ` <m3einp4e7c.fsf@neno.neno>
2009-11-23 12:37 ` Gleb Natapov
[not found] ` <m3iqd14edf.fsf@neno.neno>
2009-11-23 12:36 ` Gleb Natapov
[not found] ` <m3r5rpwcww.fsf@neno.neno>
2009-11-23 14:32 ` Gleb Natapov
2009-11-23 14:51 ` Anthony Liguori
2009-11-23 14:53 ` Gleb Natapov
2009-11-23 15:05 ` Anthony Liguori
2009-11-23 15:22 ` Gleb Natapov
2009-11-23 15:30 ` Paolo Bonzini
2009-11-23 15:32 ` Anthony Liguori
2009-11-23 15:49 ` Gleb Natapov
2009-11-23 16:09 ` Anthony Liguori
2009-11-23 16:15 ` Gleb Natapov
2009-11-23 16:19 ` Anthony Liguori
[not found] ` <m33a45s009.fsf@neno.neno>
2009-11-23 16:05 ` Gleb Natapov
2009-11-23 16:10 ` Anthony Liguori
2009-11-24 13:28 ` Michael S. Tsirkin
2009-11-23 13:01 ` Anthony Liguori
[not found] ` <m3vdh1wd0n.fsf@neno.neno>
2009-11-23 14:49 ` Anthony Liguori
2009-11-23 15:21 ` Eduardo Habkost
2009-11-23 16:16 ` Anthony Liguori
2009-11-23 17:08 ` Eduardo Habkost
2009-11-23 18:28 ` Anthony Liguori
2009-11-23 19:24 ` Eduardo Habkost
2009-11-23 19:49 ` Anthony Liguori
2009-11-23 21:21 ` Eduardo Habkost
2009-11-24 11:00 ` Dor Laor
[not found] ` <m3y6lxqkpv.fsf@neno.neno>
2009-11-23 16:44 ` Anthony Liguori [this message]
[not found] ` <m3zl6db11z.fsf@neno.neno>
2009-11-23 18:44 ` Anthony Liguori
2009-11-23 20:24 ` Eduardo Habkost
2009-11-24 13:39 ` Michael S. Tsirkin
2009-11-23 13:51 ` Eduardo Habkost
2009-11-23 14:21 ` Paolo Bonzini
2009-11-23 15:00 ` Anthony Liguori
2009-11-23 15:37 ` Eduardo Habkost
2009-11-23 15:02 ` Eduardo Habkost
2009-11-23 15:12 ` Anthony Liguori
2009-11-24 14:26 ` [Qemu-devel] " Michael S. Tsirkin
2009-11-23 14:53 ` [Qemu-devel] " Anthony Liguori
2009-11-24 14:28 ` [Qemu-devel] " Michael S. Tsirkin
2009-11-24 14:33 ` [Qemu-devel] " Anthony Liguori
2009-11-24 16:05 ` Michael S. Tsirkin
[not found] ` <m3skc2r66t.fsf@neno.neno>
2009-11-25 16:28 ` Michael S. Tsirkin
2009-11-24 13:17 ` [Qemu-devel] " Michael S. Tsirkin
2009-11-24 13:35 ` Paul Brook
2009-11-24 13:49 ` [Qemu-devel] " Michael S. Tsirkin
2009-11-24 13:59 ` [Qemu-devel] " Paul Brook
2009-11-24 14:21 ` Michael S. Tsirkin
2009-11-24 17:06 ` Blue Swirl
2009-11-24 17:08 ` Michael S. Tsirkin
2009-11-24 17:43 ` Paolo Bonzini
2009-11-24 18:51 ` Anthony Liguori
2009-11-24 18:56 ` Blue Swirl
2009-11-24 19:24 ` Anthony Liguori
2009-11-24 18:57 ` Paolo Bonzini
2009-11-24 19:29 ` Anthony Liguori
2009-11-24 20:01 ` Michael S. Tsirkin
[not found] ` <m3my2ct2qe.fsf@neno.neno>
2009-11-24 17:41 ` Paolo Bonzini
2009-11-24 13:21 ` Michael S. Tsirkin
2009-11-24 13:45 ` Anthony Liguori
2009-11-24 13:55 ` Michael S. Tsirkin
2009-11-23 12:15 ` Juan Quintela
2009-11-23 13:09 ` Anthony Liguori
2009-11-23 14:13 ` Juan Quintela
2009-11-24 14:05 ` Michael S. Tsirkin
2009-11-24 14:20 ` Juan Quintela
2009-11-24 14:35 ` Michael S. Tsirkin
2009-11-25 13:42 ` Gerd Hoffmann
2009-11-25 13:42 ` Michael S. Tsirkin
2009-11-25 14:10 ` Gerd Hoffmann
2009-11-25 14:09 ` Michael S. Tsirkin
2009-11-25 14:52 ` Gerd Hoffmann
2009-11-26 18:03 ` Andrea Arcangeli
2009-11-25 13:36 ` Gerd Hoffmann
2009-11-25 13:40 ` Michael S. Tsirkin
2009-11-25 13:59 ` Gerd Hoffmann
2009-11-25 14:03 ` Michael S. Tsirkin
2009-11-25 14:53 ` Juan Quintela
2009-11-25 15:01 ` Michael S. Tsirkin
2009-11-24 10:39 ` Dor Laor
2009-11-24 14:01 ` Michael S. Tsirkin
2009-11-24 14:21 ` Juan Quintela
2009-11-24 14:38 ` Michael S. Tsirkin
2009-11-24 16:05 ` Michael S. Tsirkin
2009-11-25 9:30 ` Juan Quintela
2009-11-25 9:32 ` Michael S. Tsirkin
2009-11-25 13:36 ` Juan Quintela
2009-11-24 13:59 ` Michael S. Tsirkin
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=4B0ABBD4.9030401@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=gleb@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@trasno.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.