The DotHillFCDriver and
DotHillISCSIDriver Cinder drivers allow Dot Hill arrays
to be used for block storage in OpenStack deployments.
To use the Dot Hill drivers, the following are required:
Dot Hill AssuredSAN array with:
iSCSI or FC host interfaces
G22x firmware or later
Appropriate licenses for the snapshot and copy volume features
Network connectivity between the OpenStack host and the array management interfaces
HTTPS or HTTP must be enabled on the array
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.
Verify that the array can be managed via an HTTPS connection. HTTP can also be used if
dothill_api_protocol=httpis placed into the appropriate sections of thecinder.conffile.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 an storage backend 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 inkey=valueformat.The
dothill_backend_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's 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: the appropriate Cinder driver name; IP address or hostname of the array management interface; the username and password of an array user account with
manageprivileges; and the iSCSI IP addresses for the array if using the iSCSI transport protocol.
In the examples below, two backends 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 2.5. iSCSI example backend entries
[pool-a] dothill_backend_name = A volume_backend_name = dothill-array volume_driver = cinder.volume.drivers.dothill.dothill_iscsi.DotHillISCSIDriver san_ip = 10.1.2.3 san_login = manage san_password = !manage dothill_iscsi_ips = 10.2.3.4,10.2.3.5 [pool-b] dothill_backend_name = B volume_backend_name = dothill-array volume_driver = cinder.volume.drivers.dothill.dothill_iscsi.DotHillISCSIDriver san_ip = 10.1.2.3 san_login = manage san_password = !manage dothill_iscsi_ips = 10.2.3.4,10.2.3.5
Example 2.6. Fibre Channel example backend entries
[pool-a] dothill_backend_name = A volume_backend_name = dothill-array volume_driver = cinder.volume.drivers.dothill.dothill_fc.DotHillFCDriver san_ip = 10.1.2.3 san_login = manage san_password = !manage [pool-b] dothill_backend_name = B volume_backend_name = dothill-array volume_driver = cinder.volume.drivers.dothill.dothill_fc.DotHillFCDriver san_ip = 10.1.2.3 san_login = manage san_password = !manage
If any
volume_backend_namevalue refers to a vdisk rather than a virtual pool, add an additional statementdothill_backend_type = linearto that backend entry.If HTTPS is not enabled in the array, include
dothill_api_protocol = httpin each of the backend definitions.If HTTPS is enabled, you can enable certificate verification with the option
dothill_verify_certificate=True. You may also use thedothill_verify_certificate_pathparameter to specify the path to a CA_BUNDLE file containing CAs other than those in the default list.Modify the
[DEFAULT]section of thecinder.conffile to add anenabled_backendsparameter specifying the backend entries you added, and adefault_volume_typeparameter specifying the name of a volume type that you will create in the next step.Example 2.7. [DEFAULT] section changes
[DEFAULT] ... enabled_backends = pool-a,pool-b default_volume_type = dothill ...
Create a new volume type for each distinct
volume_backend_namevalue that you added to cinder.conf. The example below assumes that the samevolume_backend_name=dothill-arrayoption was specified in all of the entries, and specifies that the volume typedothillcan be used to allocate volumes from any of them.Example 2.8. Creating a volume type
$
cinder type-create dothill$
cinder type-key dothill set volume_backend_name=dothill-arrayAfter modifying
cinder.conf, restart thecinder-volumeservice.
The following table contains the configuration options that are specific to the Dot Hill drivers.
| Configuration option = Default value | Description |
|---|---|
| [DEFAULT] | |
dothill_api_protocol = https |
(StrOpt) DotHill API interface protocol. |
dothill_backend_name = A |
(StrOpt) Pool or Vdisk name to use for volume creation. |
dothill_backend_type = virtual |
(StrOpt) linear (for Vdisk) or virtual (for Pool). |
dothill_iscsi_ips = |
(ListOpt) List of comma-separated target iSCSI IP addresses. |
dothill_verify_certificate = False |
(BoolOpt) Whether to verify DotHill array SSL certificate. |
dothill_verify_certificate_path = None |
(StrOpt) DotHill array SSL certificate path. |

