The cinder.volume.drivers.zfssa.zfssanfs Module

The cinder.volume.drivers.zfssa.zfssanfs Module

ZFS Storage Appliance NFS Cinder Volume Driver

class ZFSSANFSDriver(*args, **kwargs)

Bases: cinder.volume.drivers.nfs.NfsDriver

ZFSSA Cinder NFS volume driver.

Version history:

    Backend enabled volume migration.
    Local cache feature.
    Volume manage/unmanage support.
VERSION = '1.0.2'

Check that driver can login.

Check also for properly configured pool, project and share Check that the http and nfs services are enabled

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)

Creates a snapshot and then clones the snapshot into a volume.


Creates a snapshot of a volume.

create_volume_from_snapshot(volume, snapshot, method='COPY')

Deletes a snapshot.

driver_prefix = 'nfs'
driver_volume_type = 'nfs'
manage_existing(volume, existing_ref)

Manage an existing volume in the ZFSSA backend.

  • 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 = 'nfs'

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.

  • 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

model_update to update DB with any needed changes

volume_backend_name = 'ZFSSA_NFS'
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.