HPE MSA Fibre Channel and iSCSI drivers¶
The HPMSAFCDriver and HPMSAISCSIDriver Cinder drivers allow
the HPE MSA 2060, 1060, 2050, 1050, 2040, and 1040 arrays to be used
for Block Storage in OpenStack deployments.
System requirements¶
To use the HPMSA drivers, the following are required:
- HPE MSA 2060, 1060, 2050, 1050, 2040 or 1040 array with: - iSCSI or FC host interfaces 
- G22x, V270 or I100 firmware or later 
 
- Network connectivity between the OpenStack host and the array management interfaces 
- HTTPS or HTTP must be enabled on the array 
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. 
- Migrate a volume with back-end assistance. 
- Retype a volume. 
- Manage and unmanage a volume. 
Configuring the array¶
- Verify that the array can be managed using an HTTPS connection. HTTP can also be used if - hpmsa_api_protocol=httpis placed into the appropriate sections of the- cinder.conffile, but this option is deprecated and will be removed in a future release.- Confirm that virtual pools A and B are present if you plan to use virtual pools for OpenStack storage. - If you plan to use vdisks instead of virtual pools, create or identify one or more vdisks to be used for OpenStack storage; typically this will mean creating or setting aside one disk group for each of the A and B controllers. 
- Edit the - cinder.conffile to define a storage back-end entry for each storage pool on the array that will be managed by OpenStack. Each entry consists of a unique section name, surrounded by square brackets, followed by options specified in- key=valueformat.- The - hpmsa_pool_namevalue specifies the name of the storage pool or vdisk on the array.
- The - volume_backend_nameoption value can be a unique value, if you wish to be able to assign volumes to a specific storage pool on the array, or a name that is shared among multiple storage pools to let the volume scheduler choose where new volumes are allocated.
- The rest of the options will be repeated for each storage pool in a given array: - volume_driverspecifies the Cinder driver name.
- san_ipspecifies the IP addresses or host names of the array’s management controllers.
- san_loginand- san_passwordspecify the username and password of an array user account with- manageprivileges.
- driver_use_sslshould be set to- trueto enable use of the HTTPS protocol.
- hpmsa_iscsi_ipsspecifies the iSCSI IP addresses for the array if using the iSCSI transport protocol.
 
 - In the examples below, two back ends are defined, one for pool A and one for pool B, and a common - volume_backend_nameis used so that a single volume type definition can be used to allocate volumes from both pools.- Example: iSCSI example back-end entries - [pool-a] hpmsa_pool_name = A volume_backend_name = hpmsa-array volume_driver = cinder.volume.drivers.san.hp.hpmsa_iscsi.HPMSAISCSIDriver san_ip = 10.1.2.3,10.1.2.4 san_login = manage san_password = !manage hpmsa_iscsi_ips = 10.2.3.4,10.2.3.5 driver_use_ssl = true [pool-b] hpmsa_pool_name = B volume_backend_name = hpmsa-array volume_driver = cinder.volume.drivers.san.hp.hpmsa_iscsi.HPMSAISCSIDriver san_ip = 10.1.2.3,10.1.2.4 san_login = manage san_password = !manage hpmsa_iscsi_ips = 10.2.3.4,10.2.3.5 driver_use_ssl = true - Example: Fibre Channel example back-end entries - [pool-a] hpmsa_pool_name = A volume_backend_name = hpmsa-array volume_driver = cinder.volume.drivers.san.hp.hpmsa_fc.HPMSAFCDriver san_ip = 10.1.2.3,10.1.2.4 san_login = manage san_password = !manage driver_use_ssl = true [pool-b] hpmsa_pool_name = B volume_backend_name = hpmsa-array volume_driver = cinder.volume.drivers.san.hp.hpmsa_fc.HPMSAFCDriver san_ip = 10.1.2.3,10.1.2.4 san_login = manage san_password = !manage driver_use_ssl = true 
- If any - volume_backend_namevalue refers to a vdisk rather than a virtual pool, add an additional statement- hpmsa_pool_type = linearto that back end entry.
- If HTTPS is not enabled in the array, include - hpmsa_api_protocol = httpin each of the back-end definitions.
- If HTTPS is enabled, you can enable certificate verification with the option - driver_ssl_cert_verify = True. You may also use the- driver_ssl_cert_pathoption to specify the path to a CA_BUNDLE file containing CAs other than those in the default list.
- Modify the - [DEFAULT]section of the- cinder.conffile to add an- enabled_backendsparameter specifying the back-end entries you added, and a- default_volume_typeparameter specifying the name of a volume type that you will create in the next step.- Example: [DEFAULT] section changes - [DEFAULT] # ... enabled_backends = pool-a,pool-b default_volume_type = hpmsa 
- Create a new volume type for each distinct - volume_backend_namevalue that you added to the- cinder.conffile. The example below assumes that the same- volume_backend_name=hpmsa-arrayoption was specified in all of the entries, and specifies that the volume type- hpmsacan be used to allocate volumes from any of them.- Example: Creating a volume type - $ openstack volume type create hpmsa $ openstack volume type set --property volume_backend_name=hpmsa-array hpmsa 
- After modifying the - cinder.conffile, restart the- cinder-volumeservice.
Driver-specific options¶
The following table contains the configuration options that are specific to the HPMSA drivers.
| Configuration option = Default value | Description | 
|---|---|
| 
 | (List of String) List of comma-separated target iSCSI IP addresses. | 
| 
 | (String) Pool or Vdisk name to use for volume creation. | 
| 
 | (String(choices=[‘linear’, ‘virtual’])) linear (for Vdisk) or virtual (for Pool). | 
| 
 | (String(choices=[‘http’, ‘https’])) HPMSA API interface protocol. DEPRECATED | 
| 
 | (Boolean) Whether to verify HPMSA array SSL certificate. DEPRECATED | 
| 
 | (String) HPMSA array SSL certificate path. DEPRECATED | 
