The cinder.volume.drivers.emc.emc_cli_iscsi Module

iSCSI Drivers for EMC VNX array based on CLI.

class EMCCLIISCSIDriver(*args, **kwargs)

Bases: cinder.volume.driver.ISCSIDriver

EMC ISCSI Drivers for VNX using CLI.

Version history:

1.0.0 - Initial driver
2.0.0 - Thick/thin provisioning, robust enhancement
3.0.0 - Array-based Backend Support, FC Basic Support,
        Target Port Selection for MPIO,
        Initiator Auto Registration,
        Storage Group Auto Deletion,
        Multiple Authentication Type Support,
        Storage-Assisted Volume Migration,
        SP Toggle for HA
3.0.1 - Security File Support
4.0.0 - Advance LUN Features (Compression Support,
        Deduplication Support, FAST VP Support,
        FAST Cache Support), Storage-assisted Retype,
        External Volume Management, Read-only Volume,
        FC Auto Zoning
4.1.0 - Consistency group support
5.0.0 - Performance enhancement, LUN Number Threshold Support,
        Initiator Auto Deregistration,
        Force Deleting LUN in Storage Groups,
        robust enhancement
5.1.0 - iSCSI multipath enhancement
5.2.0 - Pool-aware scheduler support
5.3.0 - Consistency group modification support
6.0.0 - Over subscription support
        Create consistency group from cgsnapshot support
        Multiple pools support enhancement
        Manage/unmanage volume revise
        White list target ports support
        Snap copy support
        Support efficient non-disruptive backup
7.0.0 - Clone consistency group support
        Replication v2 support(managed)
        Configurable migration rate support
backup_use_temp_snapshot()
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 a consistency group from source.

create_export(context, volume, connector)

Driver entry point to get the export info for a new volume.

create_export_snapshot(context, snapshot, connector)

Creates a snapshot mount point for snapshot.

create_snapshot(snapshot)

Creates a snapshot.

create_volume(volume)

Creates a VNX 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 a VNX volume.

ensure_export(context, volume)

Driver entry point to get the export info for an existing volume.

extend_volume(volume, new_size)

Extend a volume.

failover_host(context, volumes, secondary_id=None)

Failovers volume from primary device to secondary.

get_pool(volume)

Returns the pool name of a volume.

get_volume_stats(refresh=False)

Get volume status.

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 vnx_get_iscsi_properties. Example return value (multipath is not enabled):

{
    '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',
        'target_lun': 1,
    }
}

Example return value (multipath is enabled):

{
    '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],
    }
}
initialize_connection_snapshot(snapshot, connector, **kwargs)

Allows connection to snapshot.

manage_existing(volume, existing_ref)

Manage an existing lun in the array.

The lun should be in a manageable pool backend, otherwise error would return. Rename the backend storage object so that it matches the, volume[‘name’] which is how drivers traditionally map between a cinder volume and the associated backend storage object.

manage_existing_ref:{
    'source-id':<lun id in VNX>
}

or

manage_existing_ref:{
    'source-name':<lun name in VNX>
}
manage_existing_get_size(volume, existing_ref)

Return size of volume to be managed by manage_existing.

migrate_volume(ctxt, volume, host)
remove_export(context, volume)

Driver entry point to remove an export for a volume.

remove_export_snapshot(context, snapshot)

Removes snapshot mount point for snapshot.

retype(ctxt, volume, new_type, diff, host)

Convert the volume to be of the new type.

terminate_connection(volume, connector, **kwargs)

Disallow connection from connector.

terminate_connection_snapshot(snapshot, connector, **kwargs)

Disallows connection to snapshot.

unmanage(volume)

Unmanages a volume.

update_consistencygroup(context, group, add_volumes, remove_volumes)

Updates LUNs in consistency group.

update_migrated_volume(context, volume, new_volume, original_volume_status=None)

Returns model update for migrated volume.

update_volume_stats()

Retrieve status info from volume group.

Previous topic

The cinder.volume.drivers.emc.emc_cli_fc Module

Next topic

The cinder.volume.drivers.emc.emc_vmax_common Module

This Page