Files
nova/doc/source/user/unified-limits.rst
melanie witt d42fe462be Follow up for unified limits: PCPU and documentation
This addresses comments from code review to add handling of PCPU during
the migration/copy of limits from the Nova database to Keystone. In
legacy quotas, there is no settable quota limit for PCPU, so the limit
for VCPU is used for PCPU. With unified limits, PCPU will have its own
quota limit, so for the automated migration command, we will simply
create a dedicated limit for PCPU that is the same value as the limit
for VCPU.

On the docs side, this adds more detail about the token authorization
settings needed to use the nova-manage limits migrate_to_unified_limits
CLI command and documents more OSC limit commands like show and delete.

Related to blueprint unified-limits-nova-tool-and-docs

Change-Id: Ifdb1691d7b25d28216d26479418ea323476fee1a
2023-09-01 06:19:51 +00:00

8.9 KiB

Unified Limits Quotas

Since the Nova 28.0.0 (2023.2 Bobcat) release, it is recommended to use Keystone unified limits for Nova quota limits.

For information about legacy quota limits, see the legacy quota documentation </user/quotas>.

Nova uses a quota system for setting limits on resources such as number of instances or amount of CPU that a specific project or user can use.

Quota limits are set by admin and retrieved for enforcement using the Keystone API.

Types of quota

Unified limit resource names for resources that are tracked as resource classes in the placement service follow the naming pattern of the class: prefix followed by the name of the resource class. For example: class:VCPU, class:PCPU, class:MEMORY_MB, class:DISK_GB, class:VGPU.

Quota name Description
class:VCPU Number of shared CPU cores (VCPUs) allowed per project.
class:PCPU Number of dedicated CPU cores (PCPUs) allowed per project.
servers Number of instances allowed per project.
server_key_pairs Number of key pairs allowed per user.
server_metadata_items Number of metadata items allowed per instance.
class:MEMORY_MB Megabytes of instance ram allowed per project.
server_groups Number of server groups per project.
server_group_members Number of servers per server group.
class:DISK_GB Gigabytes of instance disk allowed per project.
class:<any resource class in the placement service> Any resource class in the placement service that is allocated by Nova can have a quota limit specified for it. Example: class:VGPU.

The following quotas were previously available but were removed in microversion 2.36 as they proxied information available from the networking service.

Quota name Description
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.
networks Number of networks allowed per project (no longer used).
security_groups Number of security groups per project.
security_group_rules Number of security group rules per project.

Similarly, the following quotas were previously available but were removed in microversion 2.57 as the personality files feature was deprecated.

Quota name Description
injected_files Number of injected files allowed per project.
injected_file_content_bytes Number of content bytes allowed per injected file.
injected_file_path_bytes Length of injected file path.

Usage

Project quotas

To list all default quotas for projects, run:

$ openstack registered limit list

Note

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

For example:

$ openstack registered limit list
+----------------------------------+----------------------------------+------------------------------------+---------------+-------------+-----------+
| ID                               | Service ID                       | Resource Name                      | Default Limit | Description | Region ID |
+----------------------------------+----------------------------------+------------------------------------+---------------+-------------+-----------+
| eeee406035fc4a7892c6fc6fcc76e61a | b5d97619e6354c03be50c6b1589e6547 | image_size_total                   |          1000 | None        | RegionOne |
| b99d35b1b7b74cd0a26a6311963328af | b5d97619e6354c03be50c6b1589e6547 | image_stage_total                  |          1000 | None        | RegionOne |
| 70945789dad24082bc2a8cdbf53a5091 | b5d97619e6354c03be50c6b1589e6547 | image_count_total                  |           100 | None        | RegionOne |
| 908d86c0ac3f46d0bb45ed9194710ea7 | b5d97619e6354c03be50c6b1589e6547 | image_count_uploading              |           100 | None        | RegionOne |
| be6dfeebb7c340e8b93b602d41fbff9b | 8b22bf8a66fa4524a522b2a21865bbf2 | servers                            |            10 | None        | None      |
| 8a658096236549788e61f4fcbd5a4a12 | 8b22bf8a66fa4524a522b2a21865bbf2 | class:VCPU                         |            20 | None        | None      |
| 63890db7d6a14401ba55e7f7022b95d0 | 8b22bf8a66fa4524a522b2a21865bbf2 | class:MEMORY_MB                    |         51200 | None        | None      |
| 221ba1c19d2c4272952663828d659013 | 8b22bf8a66fa4524a522b2a21865bbf2 | server_metadata_items              |           128 | None        | None      |
| 8e61cabd2e854a11bdd2cf94efd702d1 | 8b22bf8a66fa4524a522b2a21865bbf2 | server_injected_files              |             5 | None        | None      |
| 3d259390f70e4e9b88ecb2b0fa075f9b | 8b22bf8a66fa4524a522b2a21865bbf2 | server_injected_file_content_bytes |         10240 | None        | None      |
| a12e10b991cc4bdd8e6ff30f6e6c15ac | 8b22bf8a66fa4524a522b2a21865bbf2 | server_injected_file_path_bytes    |           255 | None        | None      |
| a32a9080be6b4a5481c16a91fe329e6f | 8b22bf8a66fa4524a522b2a21865bbf2 | server_key_pairs                   |           100 | None        | None      |
| 86408bb7a0e542b18404ec7d348da820 | 8b22bf8a66fa4524a522b2a21865bbf2 | server_groups                      |            10 | None        | None      |
| 17c4552c5aad4afca4813f37530fc897 | 8b22bf8a66fa4524a522b2a21865bbf2 | server_group_members               |            10 | None        | None      |
+----------------------------------+----------------------------------+------------------------------------+---------------+-------------+-----------+

To show details about a default limit, run:

$ openstack registered limit show <registered-limit-id>

For example:

$ openstack registered limit show 8a658096236549788e61f4fcbd5a4a12
+---------------+----------------------------------+
| Field         | Value                            |
+---------------+----------------------------------+
| default_limit | 20                               |
| description   | None                             |
| id            | 8a658096236549788e61f4fcbd5a4a12 |
| region_id     | None                             |
| resource_name | class:VCPU                       |
| service_id    | 8b22bf8a66fa4524a522b2a21865bbf2 |
+---------------+----------------------------------+

To list the currently set quota values for your project, run:

$ openstack limit list

For example:

$ openstack limit list
+----------------------------------+----------------------------------+----------------------------------+---------------+----------------+-------------+-----------+
| ID                               | Project ID                       | Service ID                       | Resource Name | Resource Limit | Description | Region ID |
+----------------------------------+----------------------------------+----------------------------------+---------------+----------------+-------------+-----------+
| 8b3364b2241e4090aaaa49355c7a5b56 | 5cd3281595a9497ba87209701cd9f3f2 | 8b22bf8a66fa4524a522b2a21865bbf2 | class:VCPU    |              5 | None        | None      |
+----------------------------------+----------------------------------+----------------------------------+---------------+----------------+-------------+-----------+

To show details about a quota limimt, run:

$ openstack limit show <limit-id>

For example:

$ openstack limit show 8b3364b2241e4090aaaa49355c7a5b56
+----------------+----------------------------------+
| Field          | Value                            |
+----------------+----------------------------------+
| description    | None                             |
| domain_id      | None                             |
| id             | 8b3364b2241e4090aaaa49355c7a5b56 |
| project_id     | 5cd3281595a9497ba87209701cd9f3f2 |
| region_id      | None                             |
| resource_limit | 5                                |
| resource_name  | class:VCPU                       |
| service_id     | 8b22bf8a66fa4524a522b2a21865bbf2 |
+----------------+----------------------------------+