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 <[email protected]> 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 -- 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

