The cinder.volume.drivers.ibm.ibm_storage.xiv_proxy Module

class Rate(rpo, schedule)

Bases: object

class XIVProxy(storage_info, logger, exception, driver=None, active_backend_id=None)

Bases: cinder.volume.drivers.ibm.ibm_storage.proxy.IBMStorageProxy

Proxy between the Cinder Volume and Spectrum Accelerate Storage.

Supports IBM XIV, Spectrum Accelerate, A9000, A9000R

async_rates = (<cinder.volume.drivers.ibm.ibm_storage.xiv_proxy.Rate object at 0x7f2f2d84a810>, <cinder.volume.drivers.ibm.ibm_storage.xiv_proxy.Rate object at 0x7f2f2d84a910>, <cinder.volume.drivers.ibm.ibm_storage.xiv_proxy.Rate object at 0x7f2f2d84a450>, <cinder.volume.drivers.ibm.ibm_storage.xiv_proxy.Rate object at 0x7f2f2d84add0>, <cinder.volume.drivers.ibm.ibm_storage.xiv_proxy.Rate object at 0x7f2f2d84a590>, <cinder.volume.drivers.ibm.ibm_storage.xiv_proxy.Rate object at 0x7f2f2d84a1d0>, <cinder.volume.drivers.ibm.ibm_storage.xiv_proxy.Rate object at 0x7f2f2d84afd0>, <cinder.volume.drivers.ibm.ibm_storage.xiv_proxy.Rate object at 0x7f2f2d84a690>)
create_cgsnapshot(*args, **kwargs)

Creates a CG snapshot.

create_cloned_volume(*args, **kwargs)

Create cloned volume.

create_consistencygroup(*args, **kwargs)

Creates a consistency group.

create_consistencygroup_from_src(*args, **kwargs)

Creates a consistencygroup from source.

Source can be a cgsnapshot with the relevant list of snapshots, or another CG with its list of volumes.

create_snapshot(*args, **kwargs)

create snapshot.

create_volume(*args, **kwargs)

Creates a volume.

create_volume_from_snapshot(*args, **kwargs)

create volume from snapshot.

delete_cgsnapshot(*args, **kwargs)

Deletes a CG snapshot.

delete_consistencygroup(*args, **kwargs)

Deletes a consistency group.

delete_snapshot(*args, **kwargs)

delete snapshot.

delete_volume(*args, **kwargs)

Deletes a volume on the Storage machine.

extend_volume(*args, **kwargs)

Resize volume.

failover_host(*args, **kwargs)

Failover a full backend.

Fails over the volume back and forth, if secondary_id is ‘default’, volumes will be failed back, otherwize failed over.

Note that the resulting status depends on the direction: in case of failover it will be ‘failed-over’ and in case of failback it will be ‘available’

freeze_backend(context)

Notify the backend that it’s frozen.

get_replication_status(*args, **kwargs)

Return replication status.

handle_created_vol_properties(cg, replication_info, volume)
initialize_connection(*args, **kwargs)

Initialize connection to instance.

Maps the created volume to the nova volume node, and returns the iSCSI target to be used in the instance

manage_volume(*args, **kwargs)

Brings an existing backend storage object under Cinder management.

reference value is passed straight from the get_volume_list helper function. it is up to the driver how this should be interpreted. It should be sufficient to identify a storage object that the driver should somehow associate with the newly-created cinder volume structure. There are two ways to do this:

  1. 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.
  2. Place some metadata on the volume, or somewhere in the backend, that allows other driver requests (e.g. delete, clone, attach, detach...) to locate the backend storage object when required.

If the reference doesn’t make sense, or doesn’t refer to an existing backend storage object, raise a ManageExistingInvalidReference exception.

The volume may have a volume_type, and the driver can inspect that and compare against the properties of the referenced backend storage object. If they are incompatible, raise a ManageExistingVolumeTypeMismatch, specifying a reason for the failure.

manage_volume_get_size(*args, **kwargs)

Return size of volume to be managed by manage_volume.

When calculating the size, round up to the next GB.

migrate_volume(*args, **kwargs)

Migrate volume to another backend.

Optimize the migration if the destination is on the same server.

If the specified host is another back-end on the same server, and the volume is not attached, we can do the migration locally without going through iSCSI.

Storage-assisted migration...

retype(*args, **kwargs)

Change volume type.

Returns a boolean indicating whether the retype occurred.

Parameters:
  • ctxt – Context
  • volume – A dictionary describing the volume to migrate
  • new_type – A dictionary describing the volume type to convert to
  • diff – A dictionary with the difference between the two types
  • host – A dictionary describing the host to migrate to, where host[‘host’] is its name, and host[‘capabilities’] is a dictionary of its reported capabilities
setup(*args, **kwargs)

Connect ssl client.

terminate_connection(*args, **kwargs)

Terminate connection.

Unmaps volume. If this is the last connection from the host, undefines the host from the storage.

thaw_backend(context)

Notify the backend that it’s unfrozen/thawed.

unmanage_volume(*args, **kwargs)

Removes the specified volume from Cinder management.

Does not delete the underlying backend storage object.

update_consistencygroup(*args, **kwargs)

Updates a consistency group.

volume_exists(*args, **kwargs)

Checks if a volume exists on xiv.