Merge "Update Storwize/SVC driver documentation"

This commit is contained in:
Jenkins 2013-09-10 17:37:10 +00:00 committed by Gerrit Code Review
commit 12f0d43dcc

View File

@ -13,7 +13,7 @@
<simplesect> <simplesect>
<title>Network Configuration</title> <title>Network Configuration</title>
<para>The Storwize family or SVC system must be <para>The Storwize family or SVC system must be
configured for iSCSI, Fibre Channel, or both.</para> configured for iSCSI, Fibre Channel, or both.</para>
<para>If using iSCSI, each Storwize family or SVC node should <para>If using iSCSI, each Storwize family or SVC node should
@ -80,8 +80,8 @@
</simplesect> </simplesect>
<simplesect> <simplesect>
<title>Configuring storage pools</title> <title>Configuring storage pools</title>
<para>The IBM Storwize/SVC driver allocates all volumes in a <para>Each instance of the IBM Storwize/SVC driver allocates
single pool. all volumes in a single pool.
The pool should be created in advance and be The pool should be created in advance and be
provided to the driver using the provided to the driver using the
<literal>storwize_svc_volpool_name</literal> <literal>storwize_svc_volpool_name</literal>
@ -161,9 +161,7 @@
<para>You can create an SSH key pair using OpenSSH, <para>You can create an SSH key pair using OpenSSH,
by running: by running:
</para> </para>
<programlisting> <screen><prompt>$</prompt> <userinput>ssh-keygen -t rsa</userinput></screen>
ssh-keygen -t rsa
</programlisting>
<para>The command prompts for a file to save the key <para>The command prompts for a file to save the key
pair. pair.
For example, if you select 'key' as the For example, if you select 'key' as the
@ -199,9 +197,7 @@ ssh-keygen -t rsa
SVC driver by setting the SVC driver by setting the
<literal>volume_driver</literal> option in <literal>volume_driver</literal> option in
<filename>cinder.conf</filename> as follows:</para> <filename>cinder.conf</filename> as follows:</para>
<programlisting> <programlisting>volume_driver = cinder.volume.drivers.storwize_svc.StorwizeSVCDriver</programlisting>
volume_driver = cinder.volume.drivers.storwize_svc.StorwizeSVCDriver
</programlisting>
</simplesect> </simplesect>
<simplesect> <simplesect>
<title>Configuring options for the Storwize family and <title>Configuring options for the Storwize family and
@ -213,10 +209,10 @@ volume_driver = cinder.volume.drivers.storwize_svc.StorwizeSVCDriver
<table rules="all"> <table rules="all">
<caption>List of configuration flags for Storwize <caption>List of configuration flags for Storwize
storage and SVC driver</caption> storage and SVC driver</caption>
<col width="35%"/> <col width="40%"/>
<col width="15%"/> <col width="10%"/>
<col width="15%"/> <col width="12%"/>
<col width="35%"/> <col width="38%"/>
<thead> <thead>
<tr> <tr>
<td>Flag name</td> <td>Flag name</td>
@ -408,6 +404,16 @@ volume_driver = cinder.volume.drivers.storwize_svc.StorwizeSVCDriver
</para></footnote> </para></footnote>
</para></td> </para></td>
</tr> </tr>
<tr>
<td><para>
<literal>storwize_svc_vol_iogrp</literal>
</para>
</td>
<td><para>Optional</para></td>
<td><para>0</para></td>
<td><para>The I/O group in which to allocate vdisks
</para></td>
</tr>
<tr> <tr>
<td><para> <td><para>
<literal>storwize_svc_flashcopy_timeout <literal>storwize_svc_flashcopy_timeout
@ -457,96 +463,94 @@ volume_driver = cinder.volume.drivers.storwize_svc.StorwizeSVCDriver
</para></footnote> </para></footnote>
</para></td> </para></td>
</tr> </tr>
<tr>
<td><para>
<literal>storwize_svc_multihost_enabled
</literal>
</para>
</td>
<td><para>Optional</para></td>
<td><para>True</para></td>
<td><para>Enable mapping vdisks to multiple hosts
<footnote xml:id='storwize-svc-fn9'>
<para>This option allows the driver to map a vdisk
to more than one host at a time. This scenario
occurs during migration of a virtual machine
with an attached volume; the volume is
simultaneously mapped to both the source and
destination compute hosts. If your deployment
does not require attaching vdisks to multiple
hosts, setting this flag to False will provide
added safety.
</para></footnote>
</para></td>
</tr>
</tbody> </tbody>
</table> </table>
</simplesect> </simplesect>
<simplesect> <simplesect>
<title>Working with multiple back-ends</title> <title>Placement with volume types</title>
<para>Cinder has support for multiple back-ends. This <para>The IBM Storwize/SVC driver exposes capabilities
can be accomplished by running multiple instances of that can be added to the <literal>extra specs</literal>
<systemitem class="service">cinder-volume</systemitem>, each with its own configuration file, of volume types, and used by the filter scheduler to
or by including multiple sections in one configuration determine placement of new volumes. Make sure to prefix
file. For example: these keys with <literal>capabilities:</literal> to
<programlisting> indicate that the scheduler should use them. The following
[DEFAULT] <literal>extra specs</literal> are supported:</para>
...
enabled_backends = v7k1,v7k2
[v7k1] <itemizedlist>
... <listitem><para>capabilities:volume_backend_name - Specify
a specific backend where the volume should be created. The
backend name is a contatenation of the name of the
IBM Storwize/SVC storage system as shown in
<literal>lssystem</literal>, an underscore,
and the name of the pool (mdisk group). For example:
<programlisting>capabilities:volume_backend_name=my7000_openstackpool</programlisting>
</para></listitem>
[v7k2] <listitem><para>capabilities:compression_support - Specify
... a backend according to compression support. A value of
</programlisting>Here, <literal>True</literal> should be used to request a backend
common options are placed under that supports compression, and a value of
<literal>[DEFAULT]</literal>, while options <literal>False</literal> will request a backend that does
specific to a back-end are placed in the appropriate not support compression. If you do not have constraints on
section.</para> compression support, do not set this key. Note that
specifying <literal>True</literal> does not enable
compression; it only requests that the volume be placed on
a backend that supports compression. Example syntax:
<programlisting>capabilities:compression_support='&lt;is&gt; True'</programlisting>
</para></listitem>
<para>By default, volumes are allocated between back-ends <listitem><para>capabilities:easytier_support - Similar
to balance allocated space. semantics as the <literal>compression_support</literal> key,
However, <literal>volume types</literal> can be used to have but for specifying according to support of the Easy Tier
finer-grained control over where volumes are allocated. feature. Example syntax:
Each volume type contains a set of key-value pairs called <programlisting>capabilities:easytier_support='&lt;is&gt; True'</programlisting>
<literal>extra specs</literal>. </para></listitem>
Volume types are typically set a priori by an administrator,
and can be managed using the cinder client, using the
<literal>type-create</literal>, <literal>type-delete</literal>,
<literal>type-key</literal>, and <literal>type-list</literal>
arguments.</para>
<para>The <literal>extra specs</literal> keys which have the <listitem><para>capabilities:storage_protocol - Specifies
"capabilities" prefix (called "scope") are interpreted by the the connection protocol used to attach volumes of this type
Cinder scheduler and used to make placement decisions according to instances. Legal values are <literal>iSCSI</literal> and
to the capabilities of the available back-ends.</para> <literal>FC</literal>. This <literal>extra specs</literal>
value is used for both placement and setting the protocol
<para>The following are examples of supported key-values: used for this volume. In the example syntax, note &lt;in&gt;
</para> is used as opposed to &lt;is&gt; used in the previous
examples.
<para>In the following example, the volume is placed on a <programlisting>capabilities:storage_protocol='&lt;in&gt; FC'</programlisting>
controller named <literal>myv7000</literal>, in a pool named </para></listitem>
<literal>openstack</literal>: </itemizedlist>
<programlisting>
capabilities:volume_backend_name=my7000_openstack
</programlisting></para>
<para>In the next example, the volume is placed
on a controller that supports compression. Specifying
False requires that the volume is placed on a
back-end that does not support compression (if no
constraints on compression support are required, do
not set this key):</para>
<programlisting>
capabilities:compression_support='&lt;is&gt; True'
</programlisting>
<para>The next example shows how Easy Tier support can be with
set with the same semantics as
<literal>compression_support</literal>:</para>
<programlisting>
capabilities:easytier_support='&lt;is&gt; True'
</programlisting>
<para>The connection protocol used to attach volumes to
instances can also be specified using volume types.
In this example, the volume is placed on a controller
that supports Fibre Channel, and Fibre Channel is used
when attaching that volume.
FC can also be replaced with iSCSI.</para>
<programlisting>
capabilities:storage_protocol='&lt;in&gt; FC'
</programlisting>
</simplesect> </simplesect>
<simplesect> <simplesect>
<title>Configuring per-volume creation options</title> <title>Configuring per-volume creation options</title>
<para>The volume types previously described can also <para>Volume types can also
be used to pass options to the IBM Storwize/SVC be used to pass options to the IBM Storwize/SVC
driver, which over-ride the default values set in the driver, which over-ride the default values set in the
configuration file. Contrary to the previous examples configuration file. Contrary to the previous examples
where the "capabilities" scope was used to pass where the "capabilities" scope was used to pass
parameters to the Cinder scheduler, options can be parameters to the Cinder scheduler, options can be
passed to the IBM Storwize/SVC driver with the passed to the IBM Storwize/SVC driver with the
"drivers" scope, or by omitting the scope.</para> "drivers" scope.</para>
<para>The following <literal>extra specs</literal> keys are <para>The following <literal>extra specs</literal> keys are
supported by the IBM Storwize/SVC driver: supported by the IBM Storwize/SVC driver:
@ -558,6 +562,7 @@ capabilities:storage_protocol='&lt;in&gt; FC'
<listitem><para>compression</para></listitem> <listitem><para>compression</para></listitem>
<listitem><para>easytier</para></listitem> <listitem><para>easytier</para></listitem>
<listitem><para>multipath</para></listitem> <listitem><para>multipath</para></listitem>
<listitem><para>iogrp</para></listitem>
</itemizedlist> </itemizedlist>
These keys have the same semantics as their counterparts in the These keys have the same semantics as their counterparts in the
configuration file. They are set similarly; for example, configuration file. They are set similarly; for example,
@ -566,15 +571,15 @@ capabilities:storage_protocol='&lt;in&gt; FC'
</para> </para>
</simplesect> </simplesect>
<simplesect> <simplesect>
<title>Complete volume type examples</title> <title>Example using volume types</title>
<para>In the following example, the volume is placed on <para>In the following example, we create a volume type to specify
a controller named that supports Fibre Channel and a controller that supports iSCSI and
compression, FC is used when attaching the volume, compression, to use iSCSI when attaching the volume,
and compression is enabled:</para> and and to enable compression:</para>
<programlisting> <screen><prompt>$</prompt> <userinput>cinder type-create compressed</userinput>
cinder type-create compressed <prompt>$</prompt> <userinput>cinder type-key compressed set capabilities:storage_protocol='&lt;in&gt; iSCSI' capabilities:compression_support='&lt;is&gt; True' drivers:compression=True</userinput></screen>
cinder type-key compressed set capabilities:storage_protocol=''&lt;in&gt; FC' capabilities:compression_support='&lt;is&gt; True' drivers:compression=True <para>We can then create a 50GB volume using this type:</para>
</programlisting> <screen><prompt>$</prompt> <userinput>cinder create --display-name "compressed volume" --volume-type compressed 50</userinput></screen>
<para>Volume types can be used, for example, to provide users <para>Volume types can be used, for example, to provide users
with different with different
@ -596,4 +601,49 @@ cinder type-key compressed set capabilities:storage_protocol=''&lt;in&gt; FC' ca
</para> </para>
</simplesect> </simplesect>
</section> </section>
<section xml:id="ibm-storwize-svc-driver3">
<title>Operational Notes for the Storwize Family and SVC Driver</title>
<simplesect>
<title>Volume Migration</title>
<para>In the context of OpenStack Block Storage's volume
migration feature, the IBM Storwize/SVC driver enables the
storage's virtualization technology. When migrating a
volume from one pool to another, the volume will appear
in the destination pool almost immediately, while the
storage moves the data in the background.</para>
<note>
<para>To enable this feature, both pools involved in
a given volume migration must have the same values
for <literal>extent_size</literal>. If the pools
have different values for
<literal>extent_size</literal>, the data will still
be moved directly between the pools (not host-side
copy), but the operation will be synchronous.</para>
</note>
</simplesect>
<simplesect>
<title>Extending Volumes</title>
<para>The IBM Storwize/SVC driver allows for extending a
volume's size, but only for volumes without snapshots.</para>
</simplesect>
<simplesect>
<title>Snapshots and Clones</title>
<para>Snapshots are implemented using FlashCopy with no
background copy (space-efficient). Volume clones
(volumes created from existing volumes) are implemented
with FlashCopy, but with background copy enabled. This
means that volume clones are independent, full copies.
While this background copy is taking place, attempting
to delete or extend the source volume will result in
that operation waiting for the copy to complete.</para>
</simplesect>
</section> </section>
</section>