Merge "Update document for Huawei cinder volume driver"

This commit is contained in:
Jenkins 2013-10-14 23:22:05 +00:00 committed by Gerrit Code Review
commit 77f5b721c0

View File

@ -5,77 +5,132 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="huawei-storage-driver"> xml:id="huawei-storage-driver">
<title>Huawei Storage Driver</title> <title>Huawei Storage Driver</title>
<para>Huawei storage drivers integrate OceanStor T series unified storage with OceanStor <para>Huawei driver supports the iSCSI and Fibre Channel connections and enables
Dorado high-performance storage to provide block storage services for OceanStor T series unified storage, OceanStor Dorado high-performance storage, and OceanStor
OpenStack.</para> HVS high-end storage to provide block storage services for OpenStack.</para>
<simplesect> <simplesect>
<title>Supported Operations</title> <title>Supported Operations</title>
<para>OceanStor T series unified storage supports the following operations:<itemizedlist> <para>OceanStor T series unified storage supports the following operations:<itemizedlist>
<listitem> <listitem>
<para>Create volume</para> <para>Create volume</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Delete volume</para> <para>Delete volume</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Attach volume</para> <para>Attach volume</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Detach volume</para> <para>Detach volume</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Create snapshot</para> <para>Create snapshot</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Delete snapshot</para> <para>Delete snapshot</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Create volume from snapshot</para> <para>Create volume from snapshot</para>
</listitem> </listitem>
</itemizedlist>OceanStor Dorado5100 supports the following operations :<itemizedlist> <listitem>
<listitem> <para>Create clone volume</para>
<para>Create volume</para> </listitem>
</listitem> <listitem>
<listitem> <para>Copy image to volume</para>
<para>Delete volume</para> </listitem>
</listitem> <listitem>
<listitem> <para>Copy volume to image</para>
<para>Attach volume</para> </listitem>
</listitem> </itemizedlist>OceanStor Dorado5100 supports the following operations :<itemizedlist>
<listitem> <listitem>
<para>Detach volume</para> <para>Create volume</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Create snapshot</para> <para>Delete volume</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Delete snapshot</para> <para>Attach volume</para>
</listitem> </listitem>
</itemizedlist>OceanStor Dorado2100 G2 supports the following operations :<itemizedlist> <listitem>
<listitem> <para>Detach volume</para>
<para>Create volume</para> </listitem>
</listitem> <listitem>
<listitem> <para>Create snapshot</para>
<para>Delete volume</para> </listitem>
</listitem> <listitem>
<listitem> <para>Delete snapshot</para>
<para>Attach volume</para> </listitem>
</listitem> <listitem>
<listitem> <para>Copy image to volume</para>
<para>Detach volume</para> </listitem>
</listitem> <listitem>
</itemizedlist></para> <para>Copy volume to image</para>
</simplesect> </listitem>
</itemizedlist>OceanStor Dorado2100 G2 supports the following operations :<itemizedlist>
<listitem>
<para>Create volume</para>
</listitem>
<listitem>
<para>Delete volume</para>
</listitem>
<listitem>
<para>Attach volume</para>
</listitem>
<listitem>
<para>Detach volume</para>
</listitem>
<listitem>
<para>Copy image to volume</para>
</listitem>
<listitem>
<para>Copy volume to image</para>
</listitem>
</itemizedlist>OceanStor HVS supports the following operations:<itemizedlist>
<listitem>
<para>Create volume</para>
</listitem>
<listitem>
<para>Delete volume</para>
</listitem>
<listitem>
<para>Attach volume</para>
</listitem>
<listitem>
<para>Detach volume</para>
</listitem>
<listitem>
<para>Create snapshot</para>
</listitem>
<listitem>
<para>Delete snapshot</para>
</listitem>
<listitem>
<para>Create volume from snapshot</para>
</listitem>
<listitem>
<para>Create clone volume</para>
</listitem>
<listitem>
<para>Copy image to volume</para>
</listitem>
<listitem>
<para>Copy volume to image</para>
</listitem>
</itemizedlist></para>
</simplesect>
<simplesect> <simplesect>
<title>Configuring Cinder Nodes</title> <title>Configuring Cinder Nodes</title>
<para>In <filename>/etc/cinder</filename>, create the driver configuration file <para>In <filename>/etc/cinder</filename>, create the driver configuration file
named <filename>cinder_huawei_conf.xml</filename>.</para> named <filename>cinder_huawei_conf.xml</filename>.</para>
<para>For OceanStor T series unified storage, the driver configuration file is shown <para>You need to configure <literal>Product</literal> and
as follows:</para> <literal>Protocol</literal> to specify a storage system and link type. The following
<programlisting> uses the iSCSI driver as an example. The driver configuration file of OceanStor T series
&lt;?xml version='1.0' encoding='UTF-8'?> unified storage is shown as follows:</para>
<programlisting>&lt;?xml version='1.0' encoding='UTF-8'?>
&lt;config> &lt;config>
&lt;Storage> &lt;Storage>
&lt;Product>T&lt;/Product>
&lt;Protocol>iSCSI&lt;/Protocol>
&lt;ControllerIP0>x.x.x.x&lt;/ControllerIP0> &lt;ControllerIP0>x.x.x.x&lt;/ControllerIP0>
&lt;ControllerIP1>x.x.x.x&lt;/ControllerIP1> &lt;ControllerIP1>x.x.x.x&lt;/ControllerIP1>
&lt;UserName>xxxxxxxx&lt;/UserName> &lt;UserName>xxxxxxxx&lt;/UserName>
@ -95,14 +150,15 @@
&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> &lt;/iSCSI>
&lt;/config> &lt;Host OSType=”Linux” HostIP=”x.x.x.x, x.x.x.x”/>
</programlisting> &lt;/config></programlisting>
<para>For OceanStor Dorado5100, the driver configuration file is shown as <para>The driver configuration file of OceanStor Dorado5100 is shown as
follows:</para> follows:</para>
<programlisting> <programlisting>&lt;?xml version='1.0' encoding='UTF-8'?>
&lt;?xml version='1.0' encoding='UTF-8'?>
&lt;config> &lt;config>
&lt;Storage> &lt;Storage>
&lt;Product>Dorado&lt;/Product>
&lt;Protocol>iSCSI&lt;/Protocol>
&lt;ControllerIP0>x.x.x.x&lt;/ControllerIP0> &lt;ControllerIP0>x.x.x.x&lt;/ControllerIP0>
&lt;ControllerIP1>x.x.x.x&lt;/ControllerIP1> &lt;ControllerIP1>x.x.x.x&lt;/ControllerIP1>
&lt;UserName>xxxxxxxx&lt;/UserName> &lt;UserName>xxxxxxxx&lt;/UserName>
@ -120,14 +176,15 @@
&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> &lt;/iSCSI>
&lt;/config> &lt;Host OSType=”Linux” HostIP=”x.x.x.x, x.x.x.x”/>
</programlisting> &lt;/config></programlisting>
<para>For OceanStor Dorado2100 G2, the driver configuration file is shown as <para>The driver configuration file of OceanStor Dorado2100 G2 is shown as
follows:</para> follows:</para>
<programlisting> <programlisting>&lt;?xml version='1.0' encoding='UTF-8'?>
&lt;?xml version='1.0' encoding='UTF-8'?>
&lt;config> &lt;config>
&lt;Storage> &lt;Storage>
&lt;Product>Dorado&lt;/Product>
&lt;Protocol>iSCSI&lt;/Protocol>
&lt;ControllerIP0>x.x.x.x&lt;/ControllerIP0> &lt;ControllerIP0>x.x.x.x&lt;/ControllerIP0>
&lt;ControllerIP1>x.x.x.x&lt;/ControllerIP1> &lt;ControllerIP1>x.x.x.x&lt;/ControllerIP1>
&lt;UserName>xxxxxxxx&lt;/UserName> &lt;UserName>xxxxxxxx&lt;/UserName>
@ -143,25 +200,90 @@
&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> &lt;/iSCSI>
&lt;/config> &lt;Host OSType=”Linux” HostIP=”x.x.x.x, x.x.x.x”/>
</programlisting> &lt;/config></programlisting>
<para>To add <literal>volume-driver</literal> and <para>The driver configuration file of OceanStor HVS is shown as follows:</para>
<literal>cinder_huawei_conf_file</literal> items, you can modify <para>
configuration file <filename>cinder.conf</filename> as follows:</para> <programlisting>&lt;?xml version='1.0' encoding='UTF-8'?>
<programlisting> &lt;config>
volume_driver = cinder.volume.drivers.huawei.huawei_iscsi.HuaweiISCSIDriver &lt;Storage>
cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml &lt;Product>HVS&lt;/Product>
</programlisting> &lt;Protocol>iSCSI&lt;/Protocol>
<xi:include href="../../../common/tables/cinder-huawei.xml"/> &lt;HVSURL>https://x.x.x.x:8088/deviceManager/rest/&lt;/HVSURL>
&lt;UserName>xxxxxxxx&lt;/UserName>
&lt;UserPassword>xxxxxxxx&lt;/UserPassword>
&lt;/Storage>
&lt;LUN>
&lt;LUNType>Thick&lt;/LUNType>
&lt;WriteType>1&lt;/WriteType>
&lt;MirrorSwitch>1&lt;/MirrorSwitch>
&lt;StoragePool>xxxxxxxx&lt;/StoragePool>
&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>
<note>
<para>You do not need to configure the iSCSI target IP address for the Fibre Channel
driver. In the prior example, delete the iSCSI configuration:</para>
</note>
</para>
<programlisting> &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></programlisting>
<para>To add <literal>volume_driver</literal> and <literal>cinder_huawei_conf_file</literal>
items, you can modify configuration file <filename>cinder.conf</filename> as
follows:</para>
<programlisting>volume_driver = cinder.volume.drivers.huawei.HuaweiVolumeDriver
cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml</programlisting>
<para>You can configure multiple Huawei back-end storages as follows:</para>
<programlisting>enabled_backends = t_iscsi, dorado5100_iscsi
[t_iscsi]
volume_driver = cinder.volume.drivers.huawei.HuaweiVolumeDriver
cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf_t_iscsi.xml
volume_backend_name = HuaweiTISCSIDriver
[dorado5100_iscsi]
volume_driver = cinder.volume.drivers.huawei.HuaweiVolumeDriver
cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf_dorado5100_iscsi.xml
volume_backend_name = HuaweiDorado5100ISCSIDriver</programlisting>
<para>OceanStor HVS storage system supports the QoS function. You need to create a QoS
policy for the HVS storage system and create the volume type to enable QoS as follows:</para>
<programlisting>Create volume type: QoS_high
cinder type-create QoS_high
Configure extra_specs for QoS_high:
cinder type-key QoS_high set capabilities:QoS_support="&lt;is> True" drivers:flow_strategy=OpenStack_QoS_high drivers:io_priority=high</programlisting>
<note>
<para><literal>OpenStack_QoS_high</literal> is a QoS policy created by a user for the
HVS storage system. <literal>QoS_high</literal> is the self-defined volume type.
<literal>io_priority</literal> can only be set to <literal>high</literal>,
<literal>normal</literal>, or <literal>low</literal>.</para>
</note>
<para>OceanStor HVS storage system supports the SmartTier function. SmartTier has three
tiers. You can create the volume type to enable SmartTier as follows:</para>
<programlisting>Create volume type: Tier_high
cinder type-create Tier_high
Configure extra_specs for Tier_high:
cinder type-key Tier_high set capabilities:Tier_support="&lt;is> True" drivers:distribute_policy=high drivers:transfer_strategy=high</programlisting>
<note>
<para><literal>distribute_policy</literal> and <literal>transfer_strategy</literal> can
only be set to <literal>high</literal>, <literal>normal</literal>, or
<literal>low</literal>.</para>
</note>
</simplesect> </simplesect>
<simplesect> <simplesect>
<title>Configuration File Details</title> <title>Configuration File Details</title>
<para>All flags of a configuration file are described as follows:<table rules="all"> <para>All flags of a configuration file are described as follows:<table rules="all">
<caption>List of configuration flags for Huawei Storage Driver</caption> <caption>List of configuration flags for Huawei Storage Driver</caption>
<col width="35%"/> <col width="35%"/>
<col width="15%"/> <col width="14%"/>
<col width="15%"/> <col width="16%"/>
<col width="35%"/> <col width="35%"/>
<col width="2%"/>
<thead> <thead>
<tr> <tr>
<td>Flag name</td> <td>Flag name</td>
@ -173,7 +295,7 @@ cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
<tbody> <tbody>
<tr> <tr>
<td> <td>
<para><literal>ControllerIP0</literal></para> <para><literal>Product</literal></para>
</td> </td>
<td> <td>
<para>Mandatory</para> <para>Mandatory</para>
@ -182,9 +304,29 @@ cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
<para/> <para/>
</td> </td>
<td> <td>
<para>IP address of a primary controller.</para> <para>Type of a storage product. The value can be
<literal>T</literal>, <literal>Dorado</literal>, or
<literal>HVS</literal>.</para>
</td> </td>
</tr> </tr>
<tr>
<td><literal>Protocol</literal></td>
<td>Mandatory</td>
<td>
<para/>
</td>
<td>Type of a protocol. The value can be <literal>iSCSI</literal> or
<literal>FC</literal>.</td>
<td/>
</tr>
<tr>
<td><literal>ControllerIP0</literal></td>
<td>Mandatory</td>
<td>
<para/>
</td>
<td>IP address of the primary controller (not required for the HVS)</td>
</tr>
<tr> <tr>
<td> <td>
<para><literal>ControllerIP1</literal></para> <para><literal>ControllerIP1</literal></para>
@ -196,9 +338,18 @@ cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
<para/> <para/>
</td> </td>
<td> <td>
<para>IP address of a secondary controller.</para> <para>IP address of the secondary controller (not required for
the HVS)</para>
</td> </td>
</tr> </tr>
<tr>
<td><literal>HVSURL</literal></td>
<td>Mandatory</td>
<td>
<para/>
</td>
<td>Access address of the Rest port (required only for the HVS)</td>
</tr>
<tr> <tr>
<td> <td>
<para><literal>UserName</literal></para> <para><literal>UserName</literal></para>
@ -210,7 +361,7 @@ cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
<para/> <para/>
</td> </td>
<td> <td>
<para>Administrator user name.</para> <para>User name of an administrator</para>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -225,7 +376,7 @@ cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
<para/> <para/>
</td> </td>
<td> <td>
<para>Administrator password.</para> <para>Password of an administrator</para>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -236,7 +387,7 @@ cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
<para>Optional</para> <para>Optional</para>
</td> </td>
<td> <td>
<para>Thick</para> <para>Thin</para>
</td> </td>
<td> <td>
<para>Type of a created LUN. The value can be <para>Type of a created LUN. The value can be
@ -302,9 +453,9 @@ cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
</td> </td>
<td> <td>
<para>Cache prefetch strategy. The strategy can be constant <para>Cache prefetch strategy. The strategy can be constant
prefetch, variable prefetch, or intelligent prefetch. The prefetch, variable prefetch, or intelligent prefetch. The default
default value is <literal>3</literal>, indicating value is <literal>3</literal>, indicating intelligent prefetch. (not
intelligent prefetch.</para> required for the HVS)</para>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -324,12 +475,13 @@ cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
<para/> <para/>
</td> </td>
<td> <td>
<para>Name of a storage pool that you want to use.</para> <para>Name of a storage pool that you want to use. (not required
for the Dorado2100 G2)</para>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><literal>DefaultTargetIP</literal></td> <td><literal>DefaultTargetIP</literal></td>
<td>Mandatory</td> <td>Optional</td>
<td> <td>
<para/> <para/>
</td> </td>
@ -359,19 +511,38 @@ cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
nodes.</para> nodes.</para>
</td> </td>
</tr> </tr>
<tr>
<td><literal>OSType</literal></td>
<td>Optional</td>
<td>
<para>Linux</para>
</td>
<td>The OS type of Nova computer node.</td>
</tr>
<tr>
<td><literal>HostIP</literal></td>
<td>Optional</td>
<td>
<para/>
</td>
<td>The IPs of Nova computer nodes.</td>
</tr>
</tbody> </tbody>
</table><note> </table><note>
<para>Multiple initiators can be configured in one configuration file, <para>1. You can configure one iSCSI target port for each computing node or for all
supporting multiple compute nodes. If a compute node initiator is not computing nodes. The driver will check whether a target port IP address is
configured, the compute node connects the default target.</para> configured for the current computing node. If such an IP address is not
<para>Multiple storage pools can be configured in one configuration file, configured, select <literal>DefaultTargetIP</literal>.</para>
supporting multiple storage pools in a storage system.</para> <para>2. Multiple storage pools can be configured in one configuration file,
<para>For more details, see command <literal>createlun</literal> in a supporting the use of multiple storage pools in a storage system. (HVS allows
specific command-line interface (CLI) reference or run <command>help -c configuring only one StoragePool.)</para>
createlun</command> in a storage system CLI.</para> <para>3. For details about LUN configuration information, see command
<para>After a driver is loaded, the storage system obtains any modification <literal>createlun</literal> in the specific command-line interface (CLI)
of the driver configuration file in real time and you do not need to document for reference or run <command>help -c createlun</command> on the
restart the <systemitem class="service">cinder-volume</systemitem> service.</para> storage system CLI.</para>
<para>4. 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>
</note></para> </note></para>
</simplesect> </simplesect>
</section> </section>