[openstack-dev] [Nova] Migration state machine proposal.

Chris Friesen chris.friesen at windriver.com
Fri Nov 6 13:32:50 UTC 2015


On 11/06/2015 03:47 AM, Tang Chen wrote:
>
> On 11/06/2015 12:45 PM, Chris Friesen wrote:

>> To me, the external API would make more sense as:
>>
>> 1) resize
>>
>> 2) migrate (with option of cold or live, and with option to specify a
>> destination, and with option to override the scheduler if the specified
>> destination doesn't pass filters)
>
> OK. Conceptually speaking, only one case that resize could reuse migration code:
> the current host cannot match the resize condition.

It's not quite that simple.  Generally speaking, in both cases the scheduler 
picks a new host, we stop the guest and maybe move the rootfs files around then 
restart the guest, and handle all the resource tracking along the way.  The 
difference is that resize starts the guest with a different flavor and doesn't 
necessarily need to move to a different host (though by default it will).

So there really is quite a bit of overlap in what needs to happen 
internally...but I don't think that overlap should extend to the external API 
because it's not obvious to the end-user.

> So I don't think resize should be one type of migration.
>
> May I understand it like this:  what we are talking about here is a 3-level
> conception.
>
> user API            nova service         driver
> migrate             live-migration       o ff compute node storage—shared file system
> resize              cold-migration       o n compute node  storage—shared file system
> rebuild                                  o n compute node storage—nonshared file system
> evacuate

Actually, rebuild/evacuate share an underlying nova code path in much the same 
way that resize/cold-migrate share a code path.  What nova calls evacuate is 
basically "rebuild with the same image to a different host".

Chris



More information about the OpenStack-dev mailing list