============================= Manage Compute service quotas ============================= As an administrative user, you can use the :command:`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. **Compute quota descriptions** .. list-table:: :header-rows: 1 :widths: 10 40 * - 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 rules per security group. * - 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 (project) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To view and update default quota values --------------------------------------- #. List all default quotas for all projects: .. code-block:: console $ nova quota-defaults For example: .. code-block:: console $ nova quota-defaults +-----------------------------+-------+ | 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 | +-----------------------------+-------+ #. Update a default value for a new project. .. code-block:: console $ nova quota-class-update --KEY VALUE default For example: .. code-block:: console $ nova quota-class-update --instances 15 default To view quota values for an existing project -------------------------------------------- #. Place the project ID in a usable variable. .. code-block:: console $ tenant=$(openstack project show -f value -c id TENANT_NAME) #. List the currently set quota values for a project. .. code-block:: console $ nova quota-show --tenant $tenant For example: .. code-block:: console $ nova quota-show --tenant $tenant +-----------------------------+-------+ | 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 ---------------------------------------------- #. Obtain the project ID. .. code-block:: console $ tenant=$(openstack project show -f value -c id TENANT_NAME) #. Update a particular quota value. .. code-block:: console $ nova quota-update --QUOTA_NAME QUOTA_VALUE TENANT_ID For example: .. code-block:: console $ nova quota-update --floating-ips 20 $tenant $ nova quota-show --tenant $tenant +-----------------------------+-------+ | 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 :command:`nova quota-update` command, run: .. code-block:: console $ nova help quota-update View and update Compute quotas for a project user ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To view quota values for a project user --------------------------------------- #. Place the user ID in a usable variable. .. code-block:: console $ tenantUser=$(openstack user show -f value -c id USER_NAME) #. Place the user's project ID in a usable variable, as follows: .. code-block:: console $ tenant=$(openstack project show -f value -c id TENANT_NAME) #. List the currently set quota values for a project user. .. code-block:: console $ nova quota-show --user $tenantUser --tenant $tenant For example: .. code-block:: console $ nova quota-show --user $tenantUser --tenant $tenant +-----------------------------+-------+ | 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 ----------------------------------------- #. Place the user ID in a usable variable. .. code-block:: console $ tenantUser=$(openstack user show -f value -c id USER_NAME) #. Place the user's project ID in a usable variable, as follows: .. code-block:: console $ tenant=$(openstack project show -f value -c id TENANT_NAME) #. Update a particular quota value, as follows: .. code-block:: console $ nova quota-update --user $tenantUser --QUOTA_NAME QUOTA_VALUE $tenant For example: .. code-block:: console $ nova quota-update --user $tenantUser --floating-ips 12 $tenant $ nova quota-show --user $tenantUser --tenant $tenant +-----------------------------+-------+ | 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 :command:`nova quota-update` command, run: .. code-block:: console $ nova help quota-update To display the current quota usage for a project user ----------------------------------------------------- Use :command:`nova absolute-limits` to get a list of the current quota values and the current quota usage: .. code-block:: console $ nova absolute-limits --tenant TENANT_NAME +--------------------+------+-------+ | Name | Used | Max | +--------------------+------+-------+ | Cores | 0 | 20 | | FloatingIps | 0 | 10 | | ImageMeta | - | 128 | | Instances | 0 | 10 | | Keypairs | - | 100 | | Personality | - | 5 | | Personality Size | - | 10240 | | RAM | 0 | 51200 | | SecurityGroupRules | - | 20 | | SecurityGroups | 0 | 10 | | Server Meta | - | 128 | | ServerGroupMembers | - | 10 | | ServerGroups | 0 | 10 | +--------------------+------+-------+