The cinder.volume.drivers.emc.emc_vmax_iscsi
Module¶
ISCSI Drivers for EMC VMAX arrays based on SMI-S.
-
class
EMCVMAXISCSIDriver
(*args, **kwargs)¶ Bases:
cinder.volume.driver.ISCSIDriver
EMC ISCSI Drivers for VMAX using SMI-S.
- Version history:
1.0.0 - Initial driver 1.1.0 - Multiple pools and thick/thin provisioning,
performance enhancement.2.0.0 - Add driver requirement functions 2.1.0 - Add consistency group functions 2.1.1 - Fixed issue with mismatched config (bug #1442376) 2.1.2 - Clean up failed clones (bug #1440154) 2.1.3 - Fixed a problem with FAST support (bug #1435069) 2.2.0 - Add manage/unmanage 2.2.1 - Support for SE 8.0.3 2.2.2 - Update Consistency Group 2.2.3 - Pool aware scheduler(multi-pool) support 2.2.4 - Create CG from CG snapshot 2.3.0 - Name change for MV and SG for FAST (bug #1515181)
- Fix for randomly choosing port group. (bug #1501919)
- get_short_host_name needs to be called in find_device_number (bug #1520635)
- Proper error handling for invalid SLOs (bug #1512795)
- Extend Volume for VMAX3, SE8.1.0.3
https://blueprints.launchpad.net/cinder/+spec/vmax3-extend-volume - Incorrect SG selected on an attach (#1515176) - Cleanup Zoning (bug #1501938) NOTE: FC only - Last volume in SG fix - _remove_last_vol_and_delete_sg is not being called
for VMAX3 (bug #1520549)- necessary updates for CG changes (#1534616)
- Changing PercentSynced to CopyState (bug #1517103)
- Getting iscsi ip from port in existing masking view
- Replacement of EMCGetTargetEndpoints api (bug #1512791)
- VMAX3 snapvx improvements (bug #1522821)
-
VERSION
= '2.3.0'¶
-
check_for_export
(context, volume_id)¶ Make sure volume is exported.
-
check_for_setup_error
()¶
-
create_cgsnapshot
(context, cgsnapshot, snapshots)¶ Creates a cgsnapshot.
-
create_cloned_volume
(volume, src_vref)¶ Creates a cloned volume.
-
create_consistencygroup
(context, group)¶ Creates a consistencygroup.
-
create_consistencygroup_from_src
(context, group, volumes, cgsnapshot=None, snapshots=None, source_cg=None, source_vols=None)¶ Creates the consistency group from source.
Currently the source can only be a cgsnapshot.
Parameters: - context – the context
- group – the consistency group object to be created
- volumes – volumes in the consistency group
- cgsnapshot – the source consistency group snapshot
- snapshots – snapshots of the source volumes
- source_cg – the dictionary of a consistency group as source.
- source_vols – a list of volume dictionaries in the source_cg.
-
create_export
(context, volume, connector)¶ Driver entry point to get the export info for a new volume.
-
create_snapshot
(snapshot)¶ Creates a snapshot.
-
create_volume
(volume)¶ Creates a VMAX volume.
-
create_volume_from_snapshot
(volume, snapshot)¶ Creates a volume from a snapshot.
-
delete_cgsnapshot
(context, cgsnapshot, snapshots)¶ Deletes a cgsnapshot.
-
delete_consistencygroup
(context, group, volumes)¶ Deletes a consistency group.
-
delete_snapshot
(snapshot)¶ Deletes a snapshot.
-
delete_volume
(volume)¶ Deletes an EMC volume.
-
ensure_export
(context, volume)¶ Driver entry point to get the export info for an existing volume.
-
extend_volume
(volume, new_size)¶ Extend an existing volume.
-
get_volume_stats
(refresh=False)¶ Get volume stats.
If ‘refresh’ is True, run update the stats first.
-
initialize_connection
(volume, connector)¶ Initializes the connection and returns connection info.
The iscsi driver returns a driver_volume_type of ‘iscsi’. the format of the driver data is defined in smis_get_iscsi_properties. Example return value:
{ 'driver_volume_type': 'iscsi' 'data': { 'target_discovered': True, 'target_iqn': 'iqn.2010-10.org.openstack:volume-00000001', 'target_portal': '127.0.0.0.1:3260', 'volume_id': '12345678-1234-4321-1234-123456789012', } }
-
manage_existing
(volume, external_ref)¶ Manages an existing VMAX Volume (import to Cinder).
Renames the Volume to match the expected name for the volume. Also need to consider things like QoS, Emulation, account/tenant.
-
manage_existing_get_size
(volume, external_ref)¶ Return size of an existing VMAX volume to manage_existing.
Parameters: - self – reference to class
- volume – the volume object including the volume_type_id
- external_ref – reference to the existing volume
Returns: size of the volume in GB
-
migrate_volume
(ctxt, volume, host)¶ Migrate a volume from one Volume Backend to another.
Parameters: - ctxt – context
- volume – the volume object including the volume_type_id
- host – the host dict holding the relevant target information
Returns: boolean – Always returns True
Returns: dict – Empty dict {}
-
remove_export
(context, volume)¶ Driver entry point to remove an export for a volume.
-
retype
(ctxt, volume, new_type, diff, host)¶ Migrate volume to another host using retype.
Parameters: - ctxt – context
- volume – the volume object including the volume_type_id
- new_type – the new volume type.
- diff – Unused parameter in common.retype
- host – the host dict holding the relevant target information
Returns: boolean – True if retype succeeded, False if error
-
smis_do_iscsi_discovery
(volume)¶ Calls iscsiadm with each iscsi ip address in the list
-
smis_get_iscsi_properties
(volume, connector)¶ Gets iscsi configuration.
We ideally get saved information in the volume entity, but fall back to discovery if need be. Discovery may be completely removed in future The properties are: :target_discovered: boolean indicating whether discovery was used :target_iqn: the IQN of the iSCSI target :target_portal: the portal of the iSCSI target :target_lun: the lun of the iSCSI target :volume_id: the UUID of the volume :auth_method:, :auth_username:, :auth_password:
the authentication details. Right now, either auth_method is not present meaning no authentication, or auth_method == CHAP meaning use CHAP with the specified credentials.
-
terminate_connection
(volume, connector, **kwargs)¶ Disallow connection from connector.
-
unmanage
(volume)¶ Export VMAX volume and leave volume intact on the backend array.
-
update_consistencygroup
(context, group, add_volumes, remove_volumes)¶ Updates LUNs in consistency group.
-
update_volume_stats
()¶ Retrieve stats info from volume group.