The cinder.volume.drivers.dell_emc.vmax.provision_v3 Module

class VMAXProvisionV3(prtcl)

Bases: object

Provisioning Class for SMI-S based EMC volume drivers.

This Provisioning class is for EMC volume drivers based on SMI-S. It supports VMAX arrays.

activate_snap_relationship(conn, repServiceInstanceName, syncInstanceName, extraSpecs)

Activate snap relationship and start copy operation.

Parameters:
  • conn – the connection to the ecom server
  • repServiceInstanceName – instance name of the replication service
  • syncInstanceName – instance name of the SE_StorageSynchronized_SV_SV object
  • extraSpecs – additional info
Returns:

int – return code

Returns:

job object of the replica creation operation

break_replication_relationship(conn, repServiceInstanceName, syncInstanceName, operation, extraSpecs, force=False)

Deletes the relationship between the clone/snap and source volume.

Makes an SMI-S call to break clone relationship between the clone volume and the source.

Parameters:
  • conn – the connection to the ecom server
  • repServiceInstanceName – instance name of the replication service
  • syncInstanceName – instance name of the SE_StorageSynchronized_SV_SV object
  • operation – operation code
  • extraSpecs – additional info
  • force – force to break replication relationship if True
Returns:

rc - return code

Returns:

job - job object of the replica creation operation

create_element_replica(conn, repServiceInstanceName, cloneName, syncType, sourceInstance, extraSpecs, targetInstance=None, rsdInstance=None, copyState=None)

Make SMI-S call to create replica for source element.

Parameters:
  • conn – the connection to the ecom server
  • repServiceInstanceName – replication service
  • cloneName – clone volume name
  • syncType – 7=snapshot, 8=clone
  • sourceInstance – source volume instance
  • extraSpecs – additional info
  • targetInstance – Target volume instance. Default None
  • rsdInstance – replication settingdata instance. Default None
Returns:

int – rc - return code

Returns:

job - job object of the replica creation operation

Raises:

VolumeBackendAPIException

create_group_replica(conn, replicationService, srcGroupInstanceName, tgtGroupInstanceName, relationName, extraSpecs)

Make SMI-S call to create replica for source group.

Parameters:
  • conn – the connection to the ecom server
  • replicationService – replication service
  • srcGroupInstanceName – source group instance name
  • tgtGroupInstanceName – target group instance name
  • relationName – replica relationship name
  • extraSpecs – additional info
Returns:

int – return code

Returns:

job object of the replica creation operation

Raises:

VolumeBackendAPIException

create_remote_element_replica(conn, repServiceInstanceName, cloneName, syncType, sourceInstance, targetInstance, rdfGroupInstance, extraSpecs)

Create a replication relationship between source and target.

Parameters:
  • conn – the ecom connection
  • repServiceInstanceName – the replication service
  • cloneName – the name of the target volume
  • syncType – the synchronization type
  • sourceInstance – the source volume instance
  • targetInstance – the target volume instance
  • rdfGroupInstance – the rdf group instance
  • extraSpecs – additional info
Returns:

rc, job

create_storage_group_v3(conn, controllerConfigService, groupName, srp, slo, workload, extraSpecs, doDisableCompression)

Create the volume in the specified pool.

Parameters:
  • conn – the connection information to the ecom server
  • controllerConfigService – the controller configuration service
  • groupName – the group name (String)
  • srp – the SRP (String)
  • slo – the SLO (String)
  • workload – the workload (String)
  • extraSpecs – additional info
  • doDisableCompression – disable compression flag
Returns:

storageGroupInstanceName - storage group instance name

create_volume_dict(volumeInstanceName)

Create volume dictionary

Parameters:volumeInstanceName – the instance of a job
Returns:dict – volumeDict - an instance of a volume
create_volume_from_sg(conn, storageConfigService, volumeName, sgInstanceName, volumeSize, extraSpecs)

Create the volume and associate it with a storage group.

We use EMCCollections parameter to supply a Device Masking Group to contain a newly created storage volume.

Parameters:
  • conn – the connection information to the ecom server
  • storageConfigService – the storage configuration service
  • volumeName – the volume name (String)
  • sgInstanceName – the storage group instance name associated with an SLO
  • volumeSize – volume size (String)
  • extraSpecs – additional info
Returns:

dict – volumeDict - the volume dict

Returns:

int – return code

Raises:

VolumeBackendAPIException

delete_volume_from_pool(conn, storageConfigservice, volumeInstanceName, volumeName, extraSpecs)

Given the volume instance remove it from the pool.

Parameters:
  • conn – connection to the ecom server
  • storageConfigservice – volume created from job
  • volumeInstanceName – the volume instance name
  • volumeName – the volume name (String)
  • extraSpecs – additional info
Returns:

int – return code

Raises:

VolumeBackendAPIException

extend_volume_in_SG(conn, storageConfigService, volumeInstanceName, volumeName, volumeSize, extraSpecs)

Extend a volume instance.

Parameters:
  • conn – connection to the ecom server
  • storageConfigservice – the storage configuration service
  • volumeInstanceName – the volume instance name
  • volumeName – the volume name (String)
  • volumeSize – the volume size
  • extraSpecs – additional info
Returns:

volumeDict

Returns:

int – return code

Raises:

VolumeBackendAPIException

failback_volume(conn, repServiceInstanceName, storageSynchronizationSv, extraSpecs)

Failback a volume to the source device.

Parameters:
  • conn – the connection to the ecom server
  • repServiceInstanceName – the replication service
  • storageSynchronizationSv – the storage synchronized object
  • extraSpecs – the extra specifications
failover_volume(conn, repServiceInstanceName, storageSynchronizationSv, extraSpecs)

Failover a volume to its target device.

Parameters:
  • conn – the connection to the ecom server
  • repServiceInstanceName – the replication service
  • storageSynchronizationSv – the storage synchronized object
  • extraSpecs – the extra specifications
get_or_create_default_sg(conn, extraSpecs, storageSystemName, doDisableCompression)

Get or create default storage group for a replica.

Parameters:
  • conn – the connection to the ecom server
  • extraSpecs – the extra specifications
  • storageSystemName – the storage system name
  • doDisableCompression – flag for compression
Returns:

sgInstanceName, instance of storage group

get_rdf_group_instance(conn, repServiceInstanceName, RDFGroupName)

Get the SRDF group instance.

Parameters:
  • conn – the connection to the ecom server
  • repServiceInstanceName – the replication service
  • RDFGroupName – the element name of the RDF group
Returns:

foundRDFGroupInstanceName

get_srp_pool_stats(conn, arrayInfo)

Get the totalManagedSpace, remainingManagedSpace.

Parameters:
  • conn – the connection to the ecom server
  • arrayInfo – the array dict
Returns:

totalCapacityGb

Returns:

remainingCapacityGb

Returns:

subscribedCapacityGb

Returns:

array_reserve_percent

Returns:

wlpEnabled

get_storage_pool_capability(conn, poolInstanceName)

Get the pool capability.

Parameters:
  • conn – the connection information to the ecom server
  • poolInstanceName – the pool instance
Returns:

the storage pool capability instance. None if not found

get_storage_pool_setting(conn, storagePoolCapability, slo, workload)

Get the pool setting for pool capability.

Parameters:
  • conn – the connection information to the ecom server
  • storagePoolCapability – the storage pool capability instance
  • slo – the slo string e.g Bronze
  • workload – the workload string e.g DSS_REP
Returns:

the storage pool setting instance

get_volume_dict_from_job(conn, jobInstance)

Given the jobInstance determine the volume Instance.

Parameters:
  • conn – the ecom connection
  • jobInstance – the instance of a job
Returns:

dict – volumeDict - an instance of a volume

get_volume_from_job(conn, jobInstance)

Given the jobInstance determine the volume Instance.

Parameters:
  • conn – the ecom connection
  • jobInstance – the instance of a job
Returns:

dict – volumeDict - an instance of a volume

get_volume_range(conn, storageConfigService, poolInstanceName, slo, workload, extraSpecs)

Get upper and lower range for volume for slo/workload combination.

Parameters:
  • conn – the connection information to the ecom server
  • storageConfigService – the storage config service
  • poolInstanceName – the pool instance
  • slo – slo string e.g Bronze
  • workload – workload string e.g DSS
  • extraSpecs – additional info
Returns:

supportedSizeDict

return_to_resource_pool(conn, repServiceInstanceName, syncInstanceName, extraSpecs)

Return the snap target resources back to the pool.

Parameters:
  • conn – the connection to the ecom server
  • repServiceInstanceName – instance name of the replication service
  • syncInstanceName – instance name of the
  • extraSpecs – additional info
Returns:

rc - return code

Returns:

job object of the replica creation operation