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

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

class VMAXProvision(rest)

Bases: object

Provisioning Class for Dell EMC VMAX volume drivers.

It supports VMAX arrays.

break_metro_rdf_pair(array, device_id, target_device, rdf_group, rep_extra_specs, metro_grp)

Delete replication for a Metro device pair.

Need to suspend the entire group before we can delete a single pair. :param array: the array serial number :param device_id: the device id :param target_device: the target device id :param rdf_group: the rdf group number :param rep_extra_specs: the replication extra specifications :param metro_grp: the metro storage group name

break_rdf_relationship(array, device_id, target_device, rdf_group, rep_extra_specs, state)

Break the rdf relationship between a pair of devices.

Parameters:
  • array – the array serial number
  • device_id – the source device id
  • target_device – target device id
  • rdf_group – the rdf group number
  • rep_extra_specs – replication extra specs
  • state – the state of the rdf pair
break_replication_relationship(array, target_device_id, source_device_id, snap_name, extra_specs)

Unlink a snapshot from its target volume.

Parameters:
  • array – the array serial number
  • source_device_id – source volume device id
  • target_device_id – target volume device id
  • snap_name – the name for the snap shot
  • extra_specs – extra specifications
create_group_replica(array, source_group, snap_name, extra_specs)

Create a replica (snapVx) of a volume group.

Parameters:
  • array – the array serial number
  • source_group – the source group name
  • snap_name – the name for the snap shot
  • extra_specs – extra specifications
create_storage_group(array, storagegroup_name, srp, slo, workload, extra_specs, do_disable_compression=False)

Create a new storage group.

Parameters:
  • array – the array serial number
  • storagegroup_name – the group name (String)
  • srp – the SRP (String)
  • slo – the SLO (String)
  • workload – the workload (String)
  • extra_specs – additional info
  • do_disable_compression – disable compression flag
Returns:

storagegroup - storage group object

create_volume_from_sg(array, volume_name, storagegroup_name, volume_size, extra_specs)

Create a new volume in the given storage group.

Parameters:
  • array – the array serial number
  • volume_name – the volume name (String)
  • storagegroup_name – the storage group name
  • volume_size – volume size (String)
  • extra_specs – the extra specifications
Returns:

dict – volume_dict - the volume dict

create_volume_group(array, group_name, extra_specs)

Create a generic volume group.

Parameters:
  • array – the array serial number
  • group_name – the name of the group
  • extra_specs – the extra specifications
Returns:

volume_group

create_volume_replica(array, source_device_id, target_device_id, snap_name, extra_specs, create_snap=False)

Create a snap vx of a source and copy to a target.

Parameters:
  • array – the array serial number
  • source_device_id – source volume device id
  • target_device_id – target volume device id
  • snap_name – the name for the snap shot
  • extra_specs – extra specifications
  • create_snap – Flag for create snapvx
create_volume_snapvx(array, source_device_id, snap_name, extra_specs)

Create a snapVx of a volume.

Parameters:
  • array – the array serial number
  • source_device_id – source volume device id
  • snap_name – the snapshot name
  • extra_specs – the extra specifications
delete_group_replica(array, snap_name, source_group_name, src_dev_ids, extra_specs)

Delete the snapshot.

Parameters:
  • array – the array serial number
  • snap_name – the name for the snap shot
  • source_group_name – the source group name
  • src_dev_ids – the list of source device ids
  • extra_specs – extra specifications
delete_group_replication(array, storagegroup_name, rdf_group_num, extra_specs)

Split replication for a group and delete the pairs.

Parameters:
  • array – the array serial number
  • storagegroup_name – the storage group name
  • rdf_group_num – the rdf group number
  • extra_specs – the extra specifications
delete_rdf_pair(array, device_id, rdf_group, target_device, extra_specs)

Delete an rdf pairing.

If the replication mode is synchronous, only one attempt is required to delete the pair. Otherwise, we need to wait until all the tracks are cleared before the delete will be successful. As there is currently no way to track this information, we keep attempting the operation until it is successful.

Parameters:
  • array – the array serial number
  • device_id – source volume device id
  • rdf_group – the rdf group number
  • target_device – the target device
  • extra_specs – extra specifications
delete_temp_volume_snap(array, snap_name, source_device_id)

Delete the temporary snapshot created for clone operations.

There can be instances where the source and target both attempt to delete a temp snapshot simultaneously, so we must lock the snap and then double check it is on the array. :param array: the array serial number :param snap_name: the snapshot name :param source_device_id: the source device id

delete_volume_from_srp(array, device_id, volume_name)

Delete a volume from the srp.

Parameters:
  • array – the array serial number
  • device_id – the volume device id
  • volume_name – the volume name
delete_volume_snap(array, snap_name, source_device_id, restored=False)

Delete a snapVx snapshot of a volume.

Parameters:
  • array – the array serial number
  • snap_name – the snapshot name
  • source_device_id – the source device id
  • restored – Flag to indicate if restored session is being deleted

Check if a snap has any links before deletion.

If a snapshot has any links, break the replication relationship before deletion. :param array: the array serial number :param snap_name: the snapshot name :param source_devices: the source device ids :param extra_specs: the extra specifications

disable_group_replication(array, storagegroup_name, rdf_group_num, extra_specs)

Suspend rdf replication on a storage group.

This does not delete the rdf pairs, that can only be done by deleting the group. This method suspends all i/o activity on the rdf links. :param array: the array serial number :param storagegroup_name: the storagegroup name :param rdf_group_num: the rdf group number :param extra_specs: the extra specifications

enable_group_replication(array, storagegroup_name, rdf_group_num, extra_specs, establish=False)

Resume rdf replication on a storage group.

Replication is enabled by default. This allows resuming replication on a suspended group. :param array: the array serial number :param storagegroup_name: the storagegroup name :param rdf_group_num: the rdf group number :param extra_specs: the extra specifications :param establish: flag to indicate ‘establish’ instead of ‘resume’

extend_volume(array, device_id, new_size, extra_specs, rdf_group=None)

Extend a volume.

Parameters:
  • array – the array serial number
  • device_id – the volume device id
  • new_size – the new size (GB)
  • extra_specs – the extra specifications
  • rdf_group – the rdf group number, if required
Returns:

status_code

failover_group(array, storagegroup_name, rdf_group_num, extra_specs, failover=True)

Failover or failback replication on a storage group.

Parameters:
  • array – the array serial number
  • storagegroup_name – the storagegroup name
  • rdf_group_num – the rdf group number
  • extra_specs – the extra specifications
  • failover – flag to indicate failover/ failback
failover_volume(array, device_id, rdf_group, extra_specs, local_vol_state, failover)

Failover or back a volume pair.

Parameters:
  • array – the array serial number
  • device_id – the source device id
  • rdf_group – the rdf group number
  • extra_specs – extra specs
  • local_vol_state – the local volume state
  • failover – flag to indicate failover or failback – bool
get_or_create_group(array, group_name, extra_specs)

Get or create a generic volume group.

Parameters:
  • array – the array serial number
  • group_name – the group name
  • extra_specs – the extra specifications
Returns:

group name

get_or_create_volume_group(array, group, extra_specs)

Get or create a volume group.

Sometimes it may be necessary to recreate a volume group on the backend - for example, when the last member volume has been removed from the group, but the cinder group object has not been deleted. :param array: the array serial number :param group: the group object :param extra_specs: the extra specifications :return: group name

get_slo_workload_settings_from_storage_group(array, sg_name)

Get slo and workload settings from a storage group.

Parameters:
  • array – the array serial number
  • sg_name – the storage group name
Returns:

storage group slo settings

get_srp_pool_stats(array, array_info)

Get the srp capacity stats.

Parameters:
  • array – the array serial number
  • array_info – the array dict
Returns:

total_capacity_gb

Returns:

remaining_capacity_gb

Returns:

subscribed_capacity_gb

Returns:

array_reserve_percent

is_restore_complete(array, source_device_id, snap_name, extra_specs)

Check and wait for a restore to complete

Parameters:
  • array – the array serial number
  • source_device_id – source device id
  • snap_name – snapshot name
  • extra_specs – extra specification
Returns:

bool

Links a group snap and breaks the relationship.

Parameters:
  • array – the array serial
  • source_group_name – the source group name
  • target_group_name – the target group name
  • snap_name – the snapshot name
  • extra_specs – extra specifications
  • list_volume_pairs – the list of volume pairs
  • delete_snapshot – delete snapshot flag
revert_volume_snapshot(array, source_device_id, snap_name, extra_specs)

Revert a volume snapshot

Parameters:
  • array – the array serial number
  • source_device_id – device id of the source
  • snap_name – snapvx snapshot name
  • extra_specs – the extra specifications
verify_slo_workload(array, slo, workload, srp)

Check if SLO and workload values are valid.

Parameters:
  • array – the array serial number
  • slo – Service Level Object e.g bronze
  • workload – workload e.g DSS
  • srp – the storage resource pool name
Returns:

boolean

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.