openstack-manuals/doc/common/section_cli_nova_quotas.xml

354 lines
13 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="cli_set_compute_quotas">
<title>Manage Compute service quotas</title>
<para>As an administrative user, you can use the <command>nova quota-*</command>
commands, which are provided by the <literal>python-novaclient</literal>
package, to update the Compute service quotas for a specific tenant or
tenant user, as well as update the quota defaults for a new tenant.</para>
<table rules="all">
<caption>Compute quota descriptions</caption>
<col width="40%"/>
<col width="60%"/>
<thead>
<tr>
<th>
Quota name
</th>
<th>
Description
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<para>
<systemitem>cores</systemitem>
</para>
</td>
<td>
<para>
Number of instance cores (VCPUs) allowed per tenant.
</para>
</td>
</tr>
<tr>
<td>
<para>
<systemitem>fixed-ips</systemitem>
</para>
</td>
<td>
<para>
Number of fixed IP addresses allowed per tenant. This number
must be equal to or greater than the number of allowed
instances.
</para>
</td>
</tr>
<tr>
<td>
<para>
<systemitem>floating-ips</systemitem>
</para>
</td>
<td>
<para>
Number of floating IP addresses allowed per tenant.
</para>
</td>
</tr>
<tr>
<td>
<para>
<systemitem>injected-file-content-bytes</systemitem>
</para>
</td>
<td>
<para>
Number of content bytes allowed per injected file.
</para>
</td>
</tr>
<tr>
<td>
<para>
<systemitem>injected-file-path-bytes</systemitem>
</para>
</td>
<td>
<para>
Length of injected file path.
</para>
</td>
</tr>
<tr>
<td>
<para>
<systemitem>injected-files</systemitem>
</para>
</td>
<td>
<para>
Number of injected files allowed per tenant.
</para>
</td>
</tr>
<tr>
<td>
<para>
<systemitem>instances</systemitem>
</para>
</td>
<td>
<para>
Number of instances allowed per tenant.
</para>
</td>
</tr>
<tr>
<td>
<para>
<systemitem>key-pairs</systemitem>
</para>
</td>
<td>
<para>
Number of key pairs allowed per user.
</para>
</td>
</tr>
<tr>
<td>
<para>
<systemitem>metadata-items</systemitem>
</para>
</td>
<td>
<para>
Number of metadata items allowed per instance.
</para>
</td>
</tr>
<tr>
<td>
<para>
<systemitem>ram</systemitem>
</para>
</td>
<td>
<para>
Megabytes of instance ram allowed per tenant.
</para>
</td>
</tr>
<tr>
<td>
<para>
<systemitem>security-groups</systemitem>
</para>
</td>
<td>
<para>
Number of security groups per tenant.
</para>
</td>
</tr>
<tr>
<td>
<para>
<systemitem>security-group-rules</systemitem>
</para>
</td>
<td>
<para>
Number of rules per security group.
</para>
</td>
</tr>
</tbody>
</table>
<section xml:id="cli_set_compute_tenant_quotas_procedure">
<title>View and update Compute quotas for a tenant (project)</title>
<procedure>
<title>To view and update default quota values</title>
<step>
<para>List all default quotas for all tenants, as follows:</para>
<screen><prompt>$</prompt> <userinput>nova quota-defaults</userinput></screen>
<para>For example:
</para>
<screen><prompt>$</prompt> <userinput>nova quota-defaults</userinput>
<computeroutput>+-----------------------------+-------+
| 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 |
+-----------------------------+-------+</computeroutput></screen>
</step>
<step>
<para>Update a default value for a new tenant, as follows:
</para>
<screen><prompt>$</prompt> <userinput>nova quota-class-update --<replaceable>key</replaceable> <replaceable>value</replaceable> default</userinput></screen>
<para>For example:
</para>
<screen><prompt>$</prompt> <userinput>nova quota-class-update --instances 15 default</userinput></screen>
</step>
</procedure>
<procedure>
<title>To view quota values for an existing tenant (project)</title>
<step><para>Place the tenant ID in a usable variable, as follows:</para>
<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list | awk '/<replaceable>tenantName</replaceable>/ {print $2}')</userinput></screen>
</step>
<step>
<para>List the currently set quota values for a
tenant, as follows:</para>
<screen><prompt>$</prompt> <userinput>nova quota-show --tenant $tenant</userinput></screen>
<para>For example:</para>
<screen><prompt>$</prompt> <userinput>nova quota-show --tenant $tenant</userinput>
<computeroutput>+-----------------------------+-------+
| 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 |
+-----------------------------+-------+</computeroutput></screen>
</step>
</procedure>
<procedure>
<title>To update quota values for an existing tenant (project)</title>
<step><para>Obtain the tenant ID, as follows:</para>
<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list | awk '/<replaceable>tenantName</replaceable>/ {print $2}')</userinput></screen>
</step>
<step>
<para>Update a particular quota value, as follows:</para>
<screen><prompt>$</prompt> <userinput>nova quota-update --<replaceable>quotaName</replaceable> <replaceable>quotaValue</replaceable> <replaceable>tenantID</replaceable></userinput></screen>
<para>For example:</para>
<screen><prompt>$</prompt> <userinput>nova quota-update --floating-ips 20 $tenant</userinput>
<prompt>$</prompt> <userinput>nova quota-show --tenant $tenant</userinput>
<computeroutput>+-----------------------------+-------+
| 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 |
+-----------------------------+-------+
</computeroutput></screen>
<note>
<para>To view a list of options for the
<command>quota-update</command> command, run:
</para>
<screen><prompt>$</prompt> <userinput>nova help quota-update</userinput></screen></note>
</step>
</procedure>
</section>
<section xml:id="cli_set_compute_user_quotas_procedure">
<title>View and update Compute quotas for a tenant user</title>
<procedure>
<title>To view quota values for a tenant user</title>
<step><para>Place the user ID in a usable variable, as follows:</para>
<screen><prompt>$</prompt> <userinput>tenantUser=$(keystone user-list | awk '/<replaceable>userName</replaceable>/ {print $2}')</userinput></screen>
</step>
<step>
<para>Place the user's tenant ID in a usable variable, as follows:</para>
<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list | awk '/<replaceable>tenantName</replaceable>/ {print $2}')</userinput></screen>
</step>
<step>
<para>List the currently set quota values for a
tenant user, as follows:</para>
<screen><prompt>$</prompt> <userinput>nova quota-show --user $tenantUser --tenant $tenant</userinput> </screen>
<para>For example:</para>
<screen><prompt>$</prompt> <userinput>nova quota-show --user $tenantUser --tenant $tenant</userinput>
<computeroutput>+-----------------------------+-------+
| 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 |
+-----------------------------+-------+
</computeroutput></screen>
</step>
</procedure>
<procedure>
<title>To update quota values for a tenant user</title>
<step><para>Place the user ID in a usable variable, as follows:</para>
<screen><prompt>$</prompt> <userinput>tenantUser=$(keystone user-list | awk '/<replaceable>userName</replaceable>/ {print $2}')</userinput></screen>
</step>
<step><para>Place the user's tenant ID in a usable variable, as follows:</para>
<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list | awk '/<replaceable>userName</replaceable>/ {print $2}')</userinput></screen>
</step>
<step>
<para>Update a particular quota value, as follows:</para>
<screen><prompt>$</prompt> <userinput>nova quota-update --user $tenantUser --<replaceable>quotaName</replaceable> <replaceable>quotaValue</replaceable> $tenant</userinput></screen>
<para>For example:</para>
<screen><prompt>$</prompt> <userinput>nova quota-update --user $tenantUser --floating-ips 12 $tenant</userinput>
<prompt>$</prompt> <userinput>nova quota-show --user $tenantUser --tenant $tenant</userinput>
<computeroutput>+-----------------------------+-------+
| 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 |
+-----------------------------+-------+
</computeroutput></screen>
<note>
<para>To view a list of options for the
<command>quota-update</command> command, run:
</para>
<screen><prompt>$</prompt> <userinput>nova help quota-update</userinput></screen></note>
</step>
</procedure>
</section>
</section>