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

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

This is the driver that allows openstack to talk to DS8K.

All volumes are thin provisioned by default, if the machine is licensed for it. This can be overridden by creating a volume type and specifying a key like so:

#> cinder type-create my_type
#> cinder type-key my_type set drivers:thin_provision=False
#> cinder create --volume-type my_type 123

Sample settings for cinder.conf:

enabled_backends = ibm_ds8k_1, ibm_ds8k_2
[ibm_ds8k_1]
proxy = cinder.volume.drivers.ibm.ibm_storage.ds8k_proxy.DS8KProxy
volume_backend_name = ibm_ds8k_1
san_clustername = P2,P3
san_password = actual_password
san_login = actual_username
san_ip = foo.com
volume_driver =
    cinder.volume.drivers.ibm.ibm_storage.ibm_storage.IBMStorageDriver
chap = disabled
connection_type = fibre_channel
replication_device = connection_type: fibre_channel, backend_id: bar,
                     san_ip: bar.com, san_login: actual_username,
                     san_password: actual_password, san_clustername: P4,
                     port_pairs: I0236-I0306; I0237-I0307

[ibm_ds8k_2]
proxy = cinder.volume.drivers.ibm.ibm_storage.ds8k_proxy.DS8KProxy
volume_backend_name = ibm_ds8k_2
san_clustername = P4,P5
san_password = actual_password
san_login = actual_username
san_ip = bar.com
volume_driver =
    cinder.volume.drivers.ibm.ibm_storage.ibm_storage.IBMStorageDriver
chap = disabled
connection_type = fibre_channel
class DS8KProxy(storage_info, logger, exception, driver, active_backend_id=None, HTTPConnectorObject=None, host=None)

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

create_cloned_volume(*args, **kwargs)
create_group(*args, **kwargs)

Create consistency group of FlashCopy or RemoteCopy.

create_group_from_src(*args, **kwargs)

Create volume group from volume group or volume group snapshot.

create_group_snapshot(*args, **kwargs)

Create volume group snapshot.

create_snapshot(*args, **kwargs)
create_volume(*args, **kwargs)
create_volume_from_snapshot(*args, **kwargs)
delete_group(*args, **kwargs)

Delete consistency group and volumes in it.

delete_group_snapshot(*args, **kwargs)

Delete volume group snapshot.

delete_snapshot(*args, **kwargs)
delete_volume(*args, **kwargs)
disable_replication(context, group, volumes)

Pause pprc pairs.

if user wants to adjust group, he/she does not need to pause/resume pprc pairs, here just provide a way to pause replicaiton.

enable_replication(context, group, volumes)

Resume pprc pairs.

if user wants to adjust group, he/she does not need to pause/resume pprc pairs, here just provide a way to resume replicaiton.

extend_volume(*args, **kwargs)
failover_host(*args, **kwargs)

Fail over the volume back and forth.

if secondary_id is ‘default’, volumes will be failed back, otherwize failed over.

failover_replication(context, group, volumes, secondary_backend_id)

Fail over replication for a group and volumes in the group.

freeze_backend(ctxt)

Notify the backend that it’s frozen.

get_replication_error_status(context, groups)

Return error info for replicated groups and its volumes.

all pprc copy related APIs wait until copy is finished, so it does not need to check their status afterwards.

initialize_connection(*args, **kwargs)

Attach a volume to the host.

migrate_volume(*args, **kwargs)
prefix = '[IBM DS8K STORAGE]:'
retype(*args, **kwargs)

retype the volume.

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)
terminate_connection(*args, **kwargs)

Detach a volume from a host.

thaw_backend(ctxt)

Notify the backend that it’s unfrozen/thawed.

update_group(*args, **kwargs)

Update generic volume group.

volume_exists(*args, **kwargs)
class Group(group, is_snapshot=False)

Bases: object

provide group information for driver from group db object.

class Lun(volume, is_snapshot=False)

Bases: object

provide volume information for driver from volume db object.

Version history:

1.0.0 - initial revision.
2.1.0 - Added support for specify pool and lss, also improve the code.
2.1.1 - Added support for replication consistency group.
2.1.2 - Added support for cloning volume asynchronously.
class FakeLun(lun, **overrides)

Bases: object

update_volume(lun)
VERSION = '2.1.2'
get_volume_update()
shallow_copy(**overrides)
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.