cinder.brick.local_dev.lvm module

LVM class for performing LVM operations.

class LVM(vg_name, root_helper, create_vg=False, physical_volumes=None, lvm_type='default', executor=<function execute>, lvm_conf=None, suppress_fd_warn=False)

Bases: os_brick.executor.Executor

LVM object to enable various LVM related operations.

LVM_CMD_PREFIX = ['env', 'LC_ALL=C']
activate_lv(name, is_snapshot=False, permanent=False)

Ensure that logical volume/snapshot logical volume is activated.

Parameters
  • name – Name of LV to activate

  • is_snapshot – whether LV is a snapshot

  • permanent – whether we should drop skipactivation flag

Raises

putils.ProcessExecutionError

create_lv_snapshot(name, source_lv_name, lv_type='default')

Creates a snapshot of a logical volume.

Parameters
  • name – Name to assign to new snapshot

  • source_lv_name – Name of Logical Volume to snapshot

  • lv_type – Type of LV (default or thin)

create_thin_pool(name=None, size_str=None)

Creates a thin provisioning pool for this VG.

The syntax here is slightly different than the default lvcreate -T, so we’ll just write a custom cmd here and do it.

Parameters
  • name – Name to use for pool, default is “<vg-name>-pool”

  • size_str – Size to allocate for pool, default is entire VG

Returns

The size string passed to the lvcreate command

create_volume(name, size_str, lv_type='default', mirror_count=0)

Creates a logical volume on the object’s VG.

Parameters
  • name – Name to use when creating Logical Volume

  • size_str – Size to use when creating Logical Volume

  • lv_type – Type of Volume (default or thin)

  • mirror_count – Use LVM mirroring with specified count

deactivate_lv(name)
delete(name)

Delete logical volume or snapshot.

Parameters

name – Name of LV to delete

extend_volume(lv_name, new_size)

Extend the size of an existing volume.

static get_all_physical_volumes(root_helper, vg_name=None)

Static method to get all PVs on a system.

Parameters
  • root_helper – root_helper to use for execute

  • vg_name – optional, gathers info for only the specified VG

Returns

List of Dictionaries with PV info

static get_all_volume_groups(root_helper, vg_name=None)

Static method to get all VGs on a system.

Parameters
  • root_helper – root_helper to use for execute

  • vg_name – optional, gathers info for only the specified VG

Returns

List of Dictionaries with VG info

static get_lv_info(root_helper, vg_name=None, lv_name=None)

Retrieve info about LVs (all, in a VG, or a single LV).

Parameters
  • root_helper – root_helper to use for execute

  • vg_name – optional, gathers info for only the specified VG

  • lv_name – optional, gathers info for only the specified LV

Returns

List of Dictionaries with LV info

static get_lvm_version(root_helper)

Static method to get LVM version from system.

Parameters

root_helper – root_helper to use for execute

Returns

version 3-tuple

get_volume(name)

Get reference object of volume specified by name.

Returns

dict representation of Logical Volume if exists

get_volumes(lv_name=None)

Get all LV’s associated with this instantiation (VG).

Returns

List of Dictionaries with LV info

lv_get_origin(name)

Return the origin of an LV that is a snapshot, None otherwise.

lv_has_snapshot(name)
lv_is_open(name)

Return True if LV is currently open, False otherwise.

lv_is_snapshot(name)

Return True if LV is a snapshot, False otherwise.

rename_volume(lv_name, new_name)

Change the name of an existing volume.

revert(snapshot_name)

Revert an LV to snapshot.

Parameters

snapshot_name – Name of snapshot to revert

property supports_lvchange_ignoreskipactivation

Property indicating whether lvchange can ignore skip activation.

Check for LVM version >= 2.02.99. (LVM2 git: ab789c1bc add –ignoreactivationskip to lvchange)

static supports_pvs_ignoreskippedcluster(root_helper)

Property indicating whether pvs supports –ignoreskippedcluster

Check for LVM version >= 2.02.103. (LVM2 git: baf95bbff cmdline: Add –ignoreskippedcluster.

property supports_snapshot_lv_activation

Property indicating whether snap activation changes are supported.

Check for LVM version >= 2.02.91. (LVM2 git: e8a40f6 Allow to activate snapshot)

Returns

True/False indicating support

static supports_thin_provisioning(root_helper)

Static method to check for thin LVM support on a system.

Parameters

root_helper – root_helper to use for execute

Returns

True if supported, False otherwise

update_volume_group_info()

Update VG info for this instantiation.

Used to update member fields of object and provide a dict of info for caller.

Returns

Dictionaries of VG info

vg_mirror_free_space(mirror_count)
vg_mirror_size(mirror_count)