cinder.volume.drivers.lvm
Module¶Driver for Linux servers running LVM.
LVMVolumeDriver
(vg_obj=None, *args, **kwargs)¶Bases: cinder.volume.driver.VolumeDriver
Executes commands relating to Volumes.
CI_WIKI_NAME
= 'Cinder_Jenkins'¶VERSION
= '3.0.0'¶check_for_setup_error
()¶Verify that requirements are in place to use LVM driver.
clone_image
(context, volume, image_location, image_meta, image_service)¶Create a volume efficiently from an existing image.
image_location is a string whose format depends on the image service backend in use. The driver should use it to determine whether cloning is possible.
image_id is a string which represents id of the image. It can be used by the driver to introspect internal stores or registry to do an efficient image clone.
image_meta is a dictionary that includes ‘disk_format’ (e.g. raw, qcow2) and other image attributes that allow drivers to decide whether they can clone the image without first requiring conversion.
image_service is the reference of the image_service to use. Note that this is needed to be passed here for drivers that will want to fetch images from the image service directly.
Returns a dict of volume properties eg. provider_location, boolean indicating whether cloning occurred
copy_image_to_volume
(context, volume, image_service, image_id)¶Fetch the image from image_service and write it to the volume.
copy_volume_to_image
(context, volume, image_service, image_meta)¶Copy the volume to the specified image.
create_cloned_volume
(volume, src_vref)¶Creates a clone of the specified volume.
create_export
(context, volume, connector, vg=None)¶Exports the volume.
Can optionally return a Dictionary of changes to the volume object to be persisted.
create_snapshot
(snapshot)¶Creates a snapshot.
create_volume
(volume)¶Creates a logical volume.
create_volume_from_snapshot
(volume, snapshot)¶Creates a volume from a snapshot.
delete_snapshot
(snapshot)¶Deletes a snapshot.
delete_volume
(volume)¶Deletes a logical volume.
ensure_export
(context, volume)¶Synchronously recreates an export for a volume.
extend_volume
(volume, new_size)¶Extend an existing volume’s size.
get_manageable_snapshots
(cinder_snapshots, marker, limit, offset, sort_keys, sort_dirs)¶List snapshots on the backend available for management by Cinder.
Returns a list of dictionaries, each specifying a snapshot in the host, with the following keys: - reference (dictionary): The reference for a snapshot, which can be passed to “manage_existing_snapshot”. - size (int): The size of the snapshot according to the storage backend, rounded up to the nearest GB. - safe_to_manage (boolean): Whether or not this snapshot is safe to manage according to the storage backend. For example, is the snapshot in use or invalid for any reason. - reason_not_safe (string): If safe_to_manage is False, the reason why. - cinder_id (string): If already managed, provide the Cinder ID. - extra_info (string): Any extra information to return to the user - source_reference (string): Similar to “reference”, but for the snapshot’s source volume.
Parameters: |
|
---|
get_manageable_volumes
(cinder_volumes, marker, limit, offset, sort_keys, sort_dirs)¶List volumes on the backend available for management by Cinder.
Returns a list of dictionaries, each specifying a volume in the host, with the following keys: - reference (dictionary): The reference for a volume, which can be passed to “manage_existing”. - size (int): The size of the volume according to the storage backend, rounded up to the nearest GB. - safe_to_manage (boolean): Whether or not this volume is safe to manage according to the storage backend. For example, is the volume in use or invalid for any reason. - reason_not_safe (string): If safe_to_manage is False, the reason why. - cinder_id (string): If already managed, provide the Cinder ID. - extra_info (string): Any extra information to return to the user
Parameters: |
|
---|
get_pool
(volume)¶Return pool name where volume reside on.
Parameters: | volume – The volume hosted by the driver. |
---|---|
Returns: | name of the pool where given volume is in. |
get_volume_stats
(refresh=False)¶Get volume status.
If ‘refresh’ is True, run update the stats first.
initialize_connection
(volume, connector)¶Allow connection to connector and return connection info.
Parameters: |
|
---|---|
Returns conn_info: | |
A dictionary of connection information. |
local_path
(volume, vg=None)¶manage_existing
(volume, existing_ref)¶Manages an existing LV.
Renames the LV to match the expected name for the volume. Error checking done by manage_existing_get_size is not repeated.
manage_existing_get_size
(volume, existing_ref)¶Return size of volume to be managed by manage_existing.
When calculating the size, round up to the next GB.
Parameters: |
|
---|---|
Returns size: | Volume size in GiB (integer) |
manage_existing_object_get_size
(existing_object, existing_ref, object_type)¶Return size of an existing LV for manage existing volume/snapshot.
existing_ref is a dictionary of the form: {‘source-name’: <name of LV>}
manage_existing_snapshot
(snapshot, existing_ref)¶Brings an existing backend storage object under Cinder management.
existing_ref is passed straight through from the API request’s manage_existing_ref value, and it is up to the driver how this should be interpreted. It should be sufficient to identify a storage object that the driver should somehow associate with the newly-created cinder snapshot structure.
There are two ways to do this:
If the existing_ref doesn’t make sense, or doesn’t refer to an existing backend storage object, raise a ManageExistingInvalidReference exception.
Parameters: |
|
---|
manage_existing_snapshot_get_size
(snapshot, existing_ref)¶Return size of snapshot to be managed by manage_existing.
When calculating the size, round up to the next GB.
Parameters: |
|
---|---|
Returns size: | Volume snapshot size in GiB (integer) |
migrate_volume
(ctxt, volume, host, thin=False, mirror_count=0)¶Optimize the migration if the destination is on the same server.
If the specified host is another back-end on the same server, and the volume is not attached, we can do the migration locally without going through iSCSI.
remove_export
(context, volume)¶Removes an export for a volume.
retype
(context, volume, new_type, diff, host)¶Retypes a volume, allow QoS and extra_specs change.
revert_to_snapshot
(context, volume, snapshot)¶Revert a volume to a snapshot
terminate_connection
(volume, connector, **kwargs)¶Disallow connection from connector
Parameters: |
|
---|
update_migrated_volume
(ctxt, volume, new_volume, original_volume_status)¶Return model update from LVM 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 |
validate_connector
(connector)¶Fail if connector doesn’t contain all the data needed by driver.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.