Get rid of duplicate cinder file, and makes a few edits

Change-Id: Ib22167d86a3174c65ae4ef869757dadbc16be080
author: diane fleming
This commit is contained in:
Diane Fleming 2013-09-30 11:45:10 -05:00
parent 23d6daffd4
commit 0635e5d86f
6 changed files with 77 additions and 247 deletions

View File

@ -3,14 +3,16 @@
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_manage_volumes">
<?dbhtml stop-chunking?>
<title>Manage volumes</title>
<para>A volume is a detachable block storage device, similar to a
USB hard drive. You can attach a volume to only one instance.
To create and manage volumes, you use a combination of nova
and cinder client commands.</para>
<para>This example creates a volume named
<para os="adminuser">For an example of how to create and manage volumes, see the <link xlink:href="http://docs.openstack.org/user-guide/content/"><citetitle>OpenStack End User Guide</citetitle></link>.</para>
<para os="enduser">This example creates a volume named
<literal>my-new-volume</literal> based on an image.</para>
<section xml:id="cli_list_volumes"><title>Create a volume</title><procedure>
<section xml:id="cli_list_volumes" os="enduser"><title>Create a volume</title><procedure>
<step>
<para>List images, and note the ID of the image to use for
your volume:</para>
@ -85,7 +87,7 @@
</step>
</procedure>
</section>
<section xml:id="cli_attach_volume"><title>Attach a volume to an instance</title>
<section xml:id="cli_attach_volume" os="enduser"><title>Attach a volume to an instance</title>
<procedure> <step>
<para>Attach your volume to a server:</para>
<screen><prompt>$</prompt> <userinput>nova volume-attach 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 573e024d-5235-49ce-8332-be1576d323f8 /dev/vdb</userinput></screen>
@ -129,7 +131,7 @@
bootable.</para>
</step>
</procedure></section>
<section xml:id="cli_delete_volumes"><title>Delete a volume</title>
<section xml:id="cli_delete_volumes" os="enduser"><title>Delete a volume</title>
<procedure>
<step>
<para>To delete your volume, you must first detach it from

View File

@ -32,6 +32,8 @@
<xi:include
href="../common/section_glance_cli_manage_images.xml"/>
<?hard-pagebreak?>
<xi:include href="../common/section_cinder_cli_manage_volumes.xml"/>
<?hard-pagebreak?>
<xi:include href="section_nova_cli_manage_flavors.xml"/>
<?hard-pagebreak?>
<xi:include href="section_nova_specify_host.xml"/>

View File

@ -3,32 +3,53 @@
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="specify-host-to-boot-instances-on">
<title>Select a specific host to boot instances on</title>
<para>If you have the appropriate permissions, you can select the specific host where the
instance will be launched. This is done using the <literal>--availability_zone
<title>Select on which host instances are launched</title>
<para>With the appropriate permissions, you can select on which
host instances are launched and which roles can boot instances
on this host. </para>
<procedure><step><para>To select the host where instances are launched, use the
<literal>--availability_zone
<replaceable>zone</replaceable>:<replaceable>host</replaceable></literal>
arguments to the <command>nova boot</command> command. For example:</para>
<para>
parameter on n the <command>nova boot</command>
command, </para>
<para>For example:</para>
<screen><prompt>$</prompt> <userinput>nova boot --image &lt;uuid&gt; --flavor m1.tiny --key_name test --availability-zone nova:server2</userinput></screen>
</para>
<para>Starting with the Grizzly release, you can specify which roles are permitted to boot
an instance to a specific host with the <literal>create:forced_host</literal> setting
within <filename>policy.json</filename> on the desired roles. By default, only the admin
role has this setting enabled.</para>
<para>You can view the list of valid compute hosts by using the <command>nova
hypervisor-list</command> command, for
example:<screen><prompt>$</prompt> <userinput>nova hypervisor-list</userinput>
</step><step><para>To specify which roles can launch an instance on a specified
host, enable the <literal>create:forced_host</literal>
option in the <filename>policy.json</filename> file.
By default, this option is enabled for only the admin
role.</para></step>
<step>
<para>To view the list of valid compute hosts, use the
<command>nova hypervisor-list</command> command,
as follows:</para><screen><prompt>$</prompt> <userinput>nova hypervisor-list</userinput>
<computeroutput>+----+---------------------+
| ID | Hypervisor hostname |
+----+---------------------+
| 1 | server2 |
| 2 | server3 |
| 3 | server4 |
+----+---------------------+</computeroutput></screen></para>
+----+---------------------+</computeroutput></screen></step></procedure>
<note>
<para>The <literal>--availability_zone
<para>
<itemizedlist>
<listitem>
<para>Beginning in the Folsom release, the
<literal>--availability_zone
<replaceable>zone</replaceable>:<replaceable>host</replaceable></literal>
flag replaced the <literal>--force_hosts</literal> scheduler hint for specifying a
specific host, starting with the Folsom release.</para>
parameter replaces the
<literal>--force_hosts</literal> scheduler
hint parameter.</para>
</listitem>
<listitem>
<para>Beginning in the Grizzly release, you can
enable the
<literal>create:forced_host</literal>
option in the <filename>policy.json</filename>
file to specify which roles can launch an
instance on a specified host.</para>
</listitem>
</itemizedlist>
</para>
</note>
</section>

View File

@ -33,5 +33,5 @@
<?hard-pagebreak?>
<xi:include href="section_heat_cli.xml"/>
<?hard-pagebreak?>
<xi:include href="section_cinder_cli_manage_volumes.xml"/>
<xi:include href="../common/section_cinder_cli_manage_volumes.xml"/>
</chapter>

View File

@ -1,181 +0,0 @@
<?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_manage_volumes">
<title>Manage volumes</title>
<para>A volume is a detachable block storage device, similar to a
USB hard drive. You can attach a volume to only one instance.
To create and manage volumes, you use a combination of nova
and cinder client commands.</para>
<para>This example creates a volume named
<literal>my-volume</literal> based on an image.</para>
<procedure>
<title>To list volumes</title>
<step>
<para>To determine which image to use for your volume,
list images:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>nova image-list</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+--------------------------------------+---------------------------------+--------+--------------------------------------+
| ID | Name | Status | Server |
+--------------------------------------+---------------------------------+--------+--------------------------------------+
| 397e713c-b95b-4186-ad46-6126863ea0a9 | cirros-0.3.1-x86_64-uec | ACTIVE | |
| df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.1-x86_64-uec-kernel | ACTIVE | |
| 3cf852bd-2332-48f4-9ae4-7d926d50945e | cirros-0.3.1-x86_64-uec-ramdisk | ACTIVE | |
| 7e5142af-1253-4634-bcc6-89482c5f2e8a | myCirrosImage | ACTIVE | 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 |
| 89bcd424-9d15-4723-95ec-61540e8a1979 | mysnapshot | ACTIVE | f51ebd07-c33d-4951-8722-1df6aa8afaa4 |
+--------------------------------------+---------------------------------+--------+--------------------------------------+</computeroutput></screen>
<para>Note the ID of the image that you want to
use.</para>
</step>
<step>
<para>To determine which availability zone are available
in which to create your volume, list the availability
zones:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>nova availability-zone-list</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+-----------------------+----------------------------------------+
| Name | Status |
+-----------------------+----------------------------------------+
| internal | available |
| |- devstack-grizzly | |
| | |- nova-conductor | enabled :-) 2013-07-25T16:50:44.000000 |
| | |- nova-consoleauth | enabled :-) 2013-07-25T16:50:44.000000 |
| | |- nova-scheduler | enabled :-) 2013-07-25T16:50:44.000000 |
| | |- nova-cert | enabled :-) 2013-07-25T16:50:44.000000 |
| | |- nova-network | enabled :-) 2013-07-25T16:50:44.000000 |
| nova | available |
| |- devstack-grizzly | |
| | |- nova-compute | enabled :-) 2013-07-25T16:50:39.000000 |
+-----------------------+----------------------------------------+</computeroutput></screen>
<para>Note the name of an available availability zone that
you want to use.</para>
</step>
<step>
<para>Create a volume with 8 GBs of space in the desired
availability zone and based on the desired image, as
follows:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder create 8 --display-name my-new-volume --image-id 397e713c-b95b-4186-ad46-6126863ea0a9 --availability-zone nova</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+---------------------+--------------------------------------+
| Property | Value |
+---------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| created_at | 2013-07-25T17:02:12.472269 |
| display_description | None |
| display_name | my-new-volume |
| id | 573e024d-5235-49ce-8332-be1576d323f8 |
| image_id | 397e713c-b95b-4186-ad46-6126863ea0a9 |
| metadata | {} |
| size | 8 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| volume_type | None |
+---------------------+--------------------------------------+</computeroutput></screen>
</step>
<step>
<para>To verify that your volume was created successfully,
list the available volumes:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder list</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| 573e024d-5235-49ce-8332-be1576d323f8 | available | my-new-volume | 8 | None | true | |
| bd7cf584-45de-44e3-bf7f-f7b50bf235e3 | available | my-bootable-vol | 8 | None | true | |
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+</computeroutput></screen>
<para>If your volume was created successfully, its status
is <literal>available</literal>. If its status is
<literal>error</literal>, you might have tried to
create a volume outside of your quota.</para>
</step>
<step>
<para>Attach your volume to a server:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>nova volume-attach 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 573e024d-5235-49ce-8332-be1576d323f8 /dev/vdb</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+----------+--------------------------------------+
| Property | Value |
+----------+--------------------------------------+
| device | /dev/vdb |
| serverId | 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 |
| id | 573e024d-5235-49ce-8332-be1576d323f8 |
| volumeId | 573e024d-5235-49ce-8332-be1576d323f8 |
+----------+--------------------------------------+</computeroutput></screen>
<para>Note the ID of your volume.</para>
</step>
<step>
<para>Show information for your volume:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder show 573e024d-5235-49ce-8332-be1576d323f8</userinput></screen>
<screen><computeroutput><?db-font-size 65%?><?db-fontsize 75%?>+------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Property | Value |
+------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| attachments | [{u'device': u'/dev/vdb', u'server_id': u'84c6e57d-a6b1-44b6-81eb-fcb36afd31b5', u'id': u'573e024d-5235-49ce-8332-be1576d323f8', u'volume_id': u'573e024d-5235-49ce-8332-be1576d323f8'}] |
| availability_zone | nova |
| bootable | true |
| created_at | 2013-07-25T17:02:12.000000 |
| display_description | None |
| display_name | my-new-volume |
| id | 573e024d-5235-49ce-8332-be1576d323f8 |
| metadata | {} |
| os-vol-host-attr:host | devstack-grizzly |
| os-vol-tenant-attr:tenant_id | 66265572db174a7aa66eba661f58eb9e |
| size | 8 |
| snapshot_id | None |
| source_volid | None |
| status | in-use |
| volume_image_metadata | {u'kernel_id': u'df430cc2-3406-4061-b635-a51c16e488ac', u'image_id': u'397e713c-b95b-4186-ad46-6126863ea0a9', u'ramdisk_id': u'3cf852bd-2332-48f4-9ae4-7d926d50945e', u'image_name': u'cirros-0.3.1-x86_64-uec'} |
| volume_type | None |
+------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+</computeroutput></screen>
<para>From the output, you can see that the volume is
attached to the server with ID
<literal>84c6e57d-a6b1-44b6-81eb-fcb36afd31b5</literal>,
is in the nova availability zone, and is
bootable.</para>
</step>
<step>
<para>To delete your volume, you must first detach it from
the server.</para>
<para>To detach the volume from your server, pass the
server ID and volume ID to the command, as
follows:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>nova volume-detach 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 573e024d-5235-49ce-8332-be1576d323f8</userinput></screen>
<para>The <command>volume-detach</command> command does
not return any output.</para>
</step>
<step>
<para>List volumes:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder list</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| 573e024d-5235-49ce-8332-be1576d323f8 | available | my-new-volume | 8 | None | true | |
| bd7cf584-45de-44e3-bf7f-f7b50bf235e3 | available | my-bootable-vol | 8 | None | true | |
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+</computeroutput></screen>
<para>Note that the volume is now available.</para>
</step>
<step>
<para>Now you can delete the volume, as follows:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder delete my-new-volume</userinput></screen>
<para>The delete command does not return any
output.</para>
</step>
<step>
<para>List the volumes again, and note that the status of
your volume is <literal>deleting</literal>:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder list</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| 573e024d-5235-49ce-8332-be1576d323f8 | deleting | my-new-volume | 8 | None | true | |
| bd7cf584-45de-44e3-bf7f-f7b50bf235e3 | available | my-bootable-vol | 8 | None | true | |
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+</computeroutput></screen>
<para>When the volume is fully deleted, it disappears from
the list of volumes:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder list</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| bd7cf584-45de-44e3-bf7f-f7b50bf235e3 | available | my-bootable-vol | 8 | None | true | |
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+</computeroutput></screen>
</step>
</procedure>
</section>

View File

@ -5,48 +5,34 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="managing-openstack-object-storage-with-swift-cli">
<title>Managing OpenStack Object Storage with CLI
Swift</title>
<para>In the Object Store (swift) project there is a tool that
can perform a variety of tasks on your storage cluster
named swift. This client utility can be used for adhoc
processing, to gather statistics, list items, update
metadata, upload, download and delete files. It is based
on the native swift client library client.py.
Incorporating client.py into swift provides many benefits
such as seamlessly re-authorizing if the current token
expires in the middle of processing, retrying operations
up to five times and a processing concurrency of 10. All
of these things help make the swift tool robust and great
for operational use.</para>
<section xml:id="swift-acls">
<title>Swift ACLs</title>
<para>Swift ACLs work with users and accounts. Users have
roles on accounts - such as '.admin', which allows
full access to all containers and objects under the
account. ACLs are set at the container level and
support lists for read and write access, which are set
with the X-Container-Read and X-Container-Write header
<title>Manage object storage</title>
<para>The OpenStack Object Storage service provides the swift
command-line interface (CLI) that enables you to gather
statistics, list items, update metadata, upload, download, and
delete files. This client is based on the native swift client
library, <literal>client.py</literal>, which seamlessly
re-authenticates if the current token expires during
processing, retries operations multiple times, and provides a
processing concurrency of 10. </para>
<para>Users have roles on accounts. For example, the admin
role enables full access to all containers and objects in an
account. </para>
<para>You can set access control lists (ACLs) are set at the container level
and support lists for read and write access, which are set
with the <literal>X-Container-Read</literal> and
<literal>X-Container-Write</literal> header
respectively.</para>
<para>The swift client can be used to set the acls, using
the post subcommand with the option '-r' for the read
ACL, and '-w' for the write ACL. This example allows
the user 'testuser' to read objects in the container:
<programlisting>
$ swift post -r 'testuser'
</programlisting>
This could instead be a list of users.</para>
<para>If you are using the StaticWeb middleware to allow
<para>You can use the swift client to set the ACLs by using the
<command>post</command> subcommand with the <parameter>-r</parameter> parameter for the read access and
<parameter>-w</parameter> option for the write access. The following example enables the testuser user
to read objects in the container:</para>
<screen><prompt>$</prompt> <userinput>swift post -r 'testuser'</userinput></screen>
<para>You can also use this command with a list of users.</para>
<para>If you use the StaticWeb middleware to enable
OpenStack Object Storage to serve public web content,
you should also be aware of the ACL syntax for
managing allowed referrers. The syntax is '.r:'
be aware of the ACL syntax for
managing allowed referrers. The syntax is <literal>.r:</literal>
followed by a list of allowed referrers. For example,
this command allows all referring domains access to
the object:
<programlisting>
$ swift post -r '.r:*'
</programlisting>
</para>
</section>
the following command gives object access to all referring domains access:</para>
<screen><prompt>$</prompt> <userinput>swift post -r '.r:*'</userinput></screen>
</section>