qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH v3 0/5] Add QMP migration events


From: Juan Quintela
Subject: [Qemu-devel] Re: [PATCH v3 0/5] Add QMP migration events
Date: Wed, 16 Jun 2010 21:10:04 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

Luiz Capitulino <address@hidden> wrote:
> On Tue, 15 Jun 2010 17:24:59 +0200
> Juan Quintela <address@hidden> wrote:

>> >
>> >  I still don't see the need for MIGRATION_STARTED, it could be useful in
>> > the target but I'd like to understand the use case in more detail.
>> 
>> At this point, if you are doing migration with tcp, and you are putting
>> the wrong port on source (no path or any other error), you get no info
>> at all of what is happening.
>
>  Shouldn't the migrate command just the return the expected error?

No.  Think you are "having troubles".  You try to find what happens.
launch things by hand.  And there is no way to know if anybody has
conected to the destination machine.  Some notification that migration
has started is _very_ useful.  expecially when there are
networks/firewalls/... in the middle.

>> It is important to be sure than migration has started, i.e. something
>> happenend.  It happens to me all the time, and users with more complex
>> setup will like it to know what is happening.
>
>  It already happened to me too, but I feel that the event is being used
> as a workaround: we should return good error information instead, like this:

You want the notification on the destination side.  When I am debugging
a problem with migration, the first thing that I do is putting a printf
there, because it is very useful to know that this has happened.

> (qemu) migrate tcp:foobar:444
> migrate: Can't locate host 'foobar'
>
> (qemu) migrate tcp:doriath:1
> migrate: Host 'doriath' is not listening for migration in port 1

You like to wait for timeouts O:-)

> (qemu) migrate 'exec:asd'
> migrate: Can't execute 'asd'
>
>  In QMP the client does get an event, it's the completion response of the
> async command, with the error information.

Ok.  I will give one example.

You want to move from a home in Town A to a home in Town B.
You are a very rich man, and you have lots of things.  The company that
is doing the move only have a lorry and have to do several trips.

You: I am going to be on the garden of the new house, could you
ring the bell when you arrive? (a.k.a. MigrationStart).

Lorry company: No sir, you have to be waiting on the door until we
arrive.

You: And when you are going to arrive?

Them: We don't know.

You: Could you please, pretty please, ring the bell when you arrive so I
can be on the Garden.

Them: No.  You have to wait in the door.

Note: you can fix the problem, just that you con't do anything else.

But it gets better when the end.  remember that you are a very rich man,
and you don't remember how many things you have.  Then you ask again:

You: could you told me when you end to close the house dor.

Them: Yes, no problem.  We would just told you when last lorry leaves
old house.

You: But I am in the new house!!!! Couldn't you told me when you have
finished "in the new house".

Them: No, we already told you in the old house.  That is how we have
worked forever.

You: But, you know when you ended here.  You know when you have
finished.  Why don't you told me that you have finished
(MIGRATION_ENDED).

Them: because we have already told you in the old house.  You can go to
the old house and look if there is anything else there.  If there is
nothing, that means that we have finished.

If you really, really think that this is good service.  This is what we
are giving to management folks.  And they are asking for "so
complicated" things as:
- ring a bell when migration starts: one event
- ring a bell when migration ends: another event

That is it.  But you continue telling that going to the old house and
doing a info migrate is a good interface.

To add insult to injury, the problem is that libvirt people are not
collaborative, and expect things that can't be done, are uncooperative,
....

Libvirt folks "also" do lots of things wrong, they are not perfect.  But
it in this case, who is being completely unreasonable is qemu land.

Later, Juan.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]