Added the documentation for private flavors for projects

bug: #1886660

Change-Id: Iebad46f3010591cb3ca5d2da166dea4ae0b32c80
author: tim bell
This commit is contained in:
Tim Bell 2013-12-20 15:42:09 +01:00 committed by Diane Fleming
parent 23684ac94c
commit b2bd6208a3
2 changed files with 155 additions and 128 deletions

View File

@ -103,40 +103,40 @@ volume-type-delete Delete a specific flavor</computeroutput></screen>
use, for example the libvirt driver enables quotas on CPUs
available to a VM, disk tuning, bandwidth I/O, and instance
VIF traffic control.</para>
<para>You can configure the CPU limits with three control
parameters with the nova-manage tool. Here is an example of
configuring the I/O limit:</para>
<screen><prompt>#</prompt> <userinput>nova-manage flavor set_key --name m1.small --key quota:read_bytes_sec --value 10240000</userinput>
<para>You can configure the CPU limits with control parameters
with the nova-manage tool. For example, to configure the I/O
limit:</para>
<screen><prompt>#</prompt> <userinput>nova-manage flavor set_key --name m1.small --key quota:read_bytes_sec --value 10240000</userinput>
<prompt>#</prompt> <userinput>nova-manage flavor set_key --name m1.small --key quota:read_bytes_sec --value 10240000</userinput></screen>
<para>There are CPU control parameters for weight shares,
enforcement intervals for runtime quotas, and a quota for
maximum allowed bandwidth.</para>
<para>The optional <literal>cpu_shares</literal> element specifies the proportional
weighted share for the domain. If this element is omitted, the
service defaults to the OS provided defaults. There is no unit
for the value. It is a relative measure based on the setting of
other VMs. For example, a VM configured with value 2048
gets twice as much CPU time as a VM configured with value
1024.</para>
<para>The optional <literal>cpu_period</literal> element specifies the enforcement
interval (unit: microseconds) for QEMU and LXC hypervisors.
Within a period, each VCPU of the domain is not allowed to
consume more than the quota worth of runtime. The value should be
in range <literal>[1000, 1000000]</literal>. A period with value 0 means no
value.</para>
<para>The optional <literal>cpu_quota</literal> element specifies the maximum allowed
bandwidth (unit: microseconds). A domain with a quota with a
negative value indicates that the domain has infinite
bandwidth, which means that it is not bandwidth controlled.
The value should be in range <literal>[1000, 18446744073709551]</literal> or less
than 0. A quota with value 0 means no value. You can use this
feature to ensure that all vcpus run at the same speed. For
example:</para>
<screen><prompt>#</prompt> <userinput>nova flavor-key m1.low_cpu set quota:cpu_quota=10000</userinput>
<para>The optional <literal>cpu_shares</literal> element specifies
the proportional weighted share for the domain. If this
element is omitted, the service defaults to the OS provided
defaults. There is no unit for the value. It is a relative
measure based on the setting of other VMs. For example, a VM
configured with value 2048 gets twice as much CPU time as a VM
configured with value 1024.</para>
<para>The optional <literal>cpu_period</literal> element specifies
the enforcement interval (unit: microseconds) for QEMU and LXC
hypervisors. Within a period, each VCPU of the domain is not
allowed to consume more than the quota worth of runtime. The
value should be in range <literal>[1000, 1000000]</literal>. A
period with value 0 means no value.</para>
<para>The optional <literal>cpu_quota</literal> element specifies
the maximum allowed bandwidth (unit: microseconds). A domain
with a quota with a negative value indicates that the domain
has infinite bandwidth, which means that it is not bandwidth
controlled. The value should be in range <literal>[1000,
18446744073709551]</literal> or less than 0. A quota with
value 0 means no value. You can use this feature to ensure
that all vcpus run at the same speed. For example:</para>
<screen><prompt>#</prompt> <userinput>nova flavor-key m1.low_cpu set quota:cpu_quota=10000</userinput>
<prompt>#</prompt> <userinput>nova flavor-key m1.low_cpu set quota:cpu_period=20000</userinput></screen>
<para>In this example, the instance of <literal>m1.low_cpu</literal> can only consume
a maximum of 50% CPU of a physical CPU computing
capability.</para>
<para>In this example, the instance of
<literal>m1.low_cpu</literal> can only consume a maximum
of 50% CPU of a physical CPU computing capability.</para>
<para>Through disk I/O quotas, you can set maximum disk write to
10 MB per second for a VM user. For example:</para>
<screen><prompt>#</prompt> <userinput>nova flavor-set m1.medium set disk_write_bytes_sec=10240000</userinput></screen>
@ -185,10 +185,11 @@ volume-type-delete Delete a specific flavor</computeroutput></screen>
<para>Incoming and outgoing traffic can be shaped independently.
The bandwidth element can have at most one inbound and at most
one outbound child element. Leaving any of these children
element out result in no quality of service (QoS) applied on that traffic
direction. So, when you want to shape only the network's
incoming traffic, use inbound only, and vice versa. Each of
these elements have one mandatory attribute average.</para>
element out result in no quality of service (QoS) applied on
that traffic direction. So, when you want to shape only the
network's incoming traffic, use inbound only, and vice versa.
Each of these elements have one mandatory attribute
average.</para>
<para>It specifies average bit rate on the interface being shaped.
Then there are two optional attributes: peak, which specifies
maximum rate at which bridge can send data, and burst, amount
@ -201,4 +202,12 @@ volume-type-delete Delete a specific flavor</computeroutput></screen>
network traffic:</para>
<screen><prompt>#</prompt> <userinput>nova-manage flavor set_key --name m1.small --key quota:inbound_average --value 10240</userinput>
<prompt>#</prompt> <userinput>nova-manage flavor set_key --name m1.small --key quota:outbound_average --value 10240</userinput></screen>
<para>Flavors can also be assigned to particular projects. By
default, a flavor is public and available to all projects.
Private flavors are only accessible to those on the access
list and are invisible to other projects. To
create and assign a private flavor to a project, run these
commands:</para>
<screen><prompt>#</prompt> <userinput>nova flavor-create --is-public false p1.medium auto 512 40 4</userinput>
<prompt>#</prompt> <userinput>nova flavor-access-add 259d06a0-ba6d-4e60-b42d-ab3144411d58 86f94150ed744e08be565c2ff608eef9</userinput></screen>
</section>

View File

@ -3,115 +3,133 @@
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_manage_flavors">
<?dbhtml stop-chunking?>
<?dbhtml stop-chunking?>
<title>Manage flavors</title>
<para>In OpenStack, flavors define the compute, memory, and
storage capacity of nova computing instances. To put it
simply, a flavor is an available hardware configuration
for a server. It defines the <quote>size</quote> of a
virtual server that can be launched.</para>
<para>A flavor consists of the following parameters:</para>
<para>In OpenStack, flavors define the compute, memory, and
storage capacity of nova computing instances. To put it
simply, a flavor is an available hardware configuration for a
server. It defines the <quote>size</quote> of a virtual server
that can be launched.</para>
<para>A flavor consists of the following parameters:</para>
<variablelist>
<varlistentry>
<term>Flavor ID</term>
<listitem>
<para>Automatically generated by OpenStack.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Name</term>
<listitem>
<para>Name for the new flavor.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>VCPUs</term>
<listitem>
<para>Number of virtual CPUs to use.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Memory MB</term>
<listitem>
<para>Amount of RAM to use (in megabytes).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Root Disk GB</term>
<listitem>
<para>Amount of disk space (in gigabytes) to use
for the root (/) partition.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Ephemeral Disk GB</term>
<listitem>
<para>Amount of disk space (in gigabytes) to use
for the ephemeral partition. If unspecified,
the value is 0 by default.</para>
<para>Ephemeral disks offer machine local disk
storage linked to the lifecycle of a VM
instance. When a VM is terminated, all data on
the ephemeral disk is lost. Ephemeral disks
are not included in any snapshots.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Swap</term>
<listitem>
<para>Amount of swap space (in megabytes) to use.
If unspecified, the value is 0 by default.</para>
</listitem>
</varlistentry>
</variablelist>
<para>The default flavors are:</para>
<itemizedlist>
<varlistentry>
<term>Flavor ID</term>
<listitem>
<para>m1.tiny (1 VCPU/0 GB Disk/512 MB RAM)</para>
<para>Automatically generated by OpenStack. For
private flavors, a value from 1 to 255.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Name</term>
<listitem>
<para>m1.smaller (1 VCPU/0 GB Disk/1024 MB RAM)</para>
<para>Name for the new flavor.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>VCPUs</term>
<listitem>
<para>m1.small (1 VCPU/10 GB Disk/2048 MB RAM)</para>
<para>Number of virtual CPUs to use.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Memory MB</term>
<listitem>
<para>m1.medium (2 VCPU/10 GB Disk/3072 MB RAM)</para>
<para>Amount of RAM to use (in megabytes).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Root Disk GB</term>
<listitem>
<para>m1.large (4 VCPU/10 GB Disk/8192 MB RAM)</para>
<para>Amount of disk space (in gigabytes) to use for
the root (/) partition.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Ephemeral Disk GB</term>
<listitem>
<para>m1.xlarge (8 VCPU/10 GB Disk/8192 MB RAM)</para>
<para>Amount of disk space (in gigabytes) to use for
the ephemeral partition. If unspecified, the value
is 0 by default.</para>
<para>Ephemeral disks offer machine local disk storage
linked to the life cycle of a VM instance. When a
VM is terminated, all data on the ephemeral disk
is lost. Ephemeral disks are not included in any
snapshots.</para>
</listitem>
</itemizedlist>
<para>You can create and manage flavors with the nova
</varlistentry>
<varlistentry>
<term>Swap</term>
<listitem>
<para>Amount of swap space (in megabytes) to use. If
unspecified, the value is 0 by default.</para>
</listitem>
</varlistentry>
</variablelist>
<para>The default flavors are:</para>
<itemizedlist>
<listitem>
<para>m1.tiny (1 VCPU/0 GB Disk/512 MB RAM)</para>
</listitem>
<listitem>
<para>m1.smaller (1 VCPU/0 GB Disk/1024 MB RAM)</para>
</listitem>
<listitem>
<para>m1.small (1 VCPU/10 GB Disk/2048 MB RAM)</para>
</listitem>
<listitem>
<para>m1.medium (2 VCPU/10 GB Disk/3072 MB RAM)</para>
</listitem>
<listitem>
<para>m1.large (4 VCPU/10 GB Disk/8192 MB RAM)</para>
</listitem>
<listitem>
<para>m1.xlarge (8 VCPU/10 GB Disk/8192 MB RAM)</para>
</listitem>
</itemizedlist>
<para>You can create and manage flavors with the nova
<command>flavor-*</command> commands provided by the
<filename>python-novaclient</filename> package.</para>
<section xml:id="cli_create_flavor"><title>Create flavors</title>
<procedure>
<step>
<para>List flavors to show the ID and name,
the amount of memory, the amount of disk space
for the root partition and for the ephemeral
partition, the swap, and the number of virtual
CPUs for each flavor.</para>
<screen><prompt>$</prompt> <userinput>nova flavor-list</userinput></screen>
</step>
<step>
<para>If the flavor you want does not exist, you can create a flavor.</para>
<para>When you create a flavor, you must specify
the flavor name, ID, RAM size, disk size, and the
number of VCPUs.</para>
<screen><prompt>$</prompt> <userinput>nova flavor-create <replaceable>FLAVOR_NAME</replaceable> <replaceable>FLAVOR_ID</replaceable> <replaceable>RAM_IN_MB ROOT_DISK_IN_GB</replaceable> <replaceable>NUMBER_OF_VCPUS</replaceable></userinput></screen>
<note><para>The Flavor ID should be a number between 1-255 and should not
contain special characters or spaces.</para></note>
<para>For a list of optional parameters, run the following command:</para> <screen><prompt>$</prompt> <userinput>nova help flavor-create</userinput></screen></step>
</procedure></section>
<section xml:id="cli_delete_flavor"><title>Delete a flavor</title><procedure>
<step>
<para>Delete a specified flavor, as follows:</para>
<screen><prompt>$</prompt> <userinput>nova flavor-delete <replaceable>FLAVOR_ID</replaceable></userinput></screen>
</step>
</procedure></section>
<section xml:id="cli_create_flavor">
<title>Create a flavor</title>
<procedure>
<step>
<para>List flavors to show the ID and name, the amount
of memory, the amount of disk space for the root
partition and for the ephemeral partition, the
swap, and the number of virtual CPUs for each
flavor.</para>
<screen><prompt>$</prompt> <userinput>nova flavor-list</userinput></screen>
</step>
<step>
<para>To create a flavor, specify a name, ID, RAM
size, disk size, and the number of VCPUs for the
flavor, as follows:</para>
<screen><prompt>$</prompt> <userinput>nova flavor-create <replaceable>FLAVOR_NAME</replaceable> <replaceable>FLAVOR_ID</replaceable> <replaceable>RAM_IN_MB ROOT_DISK_IN_GB</replaceable> <replaceable>NUMBER_OF_VCPUS</replaceable></userinput></screen>
<note>
<para>The flavor ID is a number from 1 to 255 and
cannot contain special characters or
spaces.</para>
</note>
<para>For a list of optional parameters, run this
command:</para>
<screen><prompt>$</prompt> <userinput>nova help flavor-create</userinput></screen>
</step>
<step>
<para>After you create a flavor, assign it to a
project by specifying the flavor name or ID and
the tenant ID:</para>
<screen><prompt>$</prompt> <userinput>nova flavor-access-add <replaceable>FLAVOR</replaceable> <replaceable>TENANT_ID</replaceable></userinput></screen>
</step>
</procedure>
</section>
<section xml:id="cli_delete_flavor">
<title>Delete a flavor</title>
<procedure>
<step>
<para>Delete a specified flavor, as follows:</para>
<screen><prompt>$</prompt> <userinput>nova flavor-delete <replaceable>FLAVOR_ID</replaceable></userinput></screen>
</step>
</procedure>
</section>
</section>