Bug#1192017-Added user quota info for Compute.

Added procedures for managing user quota info in Compute.
Updated the procedure for setting default quotas (to match the
manpage;'default' moved to end of command). Updated displayed tables,
and updated the listing of quota name/descriptions to match. Also
updated the title of the networking quotas page to be consistent with
other sections.
Updated dashboard page: added note about tenant user updates, combined
compute and block storage tables, removed floating and fixed ip descriptions
(were removed from dashboard listing), fixed procedures to match
Havana 3 changes.

Closes-Bug: #1192017

Change-Id: I059b1bbd6792be2fadfb28f49c2b2b3ec89e1d28
This commit is contained in:
Summer Long 2013-09-26 15:51:06 +10:00
parent 7a3bc9cd6a
commit 7acc0b1785
4 changed files with 415 additions and 362 deletions

View File

@ -3,8 +3,8 @@
xmlns="http://docbook.org/ns/docbook" xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"> xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>Quotas</title> <title>Manage Networking service quotas</title>
<para>Quota is a function used to limit the number of resources. A default quota may be <para>A quota is a function used to limit the number of resources. A default quota may be
enforced for all tenants. Attempting to create resources over the limit triggers an enforced for all tenants. Attempting to create resources over the limit triggers an
error.</para> error.</para>
<screen><prompt>$</prompt> <userinput>neutron net-create test_net</userinput> <screen><prompt>$</prompt> <userinput>neutron net-create test_net</userinput>

View File

@ -11,295 +11,349 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_set_compute_quotas"> xml:id="cli_set_compute_quotas">
<title>Manage Compute service quotas</title> <title>Manage Compute service quotas</title>
<para>As an administrative user, you can view and set the Compute <para>As an administrative user, you can use the <command>nova quota-*</command>
Service quotas for a project. You can also update the quota commands, which are provided by the <literal>python-novaclient</literal>
defaults for a new project.</para> package, to update the Compute Service quotas for a specific tenant or
<table rules="all"> tenant user, as well as update the quota defaults for a new tenant.</para>
<caption>Compute service quotas</caption> <table rules="all">
<col width="20%"/> <caption>Compute Quota Descriptions</caption>
<col width="45%"/> <col width="40%"/>
<col width="35%"/> <col width="60%"/>
<thead> <thead>
<tr> <tr>
<td>Quota</td> <td>
<td>Defines the number of</td> Quota Name
<td>Property name</td> </td>
</tr> <td>
</thead> Description
<tbody> </td>
<tr> </tr>
<td> </thead>
<para>Fixed Ips</para> <tbody>
</td> <tr>
<td> <td>
<para>Fixed IP addresses allowed for each tenant. Must be equal to or greater than the number of <para>
allowed instances.</para> <systemitem>cores</systemitem>
</td> </para>
<td> </td>
<para><systemitem>fixed-ips</systemitem> <td>
</para> <para>
</td> Number of instance cores (VCPUs) allowed per tenant.
</tr> </para>
<tr> </td>
<td> </tr>
<para>Floating Ips</para> <tr>
</td> <td>
<td> <para>
<para>Floating IP addresses allowed for each tenant.</para> <systemitem>fixed-ips</systemitem>
</td> </para>
<td> </td>
<para><systemitem>floating-ips</systemitem> <td>
</para> <para>
</td> Number of fixed IP addresses allowed per tenant. This number
</tr> must be equal to or greater than the number of allowed
<tr> instances.
<td> </para>
<para>Injected File Content Bytes</para> </td>
</td> </tr>
<td> <tr>
<para>Content bytes allowed for each injected file.</para> <td>
</td> <para>
<td> <systemitem>floating-ips</systemitem>
<para><systemitem>injected-file-content-bytes</systemitem> </para>
</para> </td>
</td> <td>
</tr> <para>
<tr> Number of floating IP addresses allowed per tenant.
<td> </para>
<para>Injected File Path Bytes</para> </td>
</td> </tr>
<td> <tr>
<para>Bytes allowed for each injected file path.</para> <td>
</td> <para>
<td> <systemitem>injected-file-content-bytes</systemitem>
<para><systemitem>injected-file-path-bytes</systemitem> </para>
</para> </td>
</td> <td>
</tr> <para>
<tr> Number of content bytes allowed per injected file.
<td> </para>
<para>Injected Files</para> </td>
</td> </tr>
<td> <tr>
<para>Injected files allowed for each tenant.</para> <td>
</td> <para>
<td> <systemitem>injected-file-path-bytes</systemitem>
<para><systemitem>injected-files</systemitem> </para>
</para> </td>
</td> <td>
</tr> <para>
<tr> Number of bytes allowed per injected file path.
<td> </para>
<para>Instances</para> </td>
</td> </tr>
<td> <tr>
<para>Instances allowed for each tenant.</para> <td>
</td> <para>
<td> <systemitem>injected-files</systemitem>
<para><systemitem>instances</systemitem> </para>
</para> </td>
</td> <td>
</tr> <para>
<tr> Number of injected files allowed per tenant.
<td> </para>
<para>Key Pairs</para> </td>
</td>
<td> </tr>
<para>Key pairs allowed for each user.</para> <tr>
</td> <td>
<td> <para>
<para><systemitem>key-pairs</systemitem> <systemitem>instances</systemitem>
</para> </para>
</td> </td>
</tr> <td>
<tr> <para>
<td> Number of instances allowed per tenant.
<para>Metadata Items</para> </para>
</td> </td>
<td> </tr>
<para>Metadata items allowed for each instance.</para> <tr>
</td> <td>
<td> <para>
<para><systemitem>metadata-items</systemitem> <systemitem>key-pairs</systemitem>
</para> </para>
</td> </td>
</tr> <td>
<tr> <para>
<td> Number of key pairs allowed per user.
<para>Ram</para> </para>
</td> </td>
<td> </tr>
<para>Megabytes of instance RAM allowed for each <tr>
tenant.</para> <td>
</td> <para>
<td> <systemitem>metadata-items</systemitem>
<para><systemitem>ram</systemitem> </para>
</para> </td>
</td> <td>
</tr> <para>
<tr> Number of metadata items allowed per instance.
<td> </para>
<para>Security Group Rules</para> </td>
</td> </tr>
<td> <tr>
<para>Rules for each security group.</para> <td>
</td> <para>
<td> <systemitem>ram</systemitem>
<para><systemitem>security-group-rules</systemitem> </para>
</para> </td>
</td> <td>
</tr> <para>
<tr> Megabytes of instance ram allowed per tenant.
<td> </para>
<para>Security Groups</para> </td>
</td> </tr>
<td> <tr>
<para>Security groups for each project.</para> <td>
</td> <para>
<td> <systemitem>security-groups</systemitem>
<para><systemitem>security-groups</systemitem> </para>
</para> </td>
</td> <td>
</tr> <para>
<tr> Number of security groups per tenant.
<td> </para>
<para>VCPUs</para> </td>
</td> </tr>
<td> <tr>
<para>Instance cores allowed for each project.</para> <td>
</td> <para>
<td> <systemitem>security-group-rules</systemitem>
<para><systemitem>cores</systemitem> </para>
</para> </td>
</td> <td>
</tr> <para>
</tbody> Number of rules per security group.
</table> </para>
<section xml:id="cli_set_compute_quotas_procedure"> </td>
<title>View and update Compute service quotas</title> </tr>
<para>As an administrative user, you can view and update project
quotas.</para> </tbody>
<procedure> </table>
<step> <section xml:id="cli_set_compute_tenant_quotas_procedure">
<para>List the default Compute service project quotas:</para> <title>View and update Compute quotas for a tenant (project)</title>
<screen><prompt>$</prompt> <userinput>nova quota-defaults</userinput></screen> <procedure>
<screen><computeroutput>+-----------------------------+-------+ <title>To view and update default quota values</title>
| Property | Value | <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 |
+-----------------------------+-------+ +-----------------------------+-------+
| metadata_items | 128 | | instances | 10 |
| injected_file_content_bytes | 10240 | | cores | 20 |
| ram | 51200 | | ram | 51200 |
| floating_ips | 10 | | floating_ips | 10 |
| key_pairs | 100 |
| instances | 10 |
| security_group_rules | 20 |
| injected_files | 5 |
| cores | 20 |
| fixed_ips | -1 | | fixed_ips | -1 |
| injected_file_path_bytes | 255 |
| security_groups | 10 |
+-----------------------------+-------+</computeroutput></screen>
</step>
<step>
<para>To update a default value for a new project, update the
<literal>default</literal> property in the
<filename>/etc/nova/nova.conf</filename> file, as
follows:</para>
<screen><prompt>$</prompt> <userinput>nova quota-class-update default --<replaceable>key</replaceable> <replaceable>value</replaceable></userinput></screen>
<para>For example:</para>
<screen><prompt>$</prompt> <userinput>nova quota-class-update default --instances 15</userinput></screen>
</step>
<step>
<para>Verify your changes by showing the quotas for the quota
class, as follows:</para>
<screen><prompt>$</prompt> <userinput>nova quota-class-show default</userinput></screen>
<screen><computeroutput>+-----------------------------+-------+
| Property | Value |
+-----------------------------+-------+
| metadata_items | 128 | | metadata_items | 128 |
| injected_files | 5 |
| injected_file_content_bytes | 10240 | | 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 useable 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 | | ram | 51200 |
| floating_ips | 10 | | floating_ips | 10 |
| key_pairs | 100 |
| instances | 15 |
| security_group_rules | 20 |
| injected_files | 5 |
| cores | 20 |
| fixed_ips | -1 | | fixed_ips | -1 |
| injected_file_path_bytes | 255 |
| security_groups | 10 |
+-----------------------------+-------+</computeroutput></screen>
</step>
</procedure>
</section>
<section xml:id="cli_view_quotas_tenant">
<title>View project quotas</title>
<procedure>
<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>+-----------------------------+-------+
| Property | Value |
+-----------------------------+-------+
| metadata_items | 128 | | metadata_items | 128 |
| injected_files | 5 |
| injected_file_content_bytes | 10240 | | injected_file_content_bytes | 10240 |
| ram | 51200 | | injected_file_path_bytes | 255 |
| floating_ips | 12 |
| key_pairs | 100 | | 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
<prompt>#</prompt> nova quota-show --tenant $tenant</userinput>
<computeroutput>+-----------------------------+-------+
| Quota | Limit |
+-----------------------------+-------+
| instances | 10 | | instances | 10 |
| security_group_rules | 20 |
| injected_files | 5 |
| cores | 20 | | cores | 20 |
| fixed_ips | -1 |
| injected_file_path_bytes | 255 |
| security_groups | 10 |
+-----------------------------+-------+</computeroutput></screen>
</step>
</procedure>
</section>
<section xml:id="cli_update_quotas_projects">
<title>Update project quotas</title>
<procedure>
<step>
<para>Get 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 specified 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
<prompt>$</prompt> nova quota-show --tenant $tenant</userinput>
<computeroutput>+-----------------------------+-------+
| Property | Value |
+-----------------------------+-------+
| metadata_items | 128 |
| injected_file_content_bytes | 10240 |
| ram | 51200 | | ram | 51200 |
| floating_ips | 20 | | floating_ips | 20 |
| key_pairs | 100 |
| instances | 10 |
| security_group_rules | 20 |
| injected_files | 5 |
| cores | 20 |
| fixed_ips | -1 | | fixed_ips | -1 |
| metadata_items | 128 |
| injected_files | 5 |
| injected_file_content_bytes | 10240 |
| injected_file_path_bytes | 255 | | injected_file_path_bytes | 255 |
| key_pairs | 100 |
| security_groups | 10 | | security_groups | 10 |
+-----------------------------+-------+</computeroutput></screen> | 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 useable 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 useable 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 useable 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 useable 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
<prompt>#</prompt> 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> <note>
<para>To view a list of options for the <para>To view a list of options for the
<command>quota-update</command> command, run:</para> <command>quota-update</command> command, run:
<screen><prompt>$</prompt> <userinput>nova help quota-update</userinput></screen> </para>
</note> <screen><prompt>$</prompt> <userinput>nova help quota-update</userinput></screen></note>
</step> </step>
</procedure> </procedure>
</section> </section>
</section> </section>

View File

@ -12,43 +12,45 @@
xml:id="dashboard_set_quotas"> xml:id="dashboard_set_quotas">
<?dbhtml stop-chunking?> <?dbhtml stop-chunking?>
<title>View and manage quotas</title> <title>View and manage quotas</title>
<para>As an administrative user, you can set quotas when you <xref <para>To prevent system capacities from being exhausted without notification,
linkend="dashboard_create_project"/> or update quotas for an you can set up quotas. Quotas are operational limits. For example, the
existing project. Quotas are operational limits that prevent number of gigabytes allowed for each tenant can be controlled so that
system capacities from being exhausted without notification. For cloud resources are optimized. Quotas can be enforced at both the tenant
example, to optimize cloud resources, you can control the number (or project) and the tenant-user level.</para>
of gigabytes allowed for each project. You enforce quotas at the
project, or tenant, level rather than at the user level.</para>
<para>Typically, you change quotas when a project needs more than 10 <para>Typically, you change quotas when a project needs more than 10
volumes or 1 TB on a Compute node.</para> volumes or 1 TB on a Compute node.</para>
<para>The following tables describe the Compute and Block Storage <para>Using the Dashboard, you can view default Compute and Block Storage
quotas for new tenants, as well as update quotas for existing tenants.</para>
<note>
<para>Using the command-line interface, you can manage quotas for the
OpenStack Compute Service, the OpenStack Block Storage Service, and
the OpenStack Networking Service (see <xref linkend="cli_set_quotas"/>).
Additionally, you can update Compute service quotas for
tenant users.</para>
</note>
<para>The following table describes the Compute and Block Storage
service quotas:</para> service quotas:</para>
<table rules="all" width="50%" xml:id="compute_quotas"> <table rules="all" width="50%" xml:id="compute_quotas">
<caption>Compute quotas</caption> <caption>Quota Descriptions</caption>
<col width="30%"/> <col width="30%"/>
<col width="70%"/> <col width="50%"/>
<col width="20%"/>
<thead> <thead>
<tr> <tr>
<th>Quota</th> <th>Quota Name</th>
<th>Defines the number of</th> <th>Defines the number of</th>
<th>Service</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td> <td>
<para>Metadata Items</para> <para>Gigabytes</para>
</td> </td>
<td> <td>
<para>Metadata items allowed for each instance.</para> <para>Volume gigabytes allowed for each project.</para>
</td>
</tr>
<tr>
<td>
<para>VCPUs</para>
</td>
<td>
<para>Instance cores allowed for each project.</para>
</td> </td>
<td>Block Storage</td>
</tr> </tr>
<tr> <tr>
<td> <td>
@ -57,6 +59,7 @@
<td> <td>
<para>Instances allowed for each project.</para> <para>Instances allowed for each project.</para>
</td> </td>
<td>Compute</td>
</tr> </tr>
<tr> <tr>
<td> <td>
@ -65,6 +68,7 @@
<td> <td>
<para>Injected files allowed for each project.</para> <para>Injected files allowed for each project.</para>
</td> </td>
<td>Compute</td>
</tr> </tr>
<tr> <tr>
<td> <td>
@ -73,6 +77,16 @@
<td> <td>
<para>Content bytes allowed for each injected file.</para> <para>Content bytes allowed for each injected file.</para>
</td> </td>
<td>Compute</td>
</tr>
<tr>
<td>
<para>Metadata Items</para>
</td>
<td>
<para>Metadata items allowed for each instance.</para>
</td>
<td>Compute</td>
</tr> </tr>
<tr> <tr>
<td> <td>
@ -81,24 +95,7 @@
<td> <td>
<para>RAM megabytes allowed for each instance.</para> <para>RAM megabytes allowed for each instance.</para>
</td> </td>
</tr> <td>Compute</td>
<tr>
<td>
<para>Floating IPs</para>
</td>
<td>
<para>Floating IP addresses allowed for each project.</para>
</td>
</tr>
<tr>
<td>
<para>Fixed IPs</para>
</td>
<td>
<para>Fixed IP addresses allowed for each project. Must be
equal to or greater than the number of allowed
instances.</para>
</td>
</tr> </tr>
<tr> <tr>
<td> <td>
@ -107,6 +104,7 @@
<td> <td>
<para>Security groups allowed for each project.</para> <para>Security groups allowed for each project.</para>
</td> </td>
<td>Compute</td>
</tr> </tr>
<tr> <tr>
<td> <td>
@ -115,35 +113,7 @@
<td> <td>
<para>Rules allowed for each security group.</para> <para>Rules allowed for each security group.</para>
</td> </td>
</tr> <td>Compute</td>
</tbody>
</table>
<table rules="all" width="50%" xml:id="block_storage_quotas">
<caption>Block Storage quotas</caption>
<col width="30%"/>
<col width="70%"/>
<thead>
<tr>
<th>Quota</th>
<th>Defines the number of</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<para>Volumes</para>
</td>
<td>
<para>Volumes allowed for each project.</para>
</td>
</tr>
<tr>
<td>
<para>Gigabytes</para>
</td>
<td>
<para>Volume gigabytes allowed for each project.</para>
</td>
</tr> </tr>
<tr> <tr>
<td> <td>
@ -152,21 +122,37 @@
<td> <td>
<para>Volume snapshots allowed for each project.</para> <para>Volume snapshots allowed for each project.</para>
</td> </td>
<td>Block Storage</td>
</tr>
<tr>
<td>
<para>VCPUs</para>
</td>
<td>
<para>Instance cores allowed for each project.</para>
</td>
<td>Compute</td>
</tr>
<tr>
<td>
<para>Volumes</para>
</td>
<td>
<para>Volumes allowed for each project.</para>
</td>
<td>Block Storage</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<section xml:id="dashboard_set_quotas_procedure">
<section xml:id="dashboard_view_quotas_procedure">
<title>View default project quotas</title> <title>View default project quotas</title>
<procedure> <procedure>
<step> <step>
<para>Log in to the OpenStack dashboard and choose the <para>Log in to the OpenStack dashboard.</para>
<guilabel>admin</guilabel> project from the
<guilabel>CURRENT PROJECT</guilabel> drop-down
list.</para>
</step> </step>
<step> <step><para>On the <guilabel>Admin</guilabel> tab, click the
<para>On the <guilabel>Admin</guilabel> tab, click the <guilabel>Defaults</guilabel> category.</para>
<guilabel>System Info</guilabel> category.</para>
</step> </step>
<step> <step>
<para>Click the <guilabel>Default Quotas</guilabel> tab to <para>Click the <guilabel>Default Quotas</guilabel> tab to
@ -174,30 +160,31 @@
services.</para> services.</para>
</step> </step>
</procedure> </procedure>
<note><para>You can sort the table by clicking on either the <guilabel>Quota Name</guilabel> or <guilabel>Limit</guilabel> column headers.</para></note>
</section> </section>
<section xml:id="dashboard_project_quotas"> <section xml:id="dashboard_update_project_quotas">
<title>Update project quotas</title> <title>Update project quotas</title>
<procedure> <procedure>
<step>
<para>Log in to the OpenStack dashboard.</para>
</step>
<step> <step>
<para>On the <guilabel>Admin</guilabel> tab, click the <para>On the <guilabel>Admin</guilabel> tab, click the
<guilabel>Projects</guilabel> category.</para> <guilabel>Projects</guilabel> category.</para>
</step> </step>
<step> <step>
<para>Select a project to change its quota values.</para> <para>In the <guilabel>More</guilabel> drop-down list for a project, click
</step> <guilabel>Modify Quotas</guilabel>.</para>
<step>
<para>In the <guilabel>More</guilabel> drop-down list, click
<guilabel>Modify Quotas</guilabel>.</para>
</step> </step>
<step> <step>
<para>On the <guilabel>Quota</guilabel> tab in the <para>On the <guilabel>Quota</guilabel> tab in the
<guilabel>Edit Project</guilabel> window, edit quota <guilabel>Edit Project</guilabel> window, edit the quota
values. Then, click <guibutton>Save</guibutton>.</para> values. Then, click <guibutton>Save</guibutton>.</para>
</step> </step>
</procedure> </procedure>
<note> <note>
<para>The dashboard does not show all possible project quotas. <para>The dashboard does not show all possible project quotas.
To view and update the quotas for a service, use the keystone To view and update the quotas for a service, use its
command-line client. See <xref linkend="cli_set_quotas" command-line client. See <xref linkend="cli_set_quotas"
/>.</para> />.</para>
</note> </note>

View File

@ -16,24 +16,36 @@
notification, you can set up quotas. Quotas are operational notification, you can set up quotas. Quotas are operational
limits. For example, the number of gigabytes allowed for each limits. For example, the number of gigabytes allowed for each
tenant can be controlled so that cloud resources are optimized. tenant can be controlled so that cloud resources are optimized.
Quotas are currently enforced at the tenant (or project) level, Quotas can be enforced at both the tenant (or project)
rather than by user.</para> and the tenant-user level.</para>
<para>Using the command-line interface, you can manage quotas for <para>Using the command-line interface, you can manage quotas for
the OpenStack Compute Service and the Block Storage Service.</para> the OpenStack Compute Service, the OpenStack Block Storage Service,
and the OpenStack Networking Service.</para>
<para>Typically, default values are changed because a tenant <para>Typically, default values are changed because a tenant
requires more than 10 volumes, or more than 1TB on a Compute node.</para> requires more than 10 volumes, or more than 1TB on a Compute node.</para>
<note> <note>
<para>To view all projects: <para>To view all tenants (projects), run:
<screen><prompt>$</prompt> <userinput>keystone tenant-list</userinput> <screen><prompt>$</prompt> <userinput>keystone tenant-list</userinput>
<computeroutput>+----------------------------------+----------+---------+ <computeroutput>+----------------------------------+----------+---------+
| id | name | enabled | | id | name | enabled |
+----------------------------------+----------+---------+ +----------------------------------+----------+---------+
| a981642d22c94e159a4a6540f70f9f8d | admin | True | | e66d97ac1b704897853412fc8450f7b9 | admin | True |
| 934b662357674c7b9f5e4ec6ded4d0e7 | tenant01 | True | | bf4a37b885fe46bd86e999e50adad1d3 | services | True |
| 7bc1dbfd7d284ec4a856ea1eb82dca80 | tenant02 | True | | 21bd1c7c95234fd28f589b60903606fa | tenant01 | True |
| 9c554aaef7804ba49e1b21cbd97d218a | services | True | | f599c5cd1cba4125ae3d7caed08e288c | tenant02 | True |
+----------------------------------+----------+---------+</computeroutput></screen> +----------------------------------+----------+---------+</computeroutput></screen>
</para> </para>
<para>To display all current users for a tenant, run:</para>
<para>
<screen><prompt>$</prompt> <userinput>keystone user-list --tenant-id <replaceable>tenantID</replaceable></userinput>
<computeroutput>+----------------------------------+--------+---------+-------+
| id | name | enabled | email |
+----------------------------------+--------+---------+-------+
| ea30aa434ab24a139b0e85125ec8a217 | demo00 | True | |
| 4f8113c1d838467cad0c2f337b3dfded | demo01 | True | |
+----------------------------------+--------+---------+-------+
</computeroutput></screen>
</para>
</note> </note>
<xi:include href="../common/section_nova_cli_quotas.xml"/> <xi:include href="../common/section_nova_cli_quotas.xml"/>
<xi:include href="section_cinder_cli_quotas.xml"/> <xi:include href="section_cinder_cli_quotas.xml"/>