<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">Le mar. 29 mai 2018 à 11:02, Balázs Gibizer <<a href="mailto:balazs.gibizer@ericsson.com">balazs.gibizer@ericsson.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
On Tue, May 29, 2018 at 9:38 AM, Sylvain Bauza <<a href="mailto:sbauza@redhat.com" target="_blank" rel="noreferrer">sbauza@redhat.com</a>> <br>
wrote:<br>
> <br>
> <br>
> On Tue, May 29, 2018 at 3:08 AM, TETSURO NAKAMURA <br>
> <<a href="mailto:nakamura.tetsuro@lab.ntt.co.jp" target="_blank" rel="noreferrer">nakamura.tetsuro@lab.ntt.co.jp</a>> wrote<br>
> <br>
>> > In that situation, say for example with VGPU inventories, that <br>
>> would mean<br>
>> > that the compute node would stop reporting inventories for its <br>
>> root RP, but<br>
>> > would rather report inventories for at least one single child RP.<br>
>> > In that model, do we reconcile the allocations that were already <br>
>> made<br>
>> > against the "root RP" inventory ?<br>
>> <br>
>> It would be nice to see Eric and Jay comment on this,<br>
>> but if I'm not mistaken, when the virt driver stops reporting <br>
>> inventories for its root RP, placement would try to delete that <br>
>> inventory inside and raise InventoryInUse exception if any <br>
>> allocations still exist on that resource.<br>
>> <br>
>> ```<br>
>> update_from_provider_tree() (nova/compute/resource_tracker.py)<br>
>>   + _set_inventory_for_provider() (nova/scheduler/client/report.py)<br>
>>       + put() - PUT /resource_providers/<rp_uuid>/inventories with <br>
>> new inventories (scheduler/client/report.py)<br>
>>           + set_inventories() (placement/handler/inventory.py)<br>
>>               + _set_inventory() <br>
>> (placement/objects/resource_proveider.py)<br>
>>                   + _delete_inventory_from_provider() <br>
>> (placement/objects/resource_proveider.py)<br>
>>                       -> raise exception.InventoryInUse<br>
>> ```<br>
>> <br>
>> So we need some trick something like deleting VGPU allocations <br>
>> before upgrading and set the allocation again for the created new <br>
>> child after upgrading?<br>
>> <br>
> <br>
> I wonder if we should keep the existing inventory in the root RP, and <br>
> somehow just reserve the left resources (so Placement wouldn't pass <br>
> that root RP for queries, but would still have allocations). But <br>
> then, where and how to do this ? By the resource tracker ?<br>
> <br>
<br>
AFAIK it is the virt driver that decides to model the VGU resource at a <br>
different place in the RP tree so I think it is the responsibility of <br>
the same virt driver to move any existing allocation from the old place <br>
to the new place during this change.<br>
<br>
Cheers,<br>
gibi<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Why not instead not move the allocation but rather have the virt driver updating the root RP by modifying the reserved value to the total size?</div><div dir="auto"><br></div><div dir="auto">That way, the virt driver wouldn't need to ask for an allocation but rather continue to provide inventories...</div><div dir="auto"><br></div><div dir="auto">Thoughts?</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
> -Sylvain<br>
> <br>
<br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div></div></div>