Huawei storage driver Huawei driver supports the iSCSI and Fibre Channel connections and enables OceanStor T series unified storage, OceanStor Dorado high-performance storage, and OceanStor HVS high-end storage to provide block storage services for OpenStack. Supported operations OceanStor T series unified storage supports the following operations: Create volume Delete volume Attach volume Detach volume Create snapshot Delete snapshot Create volume from snapshot Create clone volume Copy image to volume Copy volume to image OceanStor Dorado5100 supports the following operations: Create volume Delete volume Attach volume Detach volume Create snapshot Delete snapshot Copy image to volume Copy volume to image OceanStor Dorado2100 G2 supports the following operations: Create volume Delete volume Attach volume Detach volume Copy image to volume Copy volume to image OceanStor HVS supports the following operations: Create volume Delete volume Attach volume Detach volume Create snapshot Delete snapshot Create volume from snapshot Create clone volume Copy image to volume Copy volume to image Configure Cinder nodes In /etc/cinder, create the driver configuration file named cinder_huawei_conf.xml. You must configure and 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 Dorado5100 is shown as follows: <?xml version='1.0' encoding='UTF-8'?> <config> <Storage> <Product>Dorado</Product> <Protocol>iSCSI</Protocol> <ControllerIP0>x.x.x.x</ControllerIP0> <ControllerIP1>x.x.x.x</ControllerIP1> <UserName>xxxxxxxx</UserName> <UserPassword>xxxxxxxx</UserPassword> </Storage> <LUN> <StripUnitSize>64</StripUnitSize> <WriteType>1</WriteType> <MirrorSwitch>1</MirrorSwitch> <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 Dorado2100 G2 is shown as follows: <?xml version='1.0' encoding='UTF-8'?> <config> <Storage> <Product>Dorado</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> <WriteType>1</WriteType> <MirrorSwitch>1</MirrorSwitch> </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 HVS is shown as follows: <?xml version='1.0' encoding='UTF-8'?> <config> <Storage> <Product>HVS</Product> <Protocol>iSCSI</Protocol> <HVSURL>https://x.x.x.x:8088/deviceManager/rest/</HVSURL> <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> 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 and 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, 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 OceanStor HVS storage system supports the QoS function. You must create a QoS policy for the HVS storage system and create the volume type to enable QoS as follows: 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="<is> True" drivers:flow_strategy=OpenStack_QoS_high drivers:io_priority=high is a QoS policy created by a user for the HVS storage system. is the self-defined volume type. Set the option to high, normal, or low. OceanStor HVS storage system supports the SmartTier function. SmartTier has three tiers. You can create the volume type to enable SmartTier as follows: 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="<is> True" drivers:distribute_policy=high drivers:transfer_strategy=high and can only be set to high, normal, or low. Configuration file details This table describes the Huawei storage driver configuration options:
Huawei storage driver configuration options
Flag name Type Default Description
Required Type of a storage product. Valid values are T, Dorado, or HVS.
Required Type of a protocol. Valid values are iSCSI or FC.
Required IP address of the primary controller (not required for the HVS)
Required IP address of the secondary controller (not required for the HVS)
Required Access address of the Rest port (required only for the HVS)
Required User name of an administrator
Required Password of an administrator
Optional Thin Type of a created LUN. Valid values are Thick or Thin.
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 1, indicating write back.
Optional 1 Cache mirroring policy. The default value is 1, indicating that a mirroring policy is used.
Optional 3 Cache prefetch strategy. The strategy can be constant prefetch, variable prefetch, or intelligent prefetch. Default value is 3, which indicates intelligent prefetch and is not required for the HVS.
Optional 0 Cache prefetch value.
Required Name of a storage pool that you want to use. Not required for the Dorado2100 G2.
Optional Default IP address of the iSCSI port provided for compute nodes.
Optional Name of a compute node initiator.
Optional IP address of the iSCSI port provided for Compute nodes.
Optional Linux The OS type for a Compute node.
Optional The IPs for Compute nodes.
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 . You can configure multiple storage pools in one configuration file, which supports the use of multiple storage pools in a storage system. (HVS allows configuration of only one storage pool.) For details about LUN configuration information, see the createlun command in the command-line interface (CLI) documentation or run the help -c createlun on the storage system CLI. 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 cinder-volume service.