[openstack-dev] [nova][placement] Trying to summarize bp/glance-image-traits scheduling alternatives for rebuild
Jay Pipes
jaypipes at gmail.com
Tue Apr 24 12:55:01 UTC 2018
On 04/23/2018 05:51 PM, Arvind N wrote:
> Thanks for the detailed options Matt/eric/jay.
>
> Just few of my thoughts,
>
> For #1, we can make the explanation very clear that we rejected the
> request because the original traits specified in the original image and
> the new traits specified in the new image do not match and hence rebuild
> is not supported.
I believe I had suggested that on the spec amendment patch. Matt had
concerns about an error message being a poor user experience (I don't
necessarily disagree with that) and I had suggested a clearer error
message to try and make that user experience slightly less sucky.
> For #3,
>
> Even though it handles the nested provider, there is a potential issue.
>
> Lets say a host with two SRIOV nic. One is normal SRIOV nic(VF1),
> another one with some kind of offload feature(VF2).(Described by alex)
>
> Initial instance launch happens with VF:1 allocated, rebuild launches
> with modified request with traits=HW_NIC_OFFLOAD_X, so basically we want
> the instance to be allocated VF2.
>
> But the original allocation happens against VF1 and since in rebuild the
> original allocations are not changed, we have wrong allocations.
Yep, that is certainly an issue. The only solution to this that I can
see would be to have the conductor ask the compute node to do the
pre-flight check. The compute node already has the entire tree of
providers, their inventories and traits, along with information about
providers that share resources with the compute node. It has this
information in the ProviderTree object in the reportclient that is
contained in the compute node resource tracker.
The pre-flight check, if run on the compute node, would be able to grab
the allocation records for the instance and determine if the required
traits for the new image are present on the actual resource providers
allocated against for the instance (and not including any child
providers not allocated against).
Or... we chalk this up as a "too bad" situation and just either go with
option #1 or simply don't care about it.
Best,
-jay
More information about the OpenStack-dev
mailing list