cinder.volume.drivers.zfssa.zfssaiscsi
Module¶ZFS Storage Appliance Cinder Volume Driver
MigrateVolumeCleanUp
(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=None, ignore_list=None, revert_rebind=None, revert_requires=None)¶Bases: taskflow.task.Task
execute
(driver, volume, tgt_zfssa)¶Activate a given atom which will perform some operation and return.
This method can be used to perform an action on a given set of input
requirements (passed in via *args
and **kwargs
) to accomplish
some type of operation. This operation may provide some named
outputs/results as a result of it executing for later reverting (or for
other atoms to depend on).
NOTE(harlowja): the result (if any) that is returned should be persistable so that it can be passed back into this atom if reverting is triggered (especially in the case where reverting happens in a different python process or on a remote machine) and so that the result can be transmitted to other atoms (which may be local or remote).
Parameters: |
|
---|
MigrateVolumeCreateAction
(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=None, ignore_list=None, revert_rebind=None, revert_requires=None)¶Bases: taskflow.task.Task
execute
(src_zfssa, volume, src_pool, src_project, target, tgt_pool)¶Activate a given atom which will perform some operation and return.
This method can be used to perform an action on a given set of input
requirements (passed in via *args
and **kwargs
) to accomplish
some type of operation. This operation may provide some named
outputs/results as a result of it executing for later reverting (or for
other atoms to depend on).
NOTE(harlowja): the result (if any) that is returned should be persistable so that it can be passed back into this atom if reverting is triggered (especially in the case where reverting happens in a different python process or on a remote machine) and so that the result can be transmitted to other atoms (which may be local or remote).
Parameters: |
|
---|
revert
(src_zfssa, **kwargs)¶Revert this atom.
This method should undo any side-effects caused by previous execution
of the atom using the result of the execute()
method and
information on the failure which triggered reversion of the flow the
atom is contained in (if applicable).
Parameters: |
|
---|
MigrateVolumeInit
(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=None, ignore_list=None, revert_rebind=None, revert_requires=None)¶Bases: taskflow.task.Task
execute
(src_zfssa, volume, src_pool, src_project)¶Activate a given atom which will perform some operation and return.
This method can be used to perform an action on a given set of input
requirements (passed in via *args
and **kwargs
) to accomplish
some type of operation. This operation may provide some named
outputs/results as a result of it executing for later reverting (or for
other atoms to depend on).
NOTE(harlowja): the result (if any) that is returned should be persistable so that it can be passed back into this atom if reverting is triggered (especially in the case where reverting happens in a different python process or on a remote machine) and so that the result can be transmitted to other atoms (which may be local or remote).
Parameters: |
|
---|
revert
(src_zfssa, volume, src_pool, src_project, **kwargs)¶Revert this atom.
This method should undo any side-effects caused by previous execution
of the atom using the result of the execute()
method and
information on the failure which triggered reversion of the flow the
atom is contained in (if applicable).
Parameters: |
|
---|
MigrateVolumeMoveVol
(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=None, ignore_list=None, revert_rebind=None, revert_requires=None)¶Bases: taskflow.task.Task
execute
(tgt_zfssa, tgt_pool, tgt_project, action_id, volume)¶Activate a given atom which will perform some operation and return.
This method can be used to perform an action on a given set of input
requirements (passed in via *args
and **kwargs
) to accomplish
some type of operation. This operation may provide some named
outputs/results as a result of it executing for later reverting (or for
other atoms to depend on).
NOTE(harlowja): the result (if any) that is returned should be persistable so that it can be passed back into this atom if reverting is triggered (especially in the case where reverting happens in a different python process or on a remote machine) and so that the result can be transmitted to other atoms (which may be local or remote).
Parameters: |
|
---|
revert
(tgt_zfssa, tgt_pool, tgt_project, action_id, volume, **kwargs)¶Revert this atom.
This method should undo any side-effects caused by previous execution
of the atom using the result of the execute()
method and
information on the failure which triggered reversion of the flow the
atom is contained in (if applicable).
Parameters: |
|
---|
MigrateVolumeSendReplUpdate
(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=None, ignore_list=None, revert_rebind=None, revert_requires=None)¶Bases: taskflow.task.Task
execute
(src_zfssa, action_id)¶Activate a given atom which will perform some operation and return.
This method can be used to perform an action on a given set of input
requirements (passed in via *args
and **kwargs
) to accomplish
some type of operation. This operation may provide some named
outputs/results as a result of it executing for later reverting (or for
other atoms to depend on).
NOTE(harlowja): the result (if any) that is returned should be persistable so that it can be passed back into this atom if reverting is triggered (especially in the case where reverting happens in a different python process or on a remote machine) and so that the result can be transmitted to other atoms (which may be local or remote).
Parameters: |
|
---|
MigrateVolumeSeverRepl
(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=None, ignore_list=None, revert_rebind=None, revert_requires=None)¶Bases: taskflow.task.Task
execute
(tgt_zfssa, src_asn, action_id, driver)¶Activate a given atom which will perform some operation and return.
This method can be used to perform an action on a given set of input
requirements (passed in via *args
and **kwargs
) to accomplish
some type of operation. This operation may provide some named
outputs/results as a result of it executing for later reverting (or for
other atoms to depend on).
NOTE(harlowja): the result (if any) that is returned should be persistable so that it can be passed back into this atom if reverting is triggered (especially in the case where reverting happens in a different python process or on a remote machine) and so that the result can be transmitted to other atoms (which may be local or remote).
Parameters: |
|
---|
ZFSSAISCSIDriver
(*args, **kwargs)¶Bases: cinder.volume.driver.ISCSIDriver
ZFSSA Cinder iSCSI volume driver.
Version history:
1.0.1:
Backend enabled volume migration.
Local cache feature.
1.0.2:
Volume manage/unmanage support.
1.0.3:
Fix multi-connect to enable live-migration (LP#1565051).
CI_WIKI_NAME
= 'Oracle_ZFSSA_CI'¶VERSION
= '1.0.3'¶check_for_setup_error
()¶Check that driver can login.
Check also pool, project, initiators, initiatorgroup, target and targetgroup.
clone_image
(context, volume, image_location, image_meta, image_service)¶Create a volume efficiently from an existing image.
Verify the image ID being used:
(1) If there is no existing cache volume, create one and transfer image data to it. Take a snapshot.
(2) If a cache volume already exists, verify if it is either alternated or updated. If so try to remove it, raise exception if removal fails. Create a new cache volume as in (1).
Clone a volume from the cache volume and returns it to Cinder.
A file lock is placed on this method to prevent:
(a) a race condition when a cache volume has been verified, but then gets deleted before it is cloned.
(b) failure of subsequent clone_image requests if the first request is still pending.
create_cloned_volume
(volume, src_vref)¶Create a clone of the specified volume.
create_export
(context, volume, connector)¶Exports the volume.
Can optionally return a Dictionary of changes to the volume object to be persisted.
create_snapshot
(snapshot)¶Creates a snapshot of a volume.
Snapshot name: snapshot[‘name’] Volume name: snapshot[‘volume_name’]
create_volume
(volume)¶Create a volume on ZFSSA.
create_volume_from_snapshot
(volume, snapshot)¶Creates a volume from a snapshot - clone a snapshot.
delete_snapshot
(snapshot)¶Deletes a snapshot.
delete_volume
(volume)¶Deletes a volume with the given volume[‘name’].
do_setup
(context)¶Setup - create multiple elements.
Project, initiators, initiatorgroup, target and targetgroup.
ensure_export
(context, volume)¶Synchronously recreates an export for a volume.
extend_volume
(volume, new_size)¶Driver entry point to extent volume size.
get_volume_stats
(refresh=False)¶Get volume status.
If ‘refresh’ is True, run update the stats first.
initialize_connection
(volume, connector)¶Driver entry point to setup a connection for a volume.
local_path
(volume)¶Not implemented.
manage_existing
(volume, existing_ref)¶Manage an existing volume in the ZFSSA backend.
Parameters: |
|
---|
manage_existing_get_size
(volume, existing_ref)¶Return size of the volume to be managed by manage_existing.
migrate_volume
(ctxt, volume, host)¶Migrate the volume to the specified host.
Returns a boolean indicating whether the migration occurred, as well as model_update.
Parameters: |
|
---|
protocol
= 'iSCSI'¶remove_export
(context, volume)¶Removes an export for a volume.
terminate_connection
(volume, connector, **kwargs)¶Driver entry point to terminate a connection for a volume.
unmanage
(volume)¶Remove an existing volume from cinder management.
Parameters: | volume – Reference to the volume to be unmanaged. |
---|
update_migrated_volume
(ctxt, volume, new_volume, original_volume_status)¶Return model update for migrated volume.
Parameters: |
|
---|---|
Returns: | model_update to update DB with any needed changes |
factory_zfssa
()¶Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.