Comment 0 for bug 1724589

Revision history for this message
John Garbutt (johngarbutt) wrote :

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?