<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2018-05-17 1:24 GMT+08:00 Jay Pipes <span dir="ltr"><<a href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 05/16/2018 01:01 PM, Nadathur, Sundar wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
Hi,<br>
    The Cyborg quota spec [1] proposes to implement a quota (maximum usage) for accelerators on a per-project basis, to prevent one project (tenant) from over-using some resources and starving other tenants. There are separate resource classes for different accelerator types (GPUs, FPGAs, etc.), and so we can do quotas per RC.<br>
<br>
The current proposal [2] is to track the usage in Cyborg agent/driver. I am not sure that scheme will work, as I have indicated in the comments on [1]. Here is another possible way.<br>
<br></span>
  * The operator configures the oslo.limit in keystone per-project<br>
    per-resource-class (GPU, FPGA, ...).<br>
      o Until this gets into Keystone, Cyborg may define its own quota<span class=""><br>
        table, as defined in [1].<br></span>
  * Cyborg implements a table to track per-project usage, as defined in [1].<br>
</blockquote>
<br>
Placement already stores usage information for all allocations of resources. There is already even a /usages API endpoint that you can specify a project and/or user:<br>
<br>
<a href="https://developer.openstack.org/api-ref/placement/#list-usages" rel="noreferrer" target="_blank">https://developer.openstack.or<wbr>g/api-ref/placement/#list-usag<wbr>es</a><br>
<br>
I see no reason not to use it.<br>
<br>
There is already actually a spec to use placement for quota usage checks in Nova here:<br>
<br>
<a href="https://review.openstack.org/#/c/509042/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/509042/</a></blockquote><div><br></div><div>FYI, I'm working on a spec which append to that spec. It's about counting quota for the resource class(GPU, custom RC, etc) other than nova built-in resources(cores, ram). It should be able to count the resource classes which are used by cyborg. But yes, we probably should answer Matt's question first, whether we should let Nova count quota instead of Cyborg.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
Probably best to have a look at that and see if it will end up meeting your needs.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  * Cyborg provides a filter for the Nova scheduler, which checks<span class=""><br>
    whether the project making the request has exceeded its own quota.<br>
</span></blockquote>
<br>
Quota checks happen before Nova's scheduler gets involved, so having a scheduler filter handle quota usage checking is pretty much a non-starter.<br>
<br>
I'll have a look at the patches you've proposed and comment there.<br>
<br>
Best,<br>
-jay<br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
</blockquote></div><br></div></div>