The cinder.volume.drivers.dell_emc.ps 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:
volume_driver=cinder.volume.drivers.dell_emc.ps.PSSeriesISCSIDriver
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_ip=<ip_address>
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:

san_thin_provision=false

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:

use_chap_auth=True
chap_login=<chap_login>
chap_password=<chap_password>

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.
CI_WIKI_NAME = ‘Dell_Storage_CI’
VERSION = ‘1.4.2’
add_multihost_access(volume)

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

check_for_setup_error()
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(snapshot)

Create snapshot of existing volume on appliance.

create_volume(volume)

Create a volume.

create_volume_from_snapshot(volume, snapshot)

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

delete_snapshot(snapshot)

Delete volume’s snapshot.

delete_volume(volume)

Delete a volume.

do_setup(context)

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.

local_path(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.

Parameters:
  • 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.

unmanage(volume)

Removes the specified volume from Cinder management.

Does not delete the underlying backend storage object.

Parameters:volume – Cinder volume to unmanage
with_timeout(f)