The cinder.volume.drivers.ibm.gpfs Module

GPFS Volume Driver.

class GPFSDriver(*args, **kwargs)

Bases: cinder.volume.driver.CloneableImageVD, cinder.volume.driver.MigrateVD, cinder.volume.driver.BaseVD

Implements volume functions using GPFS primitives.

Version history: 1.0.0 - Initial driver 1.1.0 - Add volume retype, refactor volume migration 1.2.0 - Add consistency group support 1.3.0 - Add NFS based GPFS storage backend support 1.3.1 - Add GPFS native encryption (encryption of data at rest) support

CI_WIKI_NAME = ‘IBM_GPFS_CI’
VERSION = ‘1.3.1’
check_for_setup_error()

Returns an error if prerequisites aren’t met.

clone_image(context, volume, image_location, image_meta, image_service)

Create a volume from the specified image.

copy_image_to_volume(context, volume, image_service, image_id)

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

Note that cinder.volume.flows.create_volume will attempt to use clone_image to efficiently create volume from image when both source and target are backed by gpfs storage. If that is not the case, this function is invoked and uses fetch_to_raw to create the volume.

copy_volume_to_image(context, volume, image_service, image_meta)

Copy the volume to the specified image.

create_cloned_volume(volume, src_vref)

Create a GPFS volume from another volume.

create_export(context, volume, connector)

Exports the volume.

create_group(ctxt, group)

Creates a group.

Parameters:
  • ctxt – the context of the caller.
  • group – the Group object of the group to be created.
Returns:

model_update

create_group_from_src(ctxt, group, volumes, group_snapshot=None, snapshots=None, source_group=None, source_vols=None)

Creates a group from source.

Parameters:
  • ctxt – the context of the caller.
  • group – the Group object to be created.
  • volumes – a list of Volume objects in the group.
  • group_snapshot – the GroupSnapshot object as source.
  • snapshots – a list of snapshot objects in group_snapshot.
  • source_group – the Group object as source.
  • source_vols – a list of volume objects in the source_group.
Returns:

model_update, volumes_model_update

create_group_snapshot(ctxt, group_snapshot, snapshots)

Creates a group_snapshot.

Parameters:
  • ctxt – the context of the caller.
  • group_snapshot – the GroupSnapshot object to be created.
  • snapshots – a list of Snapshot objects in the group_snapshot.
Returns:

model_update, snapshots_model_update

create_snapshot(snapshot)

Creates a GPFS snapshot.

create_volume(volume)

Creates a GPFS volume.

create_volume_from_snapshot(volume, snapshot)

Creates a GPFS volume from a snapshot.

delete_group(ctxt, group, volumes)

Deletes a group.

Parameters:
  • ctxt – the context of the caller.
  • group – the Group object of the group to be deleted.
  • volumes – a list of Volume objects in the group.
Returns:

model_update, volumes_model_update

delete_group_snapshot(ctxt, group_snapshot, snapshots)

Deletes a group_snapshot.

Parameters:
  • ctxt – the context of the caller.
  • group_snapshot – the GroupSnapshot object to be deleted.
  • snapshots – a list of snapshot objects in the group_snapshot.
Returns:

model_update, snapshots_model_update

delete_snapshot(snapshot)

Deletes a GPFS snapshot.

delete_volume(volume)

Deletes a logical volume.

do_setup(ctxt)

Determine storage back end capabilities.

ensure_export(context, volume)

Synchronously recreates an export for a logical volume.

extend_volume(volume, new_size)

Extend an existing volume.

get_volume_stats(refresh=False)

Get volume stats.

If ‘refresh’ is True, or stats have never been updated, run update the stats first.

initialize_connection(volume, connector)
local_path(volume)

Return the local path for the specified volume.

migrate_volume(context, volume, host)

Attempt to migrate a volume to specified host.

remove_export(context, volume)

Removes an export for a logical volume.

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

Modify volume to be of new type.

terminate_connection(volume, connector, **kwargs)
update_group(ctxt, group, add_volumes=None, remove_volumes=None)

Updates a group.

Parameters:
  • ctxt – the context of the caller.
  • group – the Group object of the group to be updated.
  • add_volumes – a list of Volume objects to be added.
  • remove_volumes – a list of Volume objects to be removed.
Returns:

model_update, add_volumes_update, remove_volumes_update

class GPFSNFSDriver(*args, **kwargs)

Bases: cinder.volume.drivers.ibm.gpfs.GPFSDriver, cinder.volume.drivers.nfs.NfsDriver, cinder.volume.drivers.san.san.SanDriver

GPFS cinder driver extension.

This extends the capability of existing GPFS cinder driver to be able to create cinder volumes when cinder volume service is not running on GPFS node.

CI_WIKI_NAME = ‘IBM_GPFS_NFS_CI’
VERSION = ‘1.0’
create_cloned_volume(volume, src_vref)

Create a GPFS volume from another volume.

create_volume(volume)

Creates a GPFS volume.

create_volume_from_snapshot(volume, snapshot)

Creates a GPFS volume from a snapshot.

delete_volume(volume)

Deletes a logical volume.

do_setup(context)
get_volume_stats(refresh=False)

Get volume stats.

If ‘refresh’ is True, or stats have never been updated, run update the stats first.

local_path(volume)

Returns the local path for the specified volume.

class GPFSRemoteDriver(*args, **kwargs)

Bases: cinder.volume.drivers.ibm.gpfs.GPFSDriver, cinder.volume.drivers.san.san.SanDriver

GPFS cinder driver extension.

This extends the capability of existing GPFS cinder driver to be able to run the driver when cinder volume service is not running on GPFS node where as Nova Compute is a GPFS client. This deployment is typically in Container based OpenStack environment.

CI_WIKI_NAME = ‘IBM_GPFS_REMOTE_CI’
VERSION = ‘1.0’
do_setup(ctxt)