The cinder.volume.drivers.dell_emc.scaleio.driver Module

Driver for Dell EMC ScaleIO based on ScaleIO remote CLI.

class ScaleIODriver(*args, **kwargs)

Bases: cinder.volume.driver.VolumeDriver

Cinder ScaleIO Driver

ScaleIO Driver version history:
2.0.1: Added support for SIO 1.3x in addition to 2.0.x 2.0.2: Added consistency group support to generic volume groups 2.0.3: Added cache for storage pool and protection domains info
CI_WIKI_NAME = 'EMC_ScaleIO_CI'
VERSION = '2.0.3'
check_for_export(context, volume_id)

Make sure volume is exported.

check_for_setup_error()
copy_image_to_volume(context, volume, image_service, image_id)

Fetch the image from image_service and write it to the volume.

copy_volume_to_image(context, volume, image_service, image_meta)

Copy the volume to the specified image.

create_cgsnapshot(context, cgsnapshot, snapshots)

Creates a cgsnapshot.

create_cloned_volume(volume, src_vref)

Creates a cloned volume.

create_consistencygroup(context, group)

Creates a consistency group.

ScaleIO won’t create CG until cg-snapshot creation, db will maintain the volumes and CG relationship.

create_consistencygroup_from_src(context, group, volumes, cgsnapshot=None, snapshots=None, source_cg=None, source_vols=None)

Creates a consistency group from a source.

create_export(context, volume, connector)

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

create_snapshot(snapshot)

Creates a scaleio snapshot.

create_volume(volume)

Creates a scaleIO 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.

ScaleIO will delete the volumes of the CG.

delete_snapshot(snapshot)

Deletes a ScaleIO snapshot.

delete_volume(volume)

Deletes a self.logical volume

ensure_export(context, volume)

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

extend_volume(volume, new_size)

Extends the size of an existing available ScaleIO volume.

This action will round up the volume to the nearest size that is a granularity of 8 GBs.

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 scaleio driver returns a driver_volume_type of ‘scaleio’.

manage_existing(volume, existing_ref)

Manage an existing ScaleIO volume.

existing_ref is a dictionary of the form: {‘source-id’: <id of ScaleIO volume>}

manage_existing_get_size(volume, existing_ref)
manage_existing_snapshot(snapshot, existing_ref)

Manage an existing ScaleIO snapshot.

Parameters:existing_ref – dictionary of the form: {‘source-id’: <id of ScaleIO snapshot>}
manage_existing_snapshot_get_size(snapshot, existing_ref)
remove_export(context, volume)

Driver entry point to remove an export for a volume.

scaleio_qos_keys = ('maxIOPS', 'maxBWS', 'maxIOPSperGB', 'maxBWSperGB')
terminate_connection(volume, connector, **kwargs)
update_consistencygroup(context, group, add_volumes=None, remove_volumes=None)

Update a consistency group.

ScaleIO does not handle volume grouping. Cinder maintains volumes and CG relationship.

update_migrated_volume(ctxt, volume, new_volume, original_volume_status)

Return the update from ScaleIO migrated volume.

This method updates the volume name of the new ScaleIO volume to match the updated volume ID. The original volume is renamed first since ScaleIO does not allow multiple volumes to have the same name.