The cinder.volume.drivers.rbd Module¶
RADOS Block Device Driver
- 
class RADOSClient(driver, pool=None)¶
- Bases: - object- Context manager to simplify error handling for connecting to ceph. - 
features¶
 
- 
- 
class RBDDriver(active_backend_id=None, *args, **kwargs)¶
- Bases: - cinder.volume.driver.CloneableImageVD,- cinder.volume.driver.MigrateVD,- cinder.volume.driver.ManageableVD,- cinder.volume.driver.BaseVD- Implements RADOS block device (RBD) volume commands. - 
CI_WIKI_NAME= 'Cinder_Jenkins'¶
 - 
RBDProxy()¶
 - 
SYSCONFDIR= '/etc/ceph/'¶
 - 
VERSION= '1.2.0'¶
 - 
backup_volume(context, backup, backup_service)¶
- Create a new backup from an existing volume. 
 - 
check_for_setup_error()¶
- Returns an error if prerequisites aren’t met. 
 - 
clone_image(context, volume, image_location, image_meta, image_service)¶
 - 
copy_image_to_volume(context, volume, image_service, image_id)¶
 - 
copy_volume_to_image(context, volume, image_service, image_meta)¶
 - 
create_cloned_volume(volume, src_vref)¶
- 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. 
 - 
create_export(context, volume, connector)¶
- Exports the volume. 
 - 
create_snapshot(snapshot)¶
- Creates an rbd snapshot. 
 - 
create_volume(volume)¶
- Creates a logical volume. 
 - 
create_volume_from_snapshot(volume, snapshot)¶
- Creates a volume from a snapshot. 
 - 
delete_snapshot(snapshot)¶
- Deletes an rbd snapshot. 
 - 
delete_volume(volume)¶
- Deletes a logical volume. 
 - 
do_setup(context)¶
- Performs initialization steps that could raise exceptions. 
 - 
ensure_export(context, volume)¶
- Synchronously recreates an export for a logical volume. 
 - 
extend_volume(volume, new_size)¶
- Extend an existing volume. 
 - 
failover_host(context, volumes, secondary_id=None)¶
- Failover to replication target. 
 - 
get_volume_stats(refresh=False)¶
- Return the current state of the volume service. - If ‘refresh’ is True, run the update first. 
 - 
initialize_connection(volume, connector)¶
 - 
manage_existing(volume, existing_ref)¶
- 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: - volume – volume ref info to be set
- existing_ref – existing_ref is a dictionary of the form: {‘source-name’: <name of rbd image>}
 
 - 
manage_existing_get_size(volume, existing_ref)¶
- Return size of an existing image for manage_existing. - Parameters: - volume – volume ref info to be set
- existing_ref – existing_ref is a dictionary of the form: {‘source-name’: <name of rbd image>}
 
 - 
migrate_volume(context, volume, host)¶
 - 
remove_export(context, volume)¶
- Removes an export for a logical volume. 
 - 
restore_backup(context, backup, volume, backup_service)¶
- Restore an existing backup to a new or existing volume. 
 - 
retype(context, volume, new_type, diff, host)¶
- Retype from one volume type to another on the same backend. 
 - 
terminate_connection(volume, connector, **kwargs)¶
 - 
unmanage(volume)¶
 - 
update_migrated_volume(ctxt, volume, new_volume, original_volume_status)¶
- 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: - ctxt – The context used to run the method update_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
 - Returns: - model_update to update DB with any needed changes 
 
- 
- 
class RBDVolumeProxy(driver, name, pool=None, snapshot=None, read_only=False, remote=None, timeout=None)¶
- 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’.