← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1724589] Re: Unable to transition to Ironic Node Resource Classes in Pike

 

Reviewed:  https://review.openstack.org/513085
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=5c2b8675e3e13e32b23681153f226de93bb99628
Submitter: Zuul
Branch:    master

commit 5c2b8675e3e13e32b23681153f226de93bb99628
Author: John Garbutt <john@xxxxxxxxxxxxxxx>
Date:   Wed Oct 18 17:05:43 2017 +0100

    Keep updating allocations for Ironic
    
    When ironic updates the instance.flavor to require the new custom
    resource class, we really need the allocations to get updated. Easiest
    way to do that is to make the resource tracker keep updating allocations
    for the ironic virt driver. This can be dropped once the transition to
    custom resource classes is complete.
    
    If we were not to claim the extra resources, placement will pick nodes
    that already have instances running on them when you boot an instance
    with a flavor that only requests the custom resource class. This should
    be what all ironic flavors do, before the upgrade to queens is
    performed.
    
    Closes-Bug: #1724589
    
    Change-Id: Ibbf65a8d817d359786abcdffa6358089ed1107f6


** 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/1724589

Title:
  Unable to transition to Ironic Node Resource Classes in Pike

Status in OpenStack Compute (nova):
  Fix Released
Status in OpenStack Compute (nova) pike series:
  In Progress

Bug description:
  So the scenario is:

  * upgraded to pike
  * have ironic with a multiple flavor
  * attempting to transition to resource class based scheduling, now pike is installed

  In Pike we ask people to:

  * Update Ironic Node with a Resource Class
  * Update flavors to request the new Resource Class (and not request VCPU, RAM, DISK), using the docs: https://docs.openstack.org/ironic/latest/install/configure-nova-flavors.html#scheduling-based-on-resource-classes

  Consider this case:

  * some old instances are running from before the updates
  * some new instances are created after the updates

  In placement:

  * all inventory is correct, new resource class and legacy resource classes are both present
  * old instance allocations: only request

  In nova db:

  * old instances and new instances correctly request the new resource class in their flavor
  * new instances also include the anti-request for VCPU, DISK and RAM

  Now this is the flow that shows the problem:

  * get list of candidate allocations
  * this includes nodes that already have instances on (they only claim part of the inventory, but the new instance is only requesting the bit of the inventory the old instance isn't using)
  * boom, scheduling new instances fails after you hit the retry count, unless you got lucky and found a free slot by accident

  Possible reason for this:

  * Pike no longer updated instance allocations, if we updated the
  allocations of old instances to request the new custom resource class
  allocations, we would fix the above issue.

  Possible work around:

  * in the new flavor, keep requesting VCPU, RAM and CPU resources for
  pike, fix that up in queens?

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1724589/+subscriptions


References