RADOS Block Device Driver
Bases: object
Context manager to simplify error handling for connecting to ceph.
Bases: cinder.volume.driver.TransferVD, cinder.volume.driver.ExtendVD, cinder.volume.driver.CloneableImageVD, cinder.volume.driver.SnapshotVD, cinder.volume.driver.MigrateVD, cinder.volume.driver.ManageableVD, cinder.volume.driver.BaseVD
Implements RADOS block device (RBD) volume commands.
Create a new backup from an existing volume.
Returns an error if prerequisites aren’t met.
Create a cloned volume from another volume.
Since we are cloning from a volume and not a snapshot, we must first create a snapshot of the source volume.
The user has the option to limit how long a volume’s clone chain can be by setting rbd_max_clone_depth. If a clone is made of another clone and that clone has rbd_max_clone_depth clones behind it, the source volume will be flattened.
Exports the volume.
Creates an rbd snapshot.
Creates a logical volume.
Creates a volume from a snapshot.
Deletes an rbd snapshot.
Deletes a logical volume.
Synchronously recreates an export for a logical volume.
Extend an existing volume.
Return the current state of the volume service.
If ‘refresh’ is True, run the update first.
Manages an existing image.
Renames the image name to match the expected name for the volume. Error checking done by manage_existing_get_size is not repeated.
Parameters: |
|
---|
Return size of an existing image for manage_existing.
Parameters: |
|
---|
Removes an export for a logical volume.
Restore an existing backup to a new or existing volume.
Retypes a volume, allow Qos and extra_specs change.
Return model update from RBD for migrated volume.
This method should rename the back-end volume name(id) on the destination host back to its original name(id) on the source host.
Parameters: |
|
---|---|
Returns: | model_update to update DB with any needed changes |
Bases: io.RawIOBase
Enables LibRBD.Image objects to be treated as Python IO objects.
Calling unimplemented interfaces will raise IOError.
RBD does not have support for fileno() so we raise IOError.
Raising IOError is recommended way to notify caller that interface is not supported - see http://docs.python.org/2/library/io.html#io.IOBase
Bases: object
RBD image metadata to be used with RBDImageIOWrapper.
Bases: object
Context manager for dealing with an existing rbd volume.
This handles connecting to rados and opening an ioctx automatically, and otherwise acts like a librbd Image object.
The underlying librados client and ioctx can be accessed as the attributes ‘client’ and ‘ioctx’.