ZFS Storage Appliance Cinder Volume Driver
-
class 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)
-
class 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)
-
revert(src_zfssa, **kwargs)
-
class 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)
-
revert(src_zfssa, volume, src_pool, src_project, **kwargs)
-
class 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)
-
revert(tgt_zfssa, tgt_pool, tgt_project, action_id, volume, **kwargs)
-
class 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)
-
class 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)
-
class 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.
-
CI_WIKI_NAME = 'Oracle_ZFSSA_CI'
-
VERSION = '1.0.2'
-
check_for_setup_error()
Check that driver can login.
Check also pool, project, initiators, initiatorgroup, target and
targetgroup.
-
clone_image(*args, **kwargs)
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)
-
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)
-
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)
-
local_path(volume)
Not implemented.
-
manage_existing(volume, existing_ref)
Manage an existing volume in the ZFSSA backend.
Parameters: |
- volume – Reference to the new volume.
- existing_ref – Reference to the existing volume to be managed.
|
-
manage_existing_get_size(volume, existing_ref)
Return size of the volume to be managed by manage_existing.
-
migrate_volume(ctxt, volume, host)
-
protocol = 'iSCSI'
-
remove_export(context, 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: |
- volume – The original volume that was migrated to this backend
- new_volume – The migration volume object that was created on
this backend as part of the migration process
- original_volume_status – The status of the original volume
|
Returns: | model_update to update DB with any needed changes
|
-
factory_zfssa()