[openstack-dev] [nova] [placement] aggregates associated with multiple resource providers
Jay Pipes
jaypipes at gmail.com
Tue May 31 14:34:32 UTC 2016
On 05/30/2016 11:22 PM, Cheng, Yingxin wrote:
> Hi, cdent:
>
> This problem arises because the RT(resource tracker) only knows to
> consume the DISK resource in its host, but it still doesn’t know
> exactly which resource provider to place the consumption. That is to
> say, the RT still needs to *find* the correct resource provider in
> the step 4. The *step 4* finally causes the explicit problem that
> “the RT can find two resource providers providing DISK_GB, but it
> doesn’t know which is right”, as you’ve encountered.
>
> The problem is: the RT needs to make a decision to choose a resource
> provider when it finds multiple of them according to *step 4*.
> However, the scheduler should already know which resource provider to
> choose when it is making a decision, and it doesn’t send this
> information to compute nodes, either. That’s also to say, there is a
> missing step in the bp g-r-p that we should “improve filter scheduler
> that can make correct decisions with generic resource pools”, the
> scheduler should tell the compute node RT not only about the
> resources consumptions in the compute-node resource provider, but
> also the information where to consume shared resources, i.e. their
> related resource-provider-ids.
Well, that is the problem with not having the scheduler actually do the
claiming of resources on a provider. :(
At this time, the compute node (specifically, its resource tracker) is
the thing that does the actual claim of the resources in a request
against the resource inventories it understands for itself.
This is why even though the scheduler "makes a placement decision" for
things like which NUMA cell/node that a workload will be placed on [1],
that decision is promptly forgotten about and ignored and the compute
node makes a totally different decision [2] when claiming NUMA topology
resources after it receives the instance request containing NUMA
topology requests. :(
Is this silly and should, IMHO, the scheduler *actually* do the claim of
resources on a provider? Yes, see [3] which still needs a spec pushed.
Is this going to change any time soon? Unfortunately, no.
Unfortunately, a compute node isn't aware that it may be consuming
resources from a shared storage pool, which is what Step #4 is all
about: making the compute node aware that it is using a shared storage
pool if it is indeed using a shared storage pool. I'll answer Chris'
email directly with more details.
Best,
-jay
[1]
https://github.com/openstack/nova/blob/83cd67cd89ba58243d85db8e82485bda6fd00fde/nova/scheduler/filters/numa_topology_filter.py#L81
[2]
https://github.com/openstack/nova/blob/83cd67cd89ba58243d85db8e82485bda6fd00fde/nova/compute/claims.py#L215
[3]
https://blueprints.launchpad.net/nova/+spec/resource-providers-scheduler-claims
> Hope it can help you.
>
More information about the OpenStack-dev
mailing list