The Module

The Module

Volume driver for Dell EMC PS Series Storage.

class PSSeriesISCSIDriver(*args, **kwargs)

Bases: cinder.volume.drivers.san.san.SanISCSIDriver

Implements commands for Dell EMC PS Series ISCSI management.

To enable the driver add the following line to the cinder configuration:
Driver’s prerequisites are:
  • a separate volume group set up and running on the SAN
  • SSH access to the SAN
  • a special user must be created which must be able to
    • create/delete volumes and snapshots;
    • clone snapshots into volumes;
    • modify volume access records;

The access credentials to the SAN are provided by means of the following flags:

san_login=<user name>
san_password=<user password>
san_private_key=<file containing SSH private key>

Thin provision of volumes is enabled by default, to disable it use:


In order to use target CHAP authentication (which is disabled by default) SAN administrator must create a local CHAP user and specify the following flags for the driver:


eqlx_group_name parameter actually represents the CLI prompt message without ‘>’ ending. E.g. if prompt looks like ‘group-0>’, then the parameter must be set to ‘group-0’

Version history:

1.0   - Initial driver
1.1.0 - Misc fixes
1.2.0 - Deprecated eqlx_cli_timeout infavor of ssh_conn_timeout
1.3.0 - Added support for manage/unmanage volume
1.4.0 - Removed deprecated options eqlx_cli_timeout, eqlx_use_chap,
        eqlx_chap_login, and eqlx_chap_password.
1.4.1 - Rebranded driver to Dell EMC.
1.4.2 - Enable report discard support.
1.4.4 - Fixed over-subscription ratio calculation
1.4.5 - Optimize volume stats information parsing
1.4.6 - Extend volume with no-snap option
CI_WIKI_NAME = 'Dell_Storage_CI'
VERSION = '1.4.6'

Add multihost-access to a volume. Needed for live migration.

create_cloned_volume(volume, src_vref)

Creates a clone of the specified volume.

create_export(context, volume, connector)

Create an export of a volume.

Driver has nothing to do here for the volume has been exported already by the SAN, right after it’s creation.


Create snapshot of existing volume on appliance.


Create a volume.

create_volume_from_snapshot(volume, snapshot)

Create new volume from other volume’s snapshot on appliance.


Delete volume’s snapshot.


Delete a volume.


Disable cli confirmation and tune output format.

ensure_export(context, volume)

Ensure an export of a volume.

Driver has nothing to do here for the volume has been exported already by the SAN, right after it’s creation. We will just make sure that the volume exists on the array and issue a warning.

extend_volume(volume, new_size)

Extend the size of the volume.

initialize_connection(volume, connector)

Restrict access to a volume.

manage_existing(volume, existing_ref)

Manage an existing volume on the backend storage.

manage_existing_get_size(volume, existing_ref)

Return size of volume to be managed by manage_existing.

When calculating the size, round up to the next GB.

  • volume – Cinder volume to manage
  • existing_ref – Driver-specific information used to identify a volume
remove_export(context, volume)

Remove an export of a volume.

Driver has nothing to do here for the volume has been exported already by the SAN, right after it’s creation. Nothing to remove since there’s nothing exported.

terminate_connection(volume, connector, force=False, **kwargs)

Remove access restrictions from a volume.


Removes the specified volume from Cinder management.

Does not delete the underlying backend storage object.

Parameters:volume – Cinder volume to unmanage
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.