On 11/14/2019 10:09 AM, fsbiz@yahoo.com wrote:
The requests coming in are "forced host" requests. The PaaS layer maintains an inventory of actual bare-metal available nodes and a user has to explicitly select a baremetal node. The PaaS layer then makes a nova api call for an instance to be created on that specific baremetal node.
To be clear, by forced host you mean creating the server with an availability zone in the format ZONE:HOST:NODE or ZONE:NODE where NODE is the ironic node UUID, correct? https://docs.openstack.org/nova/latest/admin/availability-zones.html#using-a... Yeah that's a problem because then the scheduler filters aren't run. A potential alternative is to create the server using a hypervisor_hostname query hint that will run through the JsonFilter: https://docs.openstack.org/nova/latest/admin/configuration/schedulers.html#j... Then at least you're not forcing the node and run the scheduler filters. I forget exactly how the scheduler code works in Queens with respect to forced hosts/nodes on server create but the scheduler still has to allocate resources in placement. It looks like we work around that in Queens by disabling the limit we place on getting allocation candidates from placement: https://review.opendev.org/#/c/584616/ My guess is your PaaS layer has bugs in it since it's allowing users to select hosts that are already consumed, or it's just racy. Anyway, this is why nova uses placement since Pike for atomic consumption of resources during scheduling. -- Thanks, Matt