yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #74545
[Bug 1785318] Re: evacuate rebuild claim will not use any image_meta so it can miss numa_topology claims
Reviewed: https://review.openstack.org/588657
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=665ba461f3135857034cf33dd5f427d47fdd155e
Submitter: Zuul
Branch: master
commit 665ba461f3135857034cf33dd5f427d47fdd155e
Author: Matt Riedemann <mriedem.os@xxxxxxxxx>
Date: Fri Aug 3 16:54:49 2018 -0400
Fix image-defined numa claims during evacuate
When evacuating, the API does not send the image_ref
to the compute so currently the compute manager
rebuild_instance() method will just pass an empty
dict for image_meta to the rebuild_claim, which means
if the server was originally created with an image that
has numa-related constraints, like hw_numa_nodes, those
constraints would not be applied to the destination host
during the evacuate.
This change simply checks for evacuate if image_ref is
not provided and pulls the image_meta off the instance
which was stashed in the instance.system_metadata during
server create (see get_system_metadata_from_image usage
in the compute API).
This fix was ported from the starlingx-staging/stx-nova
repo commit 71acfeae0.
Change-Id: If548fa3436174b1eae08cdcf6578020cc0c7b81f
Closes-Bug: #1785318
** 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/1785318
Title:
evacuate rebuild claim will not use any image_meta so it can miss
numa_topology claims
Status in OpenStack Compute (nova):
Fix Released
Status in OpenStack Compute (nova) ocata series:
Triaged
Status in OpenStack Compute (nova) pike series:
Triaged
Status in OpenStack Compute (nova) queens series:
Triaged
Status in OpenStack Compute (nova) rocky series:
In Progress
Bug description:
I found this in the starlingx diff for nova:
https://github.com/starlingx-staging/stx-
nova/commit/71acfeae0d1c59fdc77704527d763bd85a276f9a#diff-
afb9c0c0ca5276c7eacd987bbf51d8e6R447
For volume-backed instances, the instance image_meta comes from the
volume_image_metadata in the volume for the root bdm, the API figures
that out here:
https://github.com/openstack/nova/blob/4c37ff72e5446c835a48d569dd5a1416fcd36c71/nova/compute/api.py#L1099
https://github.com/openstack/nova/blob/4c37ff72e5446c835a48d569dd5a1416fcd36c71/nova/compute/api.py#L1568
Then during an evacuate of a volume-backed instance, the rebuild_claim
in the ResourceTracker won't actually get the proper image_meta
because of this code in ComputeManager.rebuild_instance:
https://github.com/openstack/nova/blob/4c37ff72e5446c835a48d569dd5a1416fcd36c71/nova/compute/manager.py#L2985
The only thing in the claims code that cares about image_meta is for
calculating numa_topology claims:
https://github.com/openstack/nova/blob/4c37ff72e5446c835a48d569dd5a1416fcd36c71/nova/compute/claims.py#L295
I'm not even totally sure if evacuate fully works with an instance
using numa topology, but this can't help.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1785318/+subscriptions
References