[openstack-dev] [nova] [placement] Upgrade concerns with nested Resource Providers
Balázs Gibizer
balazs.gibizer at ericsson.com
Tue May 29 09:01:51 UTC 2018
On Tue, May 29, 2018 at 9:38 AM, Sylvain Bauza <sbauza at redhat.com>
wrote:
>
>
> On Tue, May 29, 2018 at 3:08 AM, TETSURO NAKAMURA
> <nakamura.tetsuro at lab.ntt.co.jp> wrote
>
>> > In that situation, say for example with VGPU inventories, that
>> would mean
>> > that the compute node would stop reporting inventories for its
>> root RP, but
>> > would rather report inventories for at least one single child RP.
>> > In that model, do we reconcile the allocations that were already
>> made
>> > against the "root RP" inventory ?
>>
>> It would be nice to see Eric and Jay comment on this,
>> but if I'm not mistaken, when the virt driver stops reporting
>> inventories for its root RP, placement would try to delete that
>> inventory inside and raise InventoryInUse exception if any
>> allocations still exist on that resource.
>>
>> ```
>> update_from_provider_tree() (nova/compute/resource_tracker.py)
>> + _set_inventory_for_provider() (nova/scheduler/client/report.py)
>> + put() - PUT /resource_providers/<rp_uuid>/inventories with
>> new inventories (scheduler/client/report.py)
>> + set_inventories() (placement/handler/inventory.py)
>> + _set_inventory()
>> (placement/objects/resource_proveider.py)
>> + _delete_inventory_from_provider()
>> (placement/objects/resource_proveider.py)
>> -> raise exception.InventoryInUse
>> ```
>>
>> So we need some trick something like deleting VGPU allocations
>> before upgrading and set the allocation again for the created new
>> child after upgrading?
>>
>
> I wonder if we should keep the existing inventory in the root RP, and
> somehow just reserve the left resources (so Placement wouldn't pass
> that root RP for queries, but would still have allocations). But
> then, where and how to do this ? By the resource tracker ?
>
AFAIK it is the virt driver that decides to model the VGU resource at a
different place in the RP tree so I think it is the responsibility of
the same virt driver to move any existing allocation from the old place
to the new place during this change.
Cheers,
gibi
> -Sylvain
>
More information about the OpenStack-dev
mailing list