JuPing 79a6e956bb Fix the bug of "Incorrect spelling of a word"
the word "settting" should be spelled as "setting",
so it is changed.

Change-Id: Iea0f3ff1894c8b6fb6f6b12e2865b4118442cb97
Closes-Bug: #1499586
2015-09-25 06:30:54 +00:00

163 lines
7.7 KiB
XML

<?xml version="1.0"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="pure-storage-driver" version="5.0">
<title>Pure Storage iSCSI and Fibre Channel volume drivers</title>
<?dbhtml stop-chunking?>
<para>The Pure Storage FlashArray volume drivers for OpenStack Block Storage interact with
configured Pure Storage arrays and support various operations.</para>
<para>Support for iSCSI storage protocol is available with the PureISCSIDriver Volume Driver class,
and Fibre Channel with PureFCDriver.</para>
<para>All drivers are compatible with Purity FlashArrays that support the REST API
version 1.2, 1.3, or 1.4 (Purity 4.0.0 and newer).</para>
<section xml:id="pure-storage-driver-limitations">
<title>Limitations and known issues</title>
<para>If you do not set up the nodes hosting instances to use multipathing, all network
connectivity will use a single physical port on the array. In addition to
significantly limiting the available bandwidth, this means you do not have the
high-availability and non-disruptive upgrade benefits provided by FlashArray.</para>
<para>Workaround: You must set up multipathing on your hosts.</para>
</section>
<section xml:id="pure-storage-driver-supported-operations">
<title>Supported operations</title>
<itemizedlist>
<listitem>
<para>Create, delete, attach, detach, retype, clone, and extend volumes.</para>
</listitem>
<listitem>
<para>Create a volume from snapshot.</para>
</listitem>
<listitem>
<para>Create, list, and delete volume snapshots.</para>
</listitem>
<listitem>
<para>Create, list, update, and delete consistency groups.</para>
</listitem>
<listitem>
<para>Create, list, and delete consistency group snapshots.</para>
</listitem>
<listitem>
<para>Manage and unmanage a volume.</para>
</listitem>
<listitem>
<para>Manage and unmanage a snapshot.</para>
</listitem>
<listitem>
<para>Get volume statistics.</para>
</listitem>
<listitem>
<para>Create a thin provisioned volume.</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="pure-storage-driver-configure">
<title>Configure OpenStack and Purity</title>
<para>You need to configure both your Purity array and your OpenStack cluster.</para>
<note>
<para>These instructions assume that the <systemitem class="service"
>cinder-api</systemitem> and <systemitem class="service"
>cinder-scheduler</systemitem> services are installed and configured in your OpenStack cluster.</para>
</note>
<procedure>
<step>
<title>Configure the OpenStack Block Storage service</title>
<para>In these steps, you will edit the <filename>cinder.conf</filename> file to configure OpenStack Block Storage
service to enable multipathing and to use the Pure Storage FlashArray as back-end storage.</para>
<substeps>
<step>
<title>Retrieve an API token from Purity</title>
<para>The OpenStack Block Storage service configuration requires an API token from Purity. Actions
performed by the volume driver use this token for authorization. Also, Purity logs the
volume driver's actions as being performed by the user who owns this API token.</para>
<para>If you created a Purity user account that is dedicated to managing your OpenStack
Block Storage volumes, copy the API token from that user account.</para>
<para>Use the appropriate create or list command below to display and copy the Purity API
token:</para>
<stepalternatives>
<step>
<para>To create a new API token:</para>
<screen><prompt>$</prompt> <userinput>pureadmin create --api-token <replaceable>USER</replaceable></userinput></screen>
<para>The following is an example output:</para>
<para>
<screen><prompt>$</prompt> <userinput>pureadmin create --api-token pureuser</userinput>
<computeroutput>Name API Token Created
pureuser 902fdca3-7e3f-d2e4-d6a6-24c2285fe1d9 2014-08-04 14:50:30</computeroutput></screen>
</para>
</step>
<step>
<para>To list an existing API token:</para>
<screen><prompt>$</prompt> <userinput>pureadmin list --api-token --expose <replaceable>USER</replaceable></userinput></screen>
<para>The following is an example output:</para>
<para>
<screen><prompt>$</prompt> <userinput>pureadmin list --api-token --expose pureuser</userinput>
<computeroutput>Name API Token Created
pureuser 902fdca3-7e3f-d2e4-d6a6-24c2285fe1d9 2014-08-04 14:50:30</computeroutput></screen>
</para>
</step>
</stepalternatives>
</step>
<step>
<para>Copy the API token retrieved
(<literal>902fdca3-7e3f-d2e4-d6a6-24c2285fe1d9</literal> from the examples above) to use in the next step.</para>
</step>
<step>
<title>Edit the OpenStack Block Storage service configuration file</title>
<para>The following sample <filename>/etc/cinder/cinder.conf</filename> configuration lists
the relevant settings for a typical Block Storage service using a single Pure Storage
array:</para>
<programlisting language="ini">
[DEFAULT]
....
enabled_backends = puredriver-1
default_volume_type = puredriver-1
....
[puredriver-1]
volume_backend_name = puredriver-1
volume_driver = <replaceable>PURE_VOLUME_DRIVER</replaceable>
san_ip = <replaceable>IP_PURE_MGMT</replaceable>
pure_api_token = <replaceable>PURE_API_TOKEN</replaceable>
use_multipath_for_image_xfer = True</programlisting>
<para>Replace the following variables accordingly:</para>
<variablelist>
<varlistentry>
<term>PURE_VOLUME_DRIVER</term>
<listitem>
<para>Use either cinder.volume.drivers.pure.PureISCSIDriver for iSCSI
or cinder.volume.drivers.pure.PureFCDriver for Fibre Channel connectivity.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>IP_PURE_MGMT</term>
<listitem>
<para>The IP address of the Pure Storage array's management interface or a domain name
that resolves to that IP address.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PURE_API_TOKEN</term>
<listitem>
<para>The Purity Authorization token that the volume driver uses to perform volume
management on the Pure Storage array.</para>
</listitem>
</varlistentry>
</variablelist>
</step>
</substeps>
</step>
</procedure>
<note>
<para>The volume driver automatically creates purity host objects for initiators as needed. If
CHAP authentication is enabled via the <option>use_chap_auth</option> setting, you must ensure
there are no manually created host objects with IQN's that will be used by the OpenStack Block
Storage. The driver will only modify credentials on hosts that it manages.
</para>
</note>
<note>
<para>If using the PureFCDriver it is recommended to use the OpenStack Block Storage Fibre Channel Zone Manager.
</para>
</note>
</section>
</section>