Update huawei driver configuration

We have updated huawei driver configuration.

Closes-Bug: #1415417
Change-Id: Iad4ad0d9af4e75faac2f9070b79ad40ae28b3d24
This commit is contained in:
Bob-OpenStack 2015-02-04 19:14:07 -08:00 committed by Christian Berendt
parent e4c3cde0b5
commit b7415cac5c

View File

@ -1,157 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook" <section xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="huawei-storage-driver">
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="huawei-storage-driver">
<title>Huawei storage driver</title> <title>Huawei storage driver</title>
<para>The Huawei driver supports the iSCSI and Fibre Channel connections and enables OceanStor T <para>The Huawei driver supports the iSCSI and Fibre Channel connections and enables OceanStor T
series unified storage, OceanStor TV3 storage, and OceanStor 18000 high-end storage to series V200R002, OceanStor 18000 series V100R001 and OceanStor V3 series V300R002 storage to
provide block storage services for OpenStack.</para> provide block storage services for OpenStack.</para>
<simplesect> <simplesect>
<title>Supported operations</title> <title>Supported operations</title>
<para>OceanStor T series unified storage supports these
operations:
</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>Create, delete, attach, and detach volumes.</para> <para>Create, delete, expand, attach, and detach volumes.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Create, list, and delete volume snapshots.</para> <para>Create and delete a snapshot.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Create a volume from a snapshot.</para> <para>Copy an image to a volume.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Copy an image to a volume.</para> <para>Copy a volume to an image.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Copy a volume to an image.</para> <para>Create a volume from a snapshot.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Clone a volume.</para> <para>Clone a volume.</para>
</listitem> </listitem>
</itemizedlist>
<para>OceanStor V3 supports these operations:</para>
<itemizedlist>
<listitem>
<para>Create, delete, attach, and detach volumes.</para>
</listitem>
<listitem>
<para>Create, list, and delete volume snapshots.</para>
</listitem>
<listitem>
<para>Copy an image to a volume.</para>
</listitem>
<listitem>
<para>Copy a volume to an image.</para>
</listitem>
<listitem>
<para>Create a volume from a snapshot.</para>
</listitem>
<listitem>
<para>Clone a volume.</para>
</listitem>
</itemizedlist>
<para>OceanStor 18000 supports these operations:</para>
<itemizedlist>
<listitem>
<para>Create, delete, attach, and detach volumes.</para>
</listitem>
<listitem>
<para>Create, list, and delete volume snapshots.</para>
</listitem>
<listitem>
<para>Copy an image to a volume.</para>
</listitem>
<listitem>
<para>Copy a volume to an image.</para>
</listitem>
<listitem>
<para>Create a volume from a snapshot.</para>
</listitem>
<listitem>
<para>Clone a volume.</para>
</listitem>
</itemizedlist> </itemizedlist>
</simplesect> </simplesect>
<simplesect> <simplesect>
<title>Configure Block Storage nodes</title> <title>Configure block storage nodes</title>
<para>In <filename>/etc/cinder</filename>, create the driver <procedure>
configuration file named <step>
<filename>cinder_huawei_conf.xml</filename>.</para> <para>Modify the <filename>cinder.conf</filename> configuration file and add
<para>You must configure <option>Product</option> and <option>volume_driver</option> and <option>cinder_huawei_conf_file
<option>Protocol</option> to specify a storage system items</option>.<itemizedlist>
and link type. The following uses the iSCSI driver as an <listitem>
example. The driver configuration file of OceanStor T <para>Example for configuring a storage system:</para>
series unified storage is shown as follows:</para> <programlisting language="ini">volume_driver = cinder.volume.drivers.huawei.HuaweiVolumeDriver
<programlisting>&lt;?xml version='1.0' encoding='UTF-8'?> cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml</programlisting>
&lt;config> </listitem>
&lt;Storage> </itemizedlist><itemizedlist>
&lt;Product>T&lt;/Product> <listitem>
&lt;Protocol>iSCSI&lt;/Protocol> <para>Example for configuring multiple storage systems:</para>
&lt;ControllerIP0>x.x.x.x&lt;/ControllerIP0> <programlisting language="ini">enabled_backends = t_iscsi, 18000_iscsi
&lt;ControllerIP1>x.x.x.x&lt;/ControllerIP1> [t_iscsi]
&lt;UserName>xxxxxxxx&lt;/UserName> volume_driver = cinder.volume.drivers.huawei.HuaweiVolumeDriver
&lt;UserPassword>xxxxxxxx&lt;/UserPassword> cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf_t_iscsi.xml
&lt;/Storage> volume_backend_name = HuaweiTISCSIDriver
&lt;LUN>
&lt;LUNType>Thick&lt;/LUNType> [18000_iscsi]
&lt;StripUnitSize>64&lt;/StripUnitSize> volume_driver = cinder.volume.drivers.huawei.HuaweiVolumeDriver
&lt;WriteType>1&lt;/WriteType> cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf_18000_iscsi.xml
&lt;MirrorSwitch>1&lt;/MirrorSwitch> volume_backend_name = Huawei18000ISCSIDriver</programlisting>
&lt;Prefetch Type="3" value="0"/> </listitem>
&lt;StoragePool Name="xxxxxxxx"/> </itemizedlist></para>
&lt;StoragePool Name="xxxxxxxx"/> </step>
&lt;/LUN> <step>
&lt;iSCSI> <para>In <filename>/etc/cinder</filename>, create a driver configuration file. The
&lt;DefaultTargetIP>x.x.x.x&lt;/DefaultTargetIP> driver configuration file name must be the same as the <literal>cinder_huawei_conf_file</literal>
&lt;Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/> item in the <filename>cinder_conf</filename> configuration file.</para>
&lt;Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/> </step>
&lt;/iSCSI> <step>
&lt;Host OSType="Linux" HostIP="x.x.x.x, x.x.x.x"/> <title>Configure product and protocol.</title>
&lt;/config></programlisting> <para>Product and Protocol indicate the storage system type and link type
<para>The driver configuration file of OceanStor V3 is respectively. For the OceanStor 18000 series V100R001 storage systems, the
shown as follows:</para> driver configuration file is as follows:</para>
<programlisting>&lt;?xml version='1.0' encoding='UTF-8'?> <programlisting language="xml">&lt;?xml version='1.0' encoding='UTF-8'?>
&lt;config>
&lt;Storage>
&lt;Product>V3&lt;/Product>
&lt;Protocol>iSCSI&lt;/Protocol>
&lt;ControllerIP0>x.x.x.x&lt;/ControllerIP0>
&lt;ControllerIP1>x.x.x.x&lt;/ControllerIP1>
&lt;UserName>xxxxxxxx&lt;/UserName>
&lt;UserPassword>xxxxxxxx&lt;/UserPassword>
&lt;/Storage>
&lt;LUN>
&lt;StripUnitSize>64&lt;/StripUnitSize>
&lt;WriteType>1&lt;/WriteType>
&lt;MirrorSwitch>1&lt;/MirrorSwitch>
&lt;StoragePool Name="xxxxxxxx"/>
&lt;StoragePool Name="xxxxxxxx"/>
&lt;/LUN>
&lt;iSCSI>
&lt;DefaultTargetIP>x.x.x.x&lt;/DefaultTargetIP>
&lt;Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/>
&lt;Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/>
&lt;/iSCSI>
&lt;Host OSType="Linux" HostIP="x.x.x.x, x.x.x.x"/>
&lt;/config></programlisting>
<para>The driver configuration file of OceanStor 18000 is shown as follows:</para>
<para>
<programlisting>&lt;?xml version='1.0' encoding='UTF-8'?>
&lt;config> &lt;config>
&lt;Storage> &lt;Storage>
&lt;Product>18000&lt;/Product> &lt;Product>18000&lt;/Product>
&lt;Protocol>iSCSI&lt;/Protocol> &lt;Protocol>iSCSI&lt;/Protocol>
&lt;RestURL>https://x.x.x.x:8088/deviceManager/rest/&lt;/RestURL> &lt;RestURL>https://x.x.x.x/deviceManager/rest/&lt;/RestURL>
&lt;UserName>xxxxxxxx&lt;/UserName> &lt;UserName>xxxxxxxx&lt;/UserName>
&lt;UserPassword>xxxxxxxx&lt;/UserPassword> &lt;UserPassword>xxxxxxxx&lt;/UserPassword>
&lt;/Storage> &lt;/Storage>
&lt;LUN> &lt;LUN>
&lt;LUNType>Thick&lt;/LUNType> &lt;LUNType>Thick&lt;/LUNType>
&lt;WriteType>1&lt;/WriteType> &lt;WriteType>1&lt;/WriteType>
&lt;MirrorSwitch>1&lt;/MirrorSwitch> &lt;MirrorSwitch>0&lt;/MirrorSwitch>
&lt;LUNcopyWaitInterval>5&lt;/LUNcopyWaitInterval>
&lt;Timeout>432000&lt;/Timeout>
&lt;StoragePool>xxxxxxxx&lt;/StoragePool> &lt;StoragePool>xxxxxxxx&lt;/StoragePool>
&lt;/LUN> &lt;/LUN>
&lt;iSCSI> &lt;iSCSI>
@ -161,339 +90,308 @@
&lt;/iSCSI> &lt;/iSCSI>
&lt;Host OSType="Linux" HostIP="x.x.x.x, x.x.x.x"/> &lt;Host OSType="Linux" HostIP="x.x.x.x, x.x.x.x"/>
&lt;/config></programlisting> &lt;/config></programlisting>
<note> <para>
<title>Note for Fibre Channel driver configuration</title> <note>
<para>You do not need to configure the iSCSI target IP <itemizedlist>
address for the Fibre Channel driver. In the prior <title>Note for fibre channel driver configuration</title>
example, delete the iSCSI configuration:</para> <listitem>
</note> <para>In the configuration files of OceanStor T series V200R002 and
</para> OceanStor V3 V300R002, parameter configurations are the same
<programlisting> &lt;iSCSI> with the exception of the RestURL parameter. The following
describes how to configure the RestURL parameter:</para>
<programlisting language="xml">&lt;RestURL>https://x.x.x.x:8088/deviceManager/rest/&lt;/RestURL></programlisting>
</listitem>
</itemizedlist>
<itemizedlist>
<listitem>
<para>For a Fibre Channel driver, you do not need to configure an
iSCSI target IP address. Delete the iSCSI configuration from the
preceding examples.</para>
<programlisting language="xml">&lt;iSCSI>
&lt;DefaultTargetIP>x.x.x.x&lt;/DefaultTargetIP> &lt;DefaultTargetIP>x.x.x.x&lt;/DefaultTargetIP>
&lt;Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/> &lt;Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/>
&lt;Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/> &lt;Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/>
&lt;/iSCSI></programlisting> &lt;/iSCSI></programlisting>
<para>To add <option>volume_driver</option> and </listitem>
<option>cinder_huawei_conf_file</option> items, you </itemizedlist>
can modify the <filename>cinder.conf</filename> </note>
configuration file as follows:</para> </para>
<programlisting>volume_driver = cinder.volume.drivers.huawei.HuaweiVolumeDriver <para>This table describes the Huawei storage driver configuration options:</para>
cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml</programlisting> <table rules="all">
<para>You can configure multiple Huawei back-end storages as <caption>Huawei storage driver configuration options</caption>
follows:</para> <thead>
<programlisting>enabled_backends = t_iscsi, 18000_iscsi <tr>
[t_iscsi] <th>Property</th>
volume_driver = cinder.volume.drivers.huawei.HuaweiVolumeDriver <th>Type</th>
cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf_t_iscsi.xml <th>Default</th>
volume_backend_name = HuaweiTISCSIDriver <th>Description</th>
[18000_iscsi] </tr>
volume_driver = cinder.volume.drivers.huawei.HuaweiVolumeDriver </thead>
cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf_18000_iscsi.xml <tbody>
volume_backend_name = Huawei18000ISCSIDriver</programlisting> <tr>
</simplesect> <td>
<simplesect> <para><option>Product</option></para>
<title>Configuration file details</title> </td>
<para>This table describes the Huawei storage driver <td>
configuration options:</para> <para>Mandatory</para>
<table rules="all"> </td>
<caption>Huawei storage driver configuration <td>
options</caption> <para>-</para>
<col width="35%"/> </td>
<col width="14%"/> <td>
<col width="16%"/> <para>Type of a storage product. Valid values are
<col width="35%"/> <literal>T</literal>, <literal>TV3</literal>, or
<col width="2%"/> <literal>18000</literal>.</para>
<thead> </td>
<tr> </tr>
<th>Flag name</th> <tr>
<th>Type</th> <td><option>Protocol</option></td>
<th>Default</th> <td>Mandatory</td>
<th>Description</th> <td>
</tr> <para>-</para>
</thead> </td>
<tbody> <td>Type of a protocol. Valid values are <literal>iSCSI</literal> or
<tr> <literal>FC</literal>.</td>
<td> <td/>
<para><option>Product</option></para> </tr>
</td> <tr>
<td> <td><option>RestURL</option></td>
<para>Required</para> <td>Mandatory</td>
</td> <td>
<td> <para>-</para>
<para/> </td>
</td> <td>Access address of the Rest port (required only for the 18000)</td>
<td> </tr>
<para>Type of a storage product. Valid values <tr>
are <literal>T</literal>, <td>
<literal>TV3</literal>, or <literal>18000</literal>.</para> <para><option>UserName</option></para>
</td> </td>
</tr> <td>
<tr> <para>Mandatory</para>
<td><option>Protocol</option></td> </td>
<td>Required</td> <td>
<td> <para>-</para>
<para/> </td>
</td> <td>
<td>Type of a protocol. Valid values are <para>User name of an administrator</para>
<literal>iSCSI</literal> or </td>
<literal>FC</literal>.</td> </tr>
<td/> <tr>
</tr> <td>
<tr> <para><option>UserPassword</option>
<td><option>ControllerIP0</option></td> </para>
<td>Required</td> </td>
<td> <td>
<para/> <para>Mandatory</para>
</td> </td>
<td>IP address of the primary controller (not <td>
required for the 18000)</td> <para>-</para>
</tr> </td>
<tr> <td>
<td> <para>Password of an administrator</para>
<para><option>ControllerIP1</option></para> </td>
</td> </tr>
<td> <tr>
<para>Required</para> <td>
</td> <para><option>LUNType</option></para>
<td> </td>
<para/> <td>
</td> <para>Optional</para>
<td> </td>
<para>IP address of the secondary controller <td>
(not required for the 18000)</para> <para>Thin</para>
</td> </td>
</tr> <td>
<tr> <para>Type of a created LUN. Valid values are
<td><option>RestURL</option></td> <literal>Thick</literal> or <literal>Thin</literal>.</para>
<td>Required</td> </td>
<td> </tr>
<para/> <tr>
</td> <td>
<td>Access address of the Rest port (required only <para><option>StripUnitSize</option>
for the 18000)</td> </para>
</tr> </td>
<tr> <td>
<td> <para>Optional</para>
<para><option>UserName</option></para> </td>
</td> <td>
<td> <para>64</para>
<para>Required</para> </td>
</td> <td>
<td> <para>Stripe depth of a created LUN. The value is expressed in
<para/> KB.</para>
</td> <para>This flag is not valid for a thin LUN.</para>
<td> </td>
<para>User name of an administrator</para> </tr>
</td> <tr>
</tr> <td>
<tr> <para><option>WriteType</option>
<td> </para>
<para><option>UserPassword</option> </td>
</para> <td>
</td> <para>Optional</para>
<td> </td>
<para>Required</para> <td>
</td> <para>1</para>
<td> </td>
<para/> <td>
</td> <para>Cache write method. The method can be write back, write
<td> through, or Required write back. The default value is
<para>Password of an administrator</para> <literal>1</literal>, indicating write back.</para>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<para><option>LUNType</option></para> <para><option>MirrorSwitch</option></para>
</td> </td>
<td> <td>
<para>Optional</para> <para>Optional</para>
</td> </td>
<td> <td>
<para>Thin</para> <para>1</para>
</td> </td>
<td> <td>
<para>Type of a created LUN. Valid values are <para>Cache mirroring policy. The default value is
<literal>Thick</literal> or <literal>1</literal>, indicating that a mirroring policy is
<literal>Thin</literal>.</para> used.</para>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td><option>Prefetch Type</option></td>
<para><option>StripUnitSize</option> <td>Optional</td>
</para> <td>
</td> <para>3</para>
<td> </td>
<para>Optional</para> <td>
</td> <para>Cache prefetch strategy. The strategy can be constant
<td> prefetch, variable prefetch, or intelligent prefetch. Default
<para>64</para> value is <literal>3</literal>, which indicates intelligent
</td> prefetch and is not required for the OceanStor 18000 series.</para>
<td> </td>
<para>Stripe depth of a created LUN. The value </tr>
is expressed in KB.</para> <tr>
<para>This flag is not valid for a thin <td><option>Prefetch Value</option></td>
LUN.</para> <td>Optional</td>
</td> <td>
</tr> <para>0</para>
<tr> </td>
<td> <td>
<para><option>WriteType</option> <para>Cache prefetch value.</para>
</para> </td>
</td> </tr>
<td> <tr>
<para>Optional</para> <td><option>LUNcopyWaitInterval</option></td>
</td> <td>Optional</td>
<td> <td>
<para>1</para> <para>5</para>
</td> </td>
<td> <td>
<para>Cache write method. The method can be <para>After LUN copy is enabled, the plug-in frequently queries the
write back, write through, or Required copy progress. You can set a value to specify the query
write back. The default value is interval.</para>
<literal>1</literal>, indicating write </td>
back.</para> </tr>
</td> <tr>
</tr> <td><option>Timeout</option></td>
<tr> <td>Optional</td>
<td> <td>
<para><option>MirrorSwitch</option></para> <para>432,000</para>
</td> </td>
<td> <td>
<para>Optional</para> <para>Timeout period for waiting LUN copy of an array to
</td> complete.</para>
<td> </td>
<para>1</para> </tr>
</td> <tr>
<td> <td><option>StoragePool</option></td>
<para>Cache mirroring policy. The default <td>Mandatory</td>
value is <literal>1</literal>, indicating <td>
that a mirroring policy is used.</para> <para>-</para>
</td> </td>
</tr> <td>
<tr> <para>Name of a storage pool that you want to use.</para>
<td><option>Prefetch Type</option></td> </td>
<td>Optional</td> </tr>
<td> <tr>
<para>3</para> <td><option>DefaultTargetIP</option></td>
</td> <td>Optional</td>
<td> <td>
<para>Cache prefetch strategy. The strategy <para>-</para>
can be constant prefetch, variable </td>
prefetch, or intelligent prefetch. Default <td>
value is <literal>3</literal>, which <para>Default IP address of the iSCSI port provided for compute
indicates intelligent prefetch and is not nodes.</para>
required for the 18000.</para> </td>
</td> </tr>
</tr> <tr>
<tr> <td><option>Initiator Name</option></td>
<td><option>Prefetch Value</option></td> <td>Optional</td>
<td>Optional</td> <td>
<td> <para>-</para>
<para>0</para> </td>
</td> <td>
<td> <para>Name of a compute node initiator.</para>
<para>Cache prefetch value.</para> </td>
</td> </tr>
</tr> <tr>
<tr> <td><option>Initiator TargetIP</option></td>
<td><option>StoragePool</option></td> <td>Optional</td>
<td>Required</td> <td>
<td> <para>-</para>
<para/> </td>
</td> <td>
<td> <para>IP address of the iSCSI port provided for compute
<para>Name of a storage pool that you want to use.</para> nodes.</para>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><option>DefaultTargetIP</option></td> <td><option>OSType</option></td>
<td>Optional</td> <td>Optional</td>
<td> <td>
<para/> <para>Linux</para>
</td> </td>
<td> <td>The OS type for a compute node.</td>
<para>Default IP address of the iSCSI port </tr>
provided for compute nodes.</para> <tr>
</td> <td><option>HostIP</option></td>
</tr> <td>Optional</td>
<tr> <td>
<td><option>Initiator Name</option></td> <para>-</para>
<td>Optional</td> </td>
<td> <td>The IPs for compute nodes.</td>
<para/> </tr>
</td> </tbody>
<td> </table>
<para>Name of a compute node initiator.</para> <note>
</td> <title>Note for the configuration</title>
</tr> <orderedlist>
<tr> <listitem>
<td><option>Initiator TargetIP</option></td> <para>You can configure one iSCSI target port for each or all compute
<td>Optional</td> nodes. The driver checks whether a target port IP address is
<td> configured for the current compute node. If not, select
<para/> <option>DefaultTargetIP</option>.</para>
</td> </listitem>
<td> <listitem>
<para>IP address of the iSCSI port provided <para>Only one storage pool can be configured.</para>
for compute nodes.</para> </listitem>
</td> <listitem>
</tr> <para>For details about LUN configuration information, see the
<tr> <command>show lun general</command> command in the command-line
<td><option>OSType</option></td> interface (CLI) documentation or run the <command>help -c show lun
<td>Optional</td> general</command> on the storage system CLI.</para>
<td> </listitem>
<para>Linux</para> <listitem>
</td> <para>After the driver is loaded, the storage system obtains any
<td>The OS type for a compute node.</td> modification of the driver configuration file in real time and you
</tr> do not need to restart the <systemitem class="service"
<tr> >cinder-volume</systemitem> service.</para>
<td><option>HostIP</option></td> </listitem>
<td>Optional</td> </orderedlist>
<td> </note>
<para/> </step>
</td> <step>
<td>The IPs for compute nodes.</td> <para>Restart the Cinder service.</para>
</tr> </step>
</tbody> </procedure>
</table>
<note>
<title>Note for the configuration</title>
<orderedlist>
<listitem>
<para>You can configure one iSCSI target port for
each or all compute nodes. The driver checks
whether a target port IP address is configured
for the current compute node. If not, select
<option>DefaultTargetIP</option>.</para>
</listitem>
<listitem>
<para>You can configure multiple storage pools in
one configuration file, which supports the use
of multiple storage pools in a storage system.
(The 18000 driver allows configuration of only
one storage pool.)</para>
</listitem>
<listitem>
<para>For details about LUN configuration
information, see the
<command>createlun</command> command in
the command-line interface (CLI) documentation
or run the <command>help -c
createlun</command> on the storage system
CLI.</para>
</listitem>
<listitem>
<para>After the driver is loaded, the storage
system obtains any modification of the driver
configuration file in real time and you do not
need to restart the <systemitem
class="service">cinder-volume</systemitem>
service.</para>
</listitem>
<listitem>
<para>The driver does not support the
iSCSI multipath scenarios.</para>
</listitem>
</orderedlist>
</note>
</simplesect> </simplesect>
</section> </section>