[openstack-dev] [placement] Anchor/Relay Providers
Jay Pipes
jaypipes at gmail.com
Mon Apr 16 20:33:39 UTC 2018
On 04/16/2018 04:16 PM, Eric Fried wrote:
> I was presenting an example using VM-ish resource classes, because I can
> write them down and everybody knows what I'm talking about without me
> having to explain what they are. But remember we want placement to be
> usable outside of Nova as well.
>
> But also, I thought we had situations where the VCPU and MEMORY_MB were
> themselves provided by sharing providers, associated with a compute host
> RP that may be itself devoid of inventory. (This may even be a viable
> way to model VMWare's clustery things today.)
I still don't see a use in returning the root providers in the
allocation requests -- since there is nothing consuming resources from
those providers.
And we already return the root_provider_uuid for all providers involved
in allocation requests within the provider_summaries section.
So, I can kind of see where we might want to change *this* line of the
nova scheduler:
https://github.com/openstack/nova/blob/stable/pike/nova/scheduler/filter_scheduler.py#L349
from this:
compute_uuids = list(provider_summaries.keys())
to this:
compute_uuids = set([
ps['root_provider_uuid'] for ps in provider_summaries
])
But other than that, I don't see a reason to change the response from
GET /allocation_candidates at this time.
Best,
-jay
> On 04/16/2018 01:58 PM, Jay Pipes wrote:
>> Sorry it took so long to respond. Comments inline.
>>
>> On 03/30/2018 08:34 PM, Eric Fried wrote:
>>> Folks who care about placement (but especially Jay and Tetsuro)-
>>>
>>> I was reviewing [1] and was at first very unsatisfied that we were not
>>> returning the anchor providers in the results. But as I started digging
>>> into what it would take to fix it, I realized it's going to be
>>> nontrivial. I wanted to dump my thoughts before the weekend.
>>>
>>> <BACKGROUND>
>>> It should be legal to have a configuration like:
>>>
>>> # CN1 (VCPU, MEMORY_MB)
>>> # / \
>>> # /agg1 \agg2
>>> # / \
>>> # SS1 SS2
>>> # (DISK_GB) (IPV4_ADDRESS)
>>>
>>> And make a request for DISK_GB,IPV4_ADDRESS;
>>> And have it return a candidate including SS1 and SS2.
>>>
>>> The CN1 resource provider acts as an "anchor" or "relay": a provider
>>> that doesn't provide any of the requested resource, but connects to one
>>> or more sharing providers that do so.
>>
>> To be honest, such a request just doesn't make much sense to me.
>>
>> Think about what that is requesting. I want some DISK_GB resources and
>> an IP address. For what? What is going to be *using* those resources?
>>
>> Ah... a virtual machine. In other words, something that would *also* be
>> requesting some CPU and memory resources as well.
>>
>> So, the request is just fatally flawed, IMHO. It doesn't represent a use
>> case from the real world.
>>
>> I don't believe we should be changing placement (either the REST API or
>> the implementation of allocation candidate retrieval) for use cases that
>> don't represent real-world requests.
>>
>> Best,
>> -jay
>>
>> __________________________________________________________________________
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
More information about the OpenStack-dev
mailing list