[openstack-dev] [nova] Supporting force live-migrate and force evacuate with nested allocations
Balázs Gibizer
balazs.gibizer at ericsson.com
Wed Oct 10 09:04:22 UTC 2018
On Tue, Oct 9, 2018 at 11:01 PM, Eric Fried <openstack at fried.cc> wrote:
>
>
> On 10/09/2018 02:20 PM, Jay Pipes wrote:
>> On 10/09/2018 11:04 AM, Balázs Gibizer wrote:
>>> If you do the force flag removal in a nw microversion that also
>>> means
>>> (at least to me) that you should not change the behavior of the
>>> force
>>> flag in the old microversions.
>>
>> Agreed.
>>
>> Keep the old, buggy and unsafe behaviour for the old microversion
>> and in
>> a new microversion remove the --force flag entirely and always call
>> GET
>> /a_c, followed by a claim_resources() on the destination host.
>>
>> For the old microversion behaviour, continue to do the "blind copy"
>> of
>> allocations from the source compute node provider to the destination
>> compute node provider.
>
> TBC, for nested/sharing source, we should consolidate all the
> resources
> into a single allocation against the destination's root provider?
Yes, we need to do that not to miss resources allocated from a child RP
on the source host and succeed without a complete allocation on the
destination host.
>
>> That "blind copy" will still fail if there isn't
>> capacity for the new allocations on the destination host anyway,
>> because
>> the blind copy is just issuing a POST /allocations, and that code
>> path
>> still checks capacity on the target resource providers.
>
> What happens when the migration fails, either because of that POST
> /allocations, or afterwards? Do we still have the old allocation
> around
> to restore? Cause we can't re-figure it from the now-monolithic
> destination allocation.
For live-migrate we have the source allocation held by the
migration_uuid so we can simply move that back to the instance_uuid
when the allocation fails on the destination host.
For evacuate the source host allocaton is also held by the
instance_uuid (no migration_uuid is used) but it is not a real problem
here as nova failed to change that allocation so the original source
allocation is intact in placement.
Cheers,
gibi
>
>> There isn't a
>> code path in the placement API that allows a provider's inventory
>> capacity to be exceeded by new allocations.
>>
>> Best,
>> -jay
>>
>>
>> __________________________________________________________________________
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe:
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
More information about the OpenStack-dev
mailing list