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 = 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)

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

create_cgsnapshot(*args, **kwargs)

Create a consistency group snapshot.

create_cloned_volume(*args, **kwargs)
create_consistencygroup(*args, **kwargs)

Create a consistency group.

create_consistencygroup_from_src(*args, **kwargs)

Create a consistencygroup from source.

Parameters:
  • ctxt – the context of the caller.
  • group – the dictionary of the consistency group to be created.
  • volumes – a list of volume dictionaries in the group.
  • cgsnapshot – the dictionary of the cgsnapshot as source.
  • snapshots – a list of snapshot dictionaries in the cgsnapshot.
  • source_cg – the dictionary of the consisgroup as source.
  • sorted_source_vols – a list of volume dictionaries in the consisgroup.

:return model_update, volumes_model_update

create_group(*args, **kwargs)

Create generic volume group.

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

Delete a consistency group snapshot.

delete_consistencygroup(*args, **kwargs)

Delete a consistency group.

delete_group(*args, **kwargs)

Delete group and the volumes in the group.

delete_group_snapshot(*args, **kwargs)

Delete volume group snapshot.

delete_snapshot(*args, **kwargs)
delete_volume(*args, **kwargs)
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.

freeze_backend(ctxt)

Notify the backend that it’s frozen.

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

Add or remove volume(s) to/from an existing consistency group.

update_group(*args, **kwargs)

Update generic volume group.

volume_exists(*args, **kwargs)
class Group(group)

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.

class FakeLun(lun, **overrides)

Bases: object

update_volume(lun)
Lun.get_volume_update()
Lun.shallow_copy(**overrides)