Manage Compute service quotas

As an administrative user, you can use the nova quota-* commands, which are provided by the python-novaclient package, to update the Compute service quotas for a specific project or project user, as well as update the quota defaults for a new project.

Todo

At some point, probably in Queens, we need to scrub this page and mention the microversions that remove the proxy and network-related resource quotas.

Compute quota descriptions

Quota name

Description

cores

Number of instance cores (VCPUs) allowed per project.

fixed-ips

Number of fixed IP addresses allowed per project. This number must be equal to or greater than the number of allowed instances.

floating-ips

Number of floating IP addresses allowed per project.

injected-file-content-bytes

Number of content bytes allowed per injected file.

injected-file-path-bytes

Length of injected file path.

injected-files

Number of injected files allowed per project.

instances

Number of instances allowed per project.

key-pairs

Number of key pairs allowed per user.

metadata-items

Number of metadata items allowed per instance.

ram

Megabytes of instance ram allowed per project.

security-groups

Number of security groups per project.

security-group-rules

Number of security group rules per project.

server-groups

Number of server groups per project.

server-group-members

Number of servers per server group.

View and update Compute quotas for a project

To view and update default quota values

  1. List all default quotas for all projects:

    $ openstack quota show --default
    +----------------------+----------+
    | Field                | Value    |
    +----------------------+----------+
    | backup-gigabytes     | 1000     |
    | backups              | 10       |
    | cores                | 20       |
    | fixed-ips            | -1       |
    | floating-ips         | 50       |
    | gigabytes            | 1000     |
    | health_monitors      | None     |
    | injected-file-size   | 10240    |
    | injected-files       | 5        |
    | injected-path-size   | 255      |
    | instances            | 10       |
    | key-pairs            | 100      |
    | l7_policies          | None     |
    | listeners            | None     |
    | load_balancers       | None     |
    | location             | None     |
    | name                 | None     |
    | networks             | 10       |
    | per-volume-gigabytes | -1       |
    | pools                | None     |
    | ports                | 50       |
    | project              | None     |
    | project_name         | project  |
    | properties           | 128      |
    | ram                  | 51200    |
    | rbac_policies        | 10       |
    | routers              | 10       |
    | secgroup-rules       | 100      |
    | secgroups            | 10       |
    | server-group-members | 10       |
    | server-groups        | 10       |
    | snapshots            | 10       |
    | subnet_pools         | -1       |
    | subnets              | 10       |
    | volumes              | 10       |
    +----------------------+----------+
    

    Note

    This lists default quotas for all services and not just nova.

  2. Update a default value for a new project, for example:

    $ openstack quota set --instances 15 --class default
    

To view quota values for an existing project

  1. List the currently set quota values for a project:

    $ openstack quota show PROJECT_NAME
    +----------------------+----------------------------------+
    | Field                | Value                            |
    +----------------------+----------------------------------+
    | backup-gigabytes     | 1000                             |
    | backups              | 10                               |
    | cores                | 32                               |
    | fixed-ips            | -1                               |
    | floating-ips         | 10                               |
    | gigabytes            | 1000                             |
    | health_monitors      | None                             |
    | injected-file-size   | 10240                            |
    | injected-files       | 5                                |
    | injected-path-size   | 255                              |
    | instances            | 10                               |
    | key-pairs            | 100                              |
    | l7_policies          | None                             |
    | listeners            | None                             |
    | load_balancers       | None                             |
    | location             | None                             |
    | name                 | None                             |
    | networks             | 20                               |
    | per-volume-gigabytes | -1                               |
    | pools                | None                             |
    | ports                | 60                               |
    | project              | c8156b55ec3b486193e73d2974196993 |
    | project_name         | project                          |
    | properties           | 128                              |
    | ram                  | 65536                            |
    | rbac_policies        | 10                               |
    | routers              | 10                               |
    | secgroup-rules       | 50                               |
    | secgroups            | 50                               |
    | server-group-members | 10                               |
    | server-groups        | 10                               |
    | snapshots            | 10                               |
    | subnet_pools         | -1                               |
    | subnets              | 20                               |
    | volumes              | 10                               |
    +----------------------+----------------------------------+
    

    Note

    This lists quotas for all services and not just nova.

To update quota values for an existing project

  1. Obtain the project ID.

    $ project=$(openstack project show -f value -c id PROJECT_NAME)
    
  2. Update a particular quota value.

    To update quotas for a project:

    $ openstack quota set --QUOTA_NAME QUOTA_VALUE PROJECT_NAME
    

    To update quotas for a class:

    $ openstack quota set --class --QUOTA_NAME QUOTA_VALUE CLASS_NAME
    

    Note

    Only the default class is supported by nova.

    For example:

    $ openstack quota set --instances 50 PROJECT_NAME
    $ openstack quota show PROJECT_NAME
    +----------------------+----------------------------------+
    | Field                | Value                            |
    +----------------------+----------------------------------+
    | ...                  | ...                              |
    | instances            | 50                               |
    | ...                  | ...                              |
    +----------------------+----------------------------------+
    

    Note

    To view a list of options for the openstack quota set command, run:

    $ openstack help quota set
    

View and update Compute quotas for a project user

To view quota values for a project user

  1. Place the user ID in a usable variable.

    $ projectUser=$(openstack user show -f value -c id USER_NAME)
    
  2. Place the user’s project ID in a usable variable, as follows:

    $ project=$(openstack project show -f value -c id PROJECT_NAME)
    
  3. List the currently set quota values for a project user.

    $ nova quota-show --user $projectUser --tenant $project
    

    For example:

    $ nova quota-show --user $projectUser --tenant $project
    +-----------------------------+-------+
    | Quota                       | Limit |
    +-----------------------------+-------+
    | instances                   | 10    |
    | cores                       | 20    |
    | ram                         | 51200 |
    | floating_ips                | 20    |
    | fixed_ips                   | -1    |
    | metadata_items              | 128   |
    | injected_files              | 5     |
    | injected_file_content_bytes | 10240 |
    | injected_file_path_bytes    | 255   |
    | key_pairs                   | 100   |
    | security_groups             | 10    |
    | security_group_rules        | 20    |
    | server_groups               | 10    |
    | server_group_members        | 10    |
    +-----------------------------+-------+
    

To update quota values for a project user

  1. Place the user ID in a usable variable.

    $ projectUser=$(openstack user show -f value -c id USER_NAME)
    
  2. Place the user’s project ID in a usable variable, as follows:

    $ project=$(openstack project show -f value -c id PROJECT_NAME)
    
  3. Update a particular quota value, as follows:

    $ nova quota-update  --user $projectUser --QUOTA_NAME QUOTA_VALUE $project
    

    For example:

    $ nova quota-update --user $projectUser --floating-ips 12 $project
    $ nova quota-show --user $projectUser --tenant $project
    +-----------------------------+-------+
    | Quota                       | Limit |
    +-----------------------------+-------+
    | instances                   | 10    |
    | cores                       | 20    |
    | ram                         | 51200 |
    | floating_ips                | 12    |
    | fixed_ips                   | -1    |
    | metadata_items              | 128   |
    | injected_files              | 5     |
    | injected_file_content_bytes | 10240 |
    | injected_file_path_bytes    | 255   |
    | key_pairs                   | 100   |
    | security_groups             | 10    |
    | security_group_rules        | 20    |
    | server_groups               | 10    |
    | server_group_members        | 10    |
    +-----------------------------+-------+
    

    Note

    To view a list of options for the nova quota-update command, run:

    $ nova help quota-update
    

To display the current quota usage for a project user

Use nova limits to get a list of the current quota values and the current quota usage:

$ nova limits --tenant PROJECT_NAME

+------+-----+-------+--------+------+----------------+
| Verb | URI | Value | Remain | Unit | Next_Available |
+------+-----+-------+--------+------+----------------+
+------+-----+-------+--------+------+----------------+

+--------------------+------+-------+
| Name               | Used | Max   |
+--------------------+------+-------+
| Cores              | 0    | 20    |
| Instances          | 0    | 10    |
| Keypairs           | -    | 100   |
| Personality        | -    | 5     |
| Personality Size   | -    | 10240 |
| RAM                | 0    | 51200 |
| Server Meta        | -    | 128   |
| ServerGroupMembers | -    | 10    |
| ServerGroups       | 0    | 10    |
+--------------------+------+-------+

Note

The nova limits command generates an empty table as a result of the Compute API, which prints an empty list for backward compatibility purposes.