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 | |
---|---|
|