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 <[email protected]> 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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

