nova/doc/source/admin/quotas.rst

9.9 KiB

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.

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
    
    +-----------------------------+-------+
    | Quota                       | Limit |
    +-----------------------------+-------+
    | instances                   | 10    |
    | cores                       | 20    |
    | ram                         | 51200 |
    | floating_ips                | 10    |
    | 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    |
    +-----------------------------+-------+
  2. Update a default value for a new project, for example:

    $ openstack quota set --instances 15 default

To view quota values for an existing project

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

    $ openstack quota show PROJECT_NAME
    
    +-----------------------------+-------+
    | Quota                       | Limit |
    +-----------------------------+-------+
    | instances                   | 10    |
    | cores                       | 20    |
    | ram                         | 51200 |
    | floating_ips                | 10    |
    | 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 an existing project

  1. Obtain the project ID.

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

    $ openstack quota set --QUOTA_NAME QUOTA_VALUE PROJECT_OR_CLASS

    For example:

    $ openstack quota set --floating-ips 20 PROJECT_OR_CLASS
    $ openstack quota show PROJECT_NAME
    +-----------------------------+-------+
    | 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    |
    +-----------------------------+-------+

    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.