yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #68671
[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