[openstack-dev] [cyborg] [nova] Cyborg quotas

Matt Riedemann mriedemos at gmail.com
Wed May 16 19:25:33 UTC 2018

On 5/16/2018 12:24 PM, Jay Pipes wrote:
> Quota checks happen before Nova's scheduler gets involved, so having a 
> scheduler filter handle quota usage checking is pretty much a non-starter.

For server resources yeah, for things like instances quota, CPU and RAM, 

Nova does an up-front quota check for ports when creating servers (from 
nova-api) based on the number of servers requested vs whether or not 
pre-created ports were provided in the server create request.

Nova does *not* do the same up-front quota check for volumes when 
booting from volume and nova creates the volume in the nova-compute 
service, which could lead to an OverQuota error from Cinder and then we 
abort the build [1].

So what nova does probably depends on what the API interaction is when 
creating a server. As far as I know, nova isn't getting passed explicit 
cyborg-controlled resources like neutron ports or cinder volumes, right? 
I thought the interaction was that the flavor would have required 
resource amounts for cyborg resources which the nova-scheduler will 
allocate for the instance, and then some magic happens in nova-compute 
to hook those things up (like os-brick/os-vif type stuff).

Is nova going to be creating resources in cyborg like it creates ports 
in neutron or volumes in cinder? If not, then I don't see why nova would 
have anything to do with quota checks on these types of resources.

Also, you should totally start with modeling your limits in keystone 
since that's the direction all projects should be going. I believe the 
usages are tracked per-project but the limits are meant to be unified in 
keystone for all projects.

[1] https://bugs.launchpad.net/nova/+bug/1742102




More information about the OpenStack-dev mailing list