79a6e956bb
the word "settting" should be spelled as "setting", so it is changed. Change-Id: Iea0f3ff1894c8b6fb6f6b12e2865b4118442cb97 Closes-Bug: #1499586
163 lines
7.7 KiB
XML
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>
|