Chapter 4. Quota Management 4.1. Quota Management As a cloud administrator, you can set and manage quotas for a project. Each project is allocated resources, and project users are granted access to consume these resources. This enables multiple projects to use a single cloud without interfering with each other's permissions and resources. A set of resource quotas are preconfigured when a new project is created. The quotas include the amount of VCPUs, instances, RAM, floating IPs, that can be assigned to projects. Quotas can be enforced at both the project and the project-user level. Note that you can set or modify Compute and Block Storage quotas for new and existing projects using the dashboard. See Chapter 5, Project Management for the procedure on how to set and update project quotas within the dashboard. 4.1.1. View Compute Quotas for a User Run the following command to list the currently set quota values for a user: Example 4.1.2. Update Compute Quotas for a User Run the following commands to update a particular quota value: Example Note To view a list of options for the quota-update command, run: 4.1.3. Set Object Storage Quotas for a User Object Storage quotas can be classified under the following categories: Container quotas - Limits the total size (in bytes) or number of objects that can be stored in a single container. Account quotas - Limits the total size (in bytes) that a user has available in the Object Storage service. To set either container quotas or the account quotas, the Object Storage proxy server must have the parameters container_quotas or account_quotas (or both) added to the [pipeline:main] section of the proxy-server.conf file: Use the following command to view and update the Object Storage quotas. All users included in a project can view the quotas placed on the project. To update the Object Storage quotas on a project, you must have the role of a ResellerAdmin in the project. To view account quotas: To update quotas: For example, to place a 5 GB quota on an account: To verify the quota, run the swift stat command again:

Commands:
nova quota-show --user [USER] --tenant [TENANT]
nova quota-show --user demoUser --tenant demo +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 10 | | cores | 20 | | ram | 51200 | | floating_ips | 5 | | 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 | +-----------------------------+-------+
nova quota-update --user [USER] --[QUOTA_NAME] [QUOTA_VALUE] [TENANT] nova quota-show --user [USER] --tenant [TENANT]
nova quota-update --user demoUser --floating-ips 10 demo nova quota-show --user demoUser --tenant demo +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 10 | | cores | 20 | | ram | 51200 | | floating_ips | 10 | | ... | | +-----------------------------+-------+
nova help quota-update
[pipeline:main] pipeline = catch_errors [...] tempauth container-quotas account-quotas slo dlo proxy-logging proxy-server [filter:account_quotas] use = egg:swift#account_quotas [filter:container_quotas] use = egg:swift#container_quotas
swift stat Account: AUTH_b36ed2d326034beba0a9dd1fb19b70f9 Containers: 0 Objects: 0 Bytes: 0 Meta Quota-Bytes: 214748364800 X-Timestamp: 1351050521.29419 Content-Type: text/plain; charset=utf-8 Accept-Ranges: bytes
swift post -m quota-bytes:<BYTES>
swift post -m quota-bytes:5368709120
swift stat Account: AUTH_b36ed2d326034beba0a9dd1fb19b70f9 Containers: 0 Objects: 0 Bytes: 0 Meta Quota-Bytes: 5368709120 X-Timestamp: 1351541410.38328 Content-Type: text/plain; charset=utf-8 Accept-Ranges: bytes