[openstack-dev] [cyborg] [nova] Cyborg quotas
    Jay Pipes 
    jaypipes at gmail.com
       
    Wed May 16 17:24:24 UTC 2018
    
    
  
On 05/16/2018 01:01 PM, Nadathur, Sundar wrote:
> Hi,
>     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.
> 
> 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.
> 
>   * The operator configures the oslo.limit in keystone per-project
>     per-resource-class (GPU, FPGA, ...).
>       o Until this gets into Keystone, Cyborg may define its own quota
>         table, as defined in [1].
>   * Cyborg implements a table to track per-project usage, as defined in [1].
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:
https://developer.openstack.org/api-ref/placement/#list-usages
I see no reason not to use it.
There is already actually a spec to use placement for quota usage checks 
in Nova here:
https://review.openstack.org/#/c/509042/
Probably best to have a look at that and see if it will end up meeting 
your needs.
>   * Cyborg provides a filter for the Nova scheduler, which checks
>     whether the project making the request has exceeded its own quota.
Quota checks happen before Nova's scheduler gets involved, so having a 
scheduler filter handle quota usage checking is pretty much a non-starter.
I'll have a look at the patches you've proposed and comment there.
Best,
-jay
    
    
More information about the OpenStack-dev
mailing list