yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #80676
[Bug 1823370] Re: Evacuations are not restricted to the source cell during scheduling
Reviewed: https://review.opendev.org/650429
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=95df2a239c32f2ee5d00f06a59a9e91b59f3aca5
Submitter: Zuul
Branch: master
commit 95df2a239c32f2ee5d00f06a59a9e91b59f3aca5
Author: Matt Riedemann <mriedem.os@xxxxxxxxx>
Date: Fri Apr 5 15:36:00 2019 -0400
Restrict RequestSpec to cell when evacuating
When evacuating a server in a multi-cell environment
we need to restrict the scheduling request during
evacuate to the cell in which the instance already exists
since we don't support cross-cell evacuate.
This fixes the issue by restricting the RequestSpec to
the instance's current cell during evacuate in the same
way we do during unshelve.
Note that this should also improve performance when
rebuilding a server with a new image since we will only
look for the ComputeNode from the targeted cell rather
than iterate all enabled cells during scheduling.
Change-Id: I497180fb81fd966d1d3d4b54ac66d2609347583e
Closes-Bug: #1823370
** Changed in: nova
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1823370
Title:
Evacuations are not restricted to the source cell during scheduling
Status in OpenStack Compute (nova):
Fix Released
Status in OpenStack Compute (nova) pike series:
Confirmed
Status in OpenStack Compute (nova) queens series:
Confirmed
Status in OpenStack Compute (nova) rocky series:
Confirmed
Status in OpenStack Compute (nova) stein series:
Confirmed
Bug description:
During most move operations we restrict the request spec to the cell
the instance is in before calling the scheduler:
unshelve:
https://github.com/openstack/nova/blob/a6963fa6858289d048e4d27ce8e61637cd023f4c/nova/conductor/manager.py#L822
cold migrate:
https://github.com/openstack/nova/blob/a6963fa6858289d048e4d27ce8e61637cd023f4c/nova/conductor/tasks/migrate.py#L163
live migrate:
https://github.com/openstack/nova/blob/a6963fa6858289d048e4d27ce8e61637cd023f4c/nova/conductor/tasks/live_migrate.py#L354
But for some reason we don't do that during evacuate (or rebuild to
the same host with forced hosts/nodes when the image changes - which
in that rebuild case means the scheduler is getting nodes from all
cells just to find the one we are forcing):
https://github.com/openstack/nova/blob/a6963fa6858289d048e4d27ce8e61637cd023f4c/nova/conductor/manager.py#L1011
I'm not sure how this would fail, but if the scheduler did pick a host
in another cell things would surely fail because evacuate won't work
across cells (the instance data is in the source cell db).
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1823370/+subscriptions
References