Fujitsu ETERNUS DX driver¶
Fujitsu ETERNUS DX driver provides FC and iSCSI support for ETERNUS DX series.
The driver performs volume operations by communicating with ETERNUS DX. It uses a CIM client in Python called PyWBEM to perform CIM operations over HTTP.
You can specify RAID Group and Thin Provisioning Pool (TPP) in ETERNUS DX as a storage pool.
System requirements¶
Supported storages:
- ETERNUS AF150 S3 
- ETERNUS AF250 S3/AF250 S2/AF250 
- ETERNUS AF650 S3/AF650 S2/AF650 
- ETERNUS DX200F 
- ETERNUS DX60 S5/S4/S3 
- ETERNUS DX100 S5/S4/S3 
- ETERNUS DX200 S5/S4/S3 
- ETERNUS DX500 S5/S4/S3 
- ETERNUS DX600 S5/S4/S3 
- ETERNUS DX8700 S3/DX8900 S4/S3 
Requirements:
- Firmware version V10L30 or later is required. 
- The multipath environment with ETERNUS Multipath Driver is unsupported. 
- An Advanced Copy Feature license is required to create snapshots, create volume from snapshots, or clone volumes. 
Supported 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. 
- Extend a volume. (*1) 
- Get volume statistics. 
(*1): It is executable only when you use TPP as a storage pool.
Preparation¶
Package installation¶
Install the python-pywbem package for your distribution.
ETERNUS DX setup¶
Perform the following steps using ETERNUS Web GUI or ETERNUS CLI.
Note
- These following operations require an account that has the - Adminrole.
- For detailed operations, refer to ETERNUS Web GUI User’s Guide or ETERNUS CLI User’s Guide for ETERNUS DX series. 
- Create an account with software role for communication with cinder controller. 
- Enable the SMI-S of ETERNUS DX. 
- Register an Advanced Copy Feature license and configure copy table size. 
- Create a storage pool for volumes. 
- (Optional) If you want to create snapshots on a different storage pool for volumes, create a storage pool for snapshots. 
- Create Snap Data Pool Volume (SDPV) to enable Snap Data Pool (SDP) for - create a snapshot.
- Configure storage ports to be used by the Block Storage service. - Set those storage ports to CA mode. 
- Enable the host-affinity settings of those storage ports. - (ETERNUS CLI command for enabling host-affinity settings): - CLI> set fc-parameters -host-affinity enable -port <CM#><CA#><Port> CLI> set iscsi-parameters -host-affinity enable -port <CM#><CA#><Port> 
 - Note - Replace <CM#> and <CA#> with the name of the controller enclosure where the port is located. 
- Replace <Port> with the port number. 
 
- Ensure LAN connection between cinder controller and MNT port of ETERNUS DX and SAN connection between Compute nodes and CA ports of ETERNUS DX. 
Configuration¶
- Add the following entries to - /etc/cinder/cinder.conf:- FC entries: - volume_driver = cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_fc.FJDXFCDriver cinder_eternus_config_file = /etc/cinder/eternus_dx.xml - iSCSI entries: - volume_driver = cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_iscsi.FJDXISCSIDriver cinder_eternus_config_file = /etc/cinder/eternus_dx.xml - If there is no description about - cinder_eternus_config_file, then the parameter is set to default value- /etc/cinder/cinder_fujitsu_eternus_dx.xml.
- Create a driver configuration file. - Create a driver configuration file in the file path specified as - cinder_eternus_config_filein- cinder.conf, and add parameters to the file as below:- FC configuration: - <?xml version='1.0' encoding='UTF-8'?> <FUJITSU> <EternusIP>0.0.0.0</EternusIP> <EternusPort>5988</EternusPort> <EternusUser>smisuser</EternusUser> <EternusPassword>smispassword</EternusPassword> <EternusPool>raid5_0001</EternusPool> <EternusPool>tpp_0001</EternusPool> <EternusPool>raid_0002</EternusPool> <EternusSnapPool>raid5_0001</EternusSnapPool> </FUJITSU> - iSCSI configuration: - <?xml version='1.0' encoding='UTF-8'?> <FUJITSU> <EternusIP>0.0.0.0</EternusIP> <EternusPort>5988</EternusPort> <EternusUser>smisuser</EternusUser> <EternusPassword>smispassword</EternusPassword> <EternusPool>raid5_0001</EternusPool> <EternusPool>tpp_0001</EternusPool> <EternusPool>raid_0002</EternusPool> <EternusSnapPool>raid5_0001</EternusSnapPool> <EternusISCSIIP>1.1.1.1</EternusISCSIIP> <EternusISCSIIP>1.1.1.2</EternusISCSIIP> <EternusISCSIIP>1.1.1.3</EternusISCSIIP> <EternusISCSIIP>1.1.1.4</EternusISCSIIP> </FUJITSU> - Where: - EternusIP
- IP address of the SMI-S connection of the ETRENUS device. - Use the IP address of the MNT port of device. 
- EternusPort
- Port number for the SMI-S connection port of the ETERNUS device. 
- EternusUser
- User name of - sofwarerole for the connection- EternusIP.
- EternusPassword
- Corresponding password of - EternusUseron- EternusIP.
- EternusPool(Multiple setting allowed)
- Name of the storage pool for the volumes from - ETERNUS DX setup.- Use the pool RAID Group name or TPP name in the ETERNUS device. 
- EternusSnapPool
- Name of the storage pool for the snapshots from - ETERNUS DX setup.- Use the pool RAID Group name in the ETERNUS device. - If you did not create a different pool for snapshots, use the same value as - ETternusPool.
- EternusISCSIIP(Multiple setting allowed)
- iSCSI connection IP address of the ETERNUS DX. 
 - Note - For - EternusSnapPool, you can specify only RAID Group name and cannot specify TPP name.
- You can specify the same RAID Group name for - EternusPooland- EternusSnapPoolif you create volumes and snapshots on a same storage pool.
- For - EternusPool, when multiple pools are specified, cinder-scheduler will select one from multiple pools to create the volume.
 
Configuration example¶
- Edit - cinder.conf:- [DEFAULT] enabled_backends = DXFC, DXISCSI [DXFC] volume_driver = cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_fc.FJDXFCDriver cinder_eternus_config_file = /etc/cinder/fc.xml volume_backend_name = FC [DXISCSI] volume_driver = cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_iscsi.FJDXISCSIDriver cinder_eternus_config_file = /etc/cinder/iscsi.xml volume_backend_name = ISCSI 
- Create the driver configuration files - fc.xmland- iscsi.xml.
- Create a volume type and set extra specs to the type: - $ cinder type-create DX_FC $ cinder type-key DX_FX set volume_backend_name=FC $ cinder type-create DX_ISCSI $ cinder type-key DX_ISCSI set volume_backend_name=ISCSI - By issuing these commands, the volume type - DX_FCis associated with the- FC, and the type- DX_ISCSIis associated with the- ISCSI.
Supplementary Information for the Supported Functions¶
QoS Settings¶
The QoS settings that are linked with the volume QoS function of the ETERNUS AF/DX are available.
An upper limit value of the bandwidth(BWS) can be set for each volume. A lower limit value can not be set.
The upper limit is set if the firmware version of the ETERNUS AF/DX is earlier than V11L30, and the IOPS/Throughput of Total/Read/Write for the volume is set separately for V11L30 and later.
The following procedure shows how to set the QoS.
- Create a QoS definition. - The firmware version of the ETERNUS AF/DX is earlier than V11L30 
 - $ cinder qos-create <qos_name> maxBWS=xx - For <qos_name>, specify the name of the definition that is to be created. - For maxBWS, specify a value in MB. - The firmware version of the ETERNUS AF/DX is V11L30 or later 
 - $ cinder qos-create <qos_name> read_iops_sec=15000 write_iops_sec=12600 total_iops_sec=15000 read_bytes_sec=800 write_bytes_sec=700 total_bytes_sec=800 
- When not using the existing volume type, create a new volume type. - $ cinder type-create <volume_type_name> - For <volume_type_name>, specify the name of the volume type that is to be created. 
- Associate the QoS definition with the volume type. - $ cinder qos-associate <qos_specs> <volume_type_id> - For <qos_specs>, specify the ID of the QoS definition that was created. - For <volume_type_id>, specify the ID of the volume type that was created. 
Cautions
- For the procedure to cancel the QoS settings, refer to “OpenStack Command-Line Interface Reference”. 
- The QoS mode of the ETERNUS AF/DX must be enabled in advance. For details, refer to the ETERNUS Web GUI manuals. 
- When the firmware version of the ETERNUS AF/DX is earlier than V11L30, for the volume QoS settings of the ETERNUS AF/DX, upper limits are set using the predefined options. - Therefore, set the upper limit of the ETERNUS AF/DX side to a maximum value that does not exceed the specified maxBWS. - The following table shows the upper limits that can be set on the ETERNUS AF/DX side and example settings. For details about the volume QoS settings of the ETERNUS AF/DX, refer to the ETERNUS Web GUI manuals. - Settings for the ETERNUS AF/DX - Unlimited - 15000 IOPS (800MB/s) - 12600 IOPS (700MB/s) - 10020 IOPS (600MB/s) - 7500 IOPS (500MB/s) - 5040 IOPS (400MB/s) - 3000 IOPS (300MB/s) - 1020 IOPS (200MB/s) - 780 IOPS (100MB/s) - 600 IOPS (70MB/s) - 420 IOPS (40MB/s) - 300 IOPS (25MB/s) - 240 IOPS (20MB/s) - 180 IOPS (15MB/s) - 120 IOPS (10MB/s) - 60 IOPS (5MB/s) - When specified maxBWS=750 - “12600 IOPS (700MB/s)” is set on the ETERNUS AF/DX side. 
- When specified maxBWS=900 - “15000 IOPS (800MB/s)” is set on the ETERNUS AF/DX side. 
 
- While a QoS definition is being created, if an option other than maxBWS/read_iops_sec/write_iops_sec/total_iops_sec/read_bytes_sec /write_bytes_sec/total_bytes_sec is specified, a warning log is output and the QoS information setting is continued. 
- For an ETERNUS AF/DX wth a firmware version of before V11L30, if a QoS definition volume type that is set with read_iops_sec/ write_iops_sec/total_iops_sec/read_bytes_sec/write_bytes_sec/total_bytes_sec is specified for Create Volume, a warning log is output and the process is terminated. 
- For an ETERNUS AF/DX with a firmware version of V11L30 or later, if a QoS definition volume type that is set with maxBWS is specified for Create Volume, a warning log is output and the process is terminated. 
- After the firmware of the ETERNUS AF/DX is upgraded from V11L10/V11L2x to a newer version, the volume types related to the QoS definition created before the firmware upgrade can no longer be used. Set a QoS definition and create a new volume type. 
- When the firmware of the ETERNUS AF/DX is downgraded to V11L10/V11L2x, do not use a volume type linked to a pre-firmware downgrade QoS definition, because the QoS definition may work differently from ones post-firmware downgrade. For the volume, create and link a volume type not associated with any QoS definition and after the downgrade, create and link a volume type associated with a QoS definition. 
- If Create Volume terminates with an error, Cinder may not invoke Delete Volume. - If volumes are created but the QoS settings fail, the ETERNUS OpenStack VolumeDriver ends the process to prevent the created volumes from being left in the ETERNUS AF/DX. If volumes fail to be created, the process terminates with an error. 
