The Huawei driver supports the iSCSI and Fibre Channel connections and enables OceanStor T series unified storage and OceanStor 18000 high-end storage to provide block storage services for OpenStack.
OceanStor T series unified storage supports these operations:
Create, delete, attach, and detach volumes.
Create, list, and delete volume snapshots.
Create a volume from a snapshot.
Copy an image to a volume.
Copy a volume to an image.
Clone a volume.
OceanStor 18000 supports these operations:
Create, delete, attach, and detach volumes.
Create, list, and delete volume snapshots.
Copy an image to a volume.
Copy a volume to an image.
Create a volume from a snapshot.
Clone a volume.
In /etc/cinder, create the driver
configuration file named
cinder_huawei_conf.xml.
You must configure Product and
Protocol to specify a storage system
and link type. The following uses the iSCSI driver as an
example. The driver configuration file of OceanStor T
series unified storage is shown as follows:
<?xml version='1.0' encoding='UTF-8'?>
<config>
<Storage>
<Product>T</Product>
<Protocol>iSCSI</Protocol>
<ControllerIP0>x.x.x.x</ControllerIP0>
<ControllerIP1>x.x.x.x</ControllerIP1>
<UserName>xxxxxxxx</UserName>
<UserPassword>xxxxxxxx</UserPassword>
</Storage>
<LUN>
<LUNType>Thick</LUNType>
<StripUnitSize>64</StripUnitSize>
<WriteType>1</WriteType>
<MirrorSwitch>1</MirrorSwitch>
<Prefetch Type="3" value="0"/>
<StoragePool Name="xxxxxxxx"/>
<StoragePool Name="xxxxxxxx"/>
</LUN>
<iSCSI>
<DefaultTargetIP>x.x.x.x</DefaultTargetIP>
<Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/>
<Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/>
</iSCSI>
<Host OSType="Linux" HostIP="x.x.x.x, x.x.x.x"/>
</config>The driver configuration file of OceanStor 18000 is shown as follows:
<?xml version='1.0' encoding='UTF-8'?>
<config>
<Storage>
<Product>18000</Product>
<Protocol>iSCSI</Protocol>
<RestURL>https://x.x.x.x:8088/deviceManager/rest/</RestURL>
<UserName>xxxxxxxx</UserName>
<UserPassword>xxxxxxxx</UserPassword>
</Storage>
<LUN>
<LUNType>Thick</LUNType>
<WriteType>1</WriteType>
<MirrorSwitch>1</MirrorSwitch>
<StoragePool>xxxxxxxx</StoragePool>
</LUN>
<iSCSI>
<DefaultTargetIP>x.x.x.x</DefaultTargetIP>
<Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/>
<Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/>
</iSCSI>
<Host OSType="Linux" HostIP="x.x.x.x, x.x.x.x"/>
</config>
![]() | Note for Fibre Channel driver configuration |
|---|---|
You do not need to configure the iSCSI target IP address for the Fibre Channel driver. In the prior example, delete the iSCSI configuration: |
<iSCSI>
<DefaultTargetIP>x.x.x.x</DefaultTargetIP>
<Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/>
<Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/>
</iSCSI>To add volume_driver and
cinder_huawei_conf_file items, you
can modify the cinder.conf
configuration file as follows:
volume_driver = cinder.volume.drivers.huawei.HuaweiVolumeDriver cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
You can configure multiple Huawei back-end storages as follows:
enabled_backends = t_iscsi, 18000_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 [18000_iscsi] volume_driver = cinder.volume.drivers.huawei.HuaweiVolumeDriver cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf_18000_iscsi.xml volume_backend_name = Huawei18000ISCSIDriver
This table describes the Huawei storage driver configuration options:
| Flag name | Type | Default | Description | |
|---|---|---|---|---|
|
|
Required |
Type of a storage product. Valid values are |
||
Protocol |
Required | Type of a protocol. Valid values are
iSCSI or
FC. |
||
ControllerIP0 |
Required | IP address of the primary controller (not required for the 18000) | ||
|
|
Required |
IP address of the secondary controller (not required for the 18000) |
||
RestURL |
Required | Access address of the Rest port (required only for the 18000) | ||
|
|
Required |
User name of an administrator |
||
|
|
Required |
Password of an administrator |
||
|
|
Optional |
Thin |
Type of a created LUN. Valid values are
|
|
|
|
Optional |
64 |
Stripe depth of a created LUN. The value is expressed in KB. This flag is not valid for a thin LUN. |
|
|
|
Optional |
1 |
Cache write method. The method can be
write back, write through, or Required
write back. The default value is
|
|
|
|
Optional |
1 |
Cache mirroring policy. The default
value is |
|
Prefetch Type |
Optional |
3 |
Cache prefetch strategy. The strategy
can be constant prefetch, variable
prefetch, or intelligent prefetch. Default
value is |
|
Prefetch Value |
Optional |
0 |
Cache prefetch value. |
|
StoragePool |
Required |
Name of a storage pool that you want to use. |
||
DefaultTargetIP |
Optional |
Default IP address of the iSCSI port provided for compute nodes. |
||
Initiator Name |
Optional |
Name of a compute node initiator. |
||
Initiator TargetIP |
Optional |
IP address of the iSCSI port provided for compute nodes. |
||
OSType |
Optional |
Linux |
The OS type for a compute node. | |
HostIP |
Optional | The IPs for compute nodes. |
![]() | Note for the configuration |
|---|---|
|

![[Note]](../common/images/admon/note.png)
