← Back to team overview

yahoo-eng-team team mailing list archive

[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