ZFS Storage Appliance Cinder Volume Driver
- 
class MigrateVolumeCleanUp(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=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)
 
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)
 
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)
 
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)
 
Bases: taskflow.task.Task
- 
execute(src_zfssa, action_id)
 
- 
class MigrateVolumeSeverRepl(name=None, provides=None, requires=None, auto_extract=True, rebind=None, inject=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.
 
- 
VERSION = '1.0.2'
 
- 
backup_volume(context, backup, backup_service)
 
Not implemented.
- 
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)
 
- 
restore_backup(context, backup, volume, backup_service)
 
Not implemented.
- 
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()