ISCSI Drivers for EMC VMAX arrays based on SMI-S.
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)
- Operations and timeout issues (bug #1538214)
2.4.0 - EMC VMAX - locking SG for concurrent threads (bug #1554634)
- SnapVX licensing checks for VMAX3 (bug #1587017)
- VMAX oversubscription Support (blueprint vmax-oversubscription)
- QoS support (blueprint vmax-qos)
- VMAX2/VMAX3 iscsi multipath support (iscsi only)
https://blueprints.launchpad.net/cinder/+spec/vmax-iscsi-multipath
Make sure volume is exported.
Creates a cgsnapshot.
Creates a cloned volume.
Creates a consistencygroup.
Creates the consistency group from source.
Currently the source can only be a cgsnapshot.
Parameters: |
|
---|
Driver entry point to get the export info for a new volume.
Creates a snapshot.
Creates a VMAX volume.
Creates a volume from a snapshot.
Deletes a cgsnapshot.
Deletes a consistency group.
Deletes a snapshot.
Deletes an EMC volume.
Driver entry point to get the export info for an existing volume.
Extend an existing volume.
Get volume stats.
If ‘refresh’ is True, run update the stats first.
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',
}
}
‘driver_volume_type’: ‘iscsi’ ‘data’: {
‘target_discovered’: True, ‘target_iqns’: [‘iqn.2010-10.org.openstack:volume-00001’,
‘iqn.2010-10.org.openstack:volume-00002’],‘target_portals’: [‘127.0.0.1:3260’, ‘127.0.1.1:3260’], ‘target_luns’: [1, 1],
}
}
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.
Return size of an existing VMAX volume to manage_existing.
Parameters: |
|
---|---|
Returns: | size of the volume in GB |
Migrate a volume from one Volume Backend to another.
Parameters: |
|
---|---|
Returns: | boolean – Always returns True |
Returns: | dict – Empty dict {} |
Driver entry point to remove an export for a volume.
Migrate volume to another host using retype.
Parameters: |
|
---|---|
Returns: | boolean – True if retype succeeded, False if error |
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.
Disallow connection from connector.
Export VMAX volume from Cinder.
Leave the volume intact on the backend array.
Updates LUNs in consistency group.
Retrieve stats info from volume group.