libstorage-ng
|
A Volume Group of the Logical Volume Manager (LVM). More...
#include <LvmVg.h>
Public Member Functions | |
const std::string & | get_vg_name () const |
Get volume group name. More... | |
void | set_vg_name (const std::string &vg_name) |
const Region & | get_region () const |
unsigned long long | get_size () const |
std::string | get_size_string () const |
unsigned long long | get_extent_size () const |
Returns the extent size of the volume group. More... | |
void | set_extent_size (unsigned long long extent_size) |
Set the extent size of the volume group. More... | |
unsigned long long | number_of_extents () const |
Calculates the number of extents in the volume group. | |
unsigned long long | number_of_used_extents () const |
Calculates the number of used extents in the volume group. More... | |
unsigned long long | number_of_free_extents () const |
Calculates the number of free extents in the volume group. | |
bool | is_overcommitted () const |
Check whether the volume group is overcommitted. More... | |
LvmPv * | add_lvm_pv (BlkDevice *blk_device) |
Adds a block device as a physical volume to the volume group. More... | |
void | remove_lvm_pv (BlkDevice *blk_device) |
Removes a block device from the volume group. More... | |
unsigned long long | max_size_for_lvm_lv (LvType lv_type) const |
Return the max size in bytes for a new logical volume of type lv_type. More... | |
LvmLv * | create_lvm_lv (const std::string &lv_name, LvType lv_type, unsigned long long size) |
Create a logical volume with name lv_name and type lv_type in the volume group. More... | |
LvmLv * | create_lvm_lv (const std::string &lv_name, unsigned long long size) ST_DEPRECATED |
void | delete_lvm_lv (LvmLv *lvm_lv) |
Delete a logical volume in the volume group. More... | |
std::vector< LvmPv * > | get_lvm_pvs () |
std::vector< const LvmPv * > | get_lvm_pvs () const |
LvmLv * | get_lvm_lv (const std::string &lv_name) |
std::vector< LvmLv * > | get_lvm_lvs () |
std::vector< const LvmLv * > | get_lvm_lvs () const |
Impl & | get_impl () |
const Impl & | get_impl () const |
virtual LvmVg * | clone () const override |
![]() | |
sid_t | get_sid () const |
bool | operator== (const Device &rhs) const |
bool | operator!= (const Device &rhs) const |
Device * | copy_to_devicegraph (Devicegraph *devicegraph) const |
Copies the device to the devicegraph. More... | |
bool | exists_in_devicegraph (const Devicegraph *devicegraph) const |
Checks if the device exists in the devicegraph. | |
bool | exists_in_probed () const |
Checks if the device exists in the probed devicegraph. | |
bool | exists_in_staging () const |
Checks if the device exists in the staging devicegraph. | |
bool | exists_in_system () const |
Checks if the device exists in the system devicegraph. | |
std::string | get_displayname () const |
ResizeInfo | detect_resize_info () const |
Detect the resize info of the device. More... | |
bool | has_children () const |
size_t | num_children () const |
bool | has_parents () const |
size_t | num_parents () const |
std::vector< Device * > | get_children () |
std::vector< const Device * > | get_children () const |
std::vector< Device * > | get_parents () |
std::vector< const Device * > | get_parents () const |
std::vector< Device * > | get_siblings (bool itself) |
std::vector< const Device * > | get_siblings (bool itself) const |
std::vector< Device * > | get_descendants (bool itself) |
std::vector< const Device * > | get_descendants (bool itself) const |
std::vector< Device * > | get_ancestors (bool itself) |
std::vector< const Device * > | get_ancestors (bool itself) const |
std::vector< Device * > | get_leaves (bool itself) |
std::vector< const Device * > | get_leaves (bool itself) const |
std::vector< Device * > | get_roots (bool itself) |
std::vector< const Device * > | get_roots (bool itself) const |
std::vector< Holder * > | get_in_holders () |
std::vector< const Holder * > | get_in_holders () const |
std::vector< Holder * > | get_out_holders () |
std::vector< const Holder * > | get_out_holders () const |
void | remove_descendants () |
const std::map< std::string, std::string > & | get_userdata () const |
void | set_userdata (const std::map< std::string, std::string > &userdata) |
Devicegraph * | get_devicegraph () |
const Devicegraph * | get_devicegraph () const |
Impl & | get_impl () |
const Impl & | get_impl () const |
void | save (xmlNode *node) const |
Static Public Member Functions | |
static LvmVg * | create (Devicegraph *devicegraph, const std::string &vg_name) |
static LvmVg * | load (Devicegraph *devicegraph, const xmlNode *node) |
static std::vector< LvmVg * > | get_all (Devicegraph *devicegraph) |
Get all LvmVgs. | |
static std::vector< const LvmVg * > | get_all (const Devicegraph *devicegraph) |
Get all LvmVgs. More... | |
static LvmVg * | find_by_vg_name (Devicegraph *devicegraph, const std::string &vg_name) |
Find a volume group by vg-name. More... | |
static const LvmVg * | find_by_vg_name (const Devicegraph *devicegraph, const std::string &vg_name) |
Find a volume group by vg-name. More... | |
static bool | compare_by_vg_name (const LvmVg *lhs, const LvmVg *rhs) |
Compare (less than) two LvmVgs by vg-name. | |
![]() | |
static std::vector< Device * > | get_all (Devicegraph *devicegraph) |
static std::vector< const Device * > | get_all (const Devicegraph *devicegraph) |
static bool | compare_by_sid (const Device *lhs, const Device *rhs) |
Compare (less than) two Devices by sid. | |
static bool | compare_by_name (const Device *lhs, const Device *rhs) |
Compare (less than) two Devices by name. More... | |
Protected Member Functions | |
LvmVg (Impl *impl) | |
![]() | |
Device (Impl *impl) | |
void | create (Devicegraph *devicegraph) |
void | load (Devicegraph *devicegraph) |
A Volume Group of the Logical Volume Manager (LVM).
Adds a block device as a physical volume to the volume group.
If there is not a physical volume on the block device it will be created.
LvmLv* storage::LvmVg::create_lvm_lv | ( | const std::string & | lv_name, |
LvType | lv_type, | ||
unsigned long long | size | ||
) |
Create a logical volume with name lv_name and type lv_type in the volume group.
Supported lv_types are NORMAL and THIN_POOL.
void storage::LvmVg::delete_lvm_lv | ( | LvmLv * | lvm_lv | ) |
Delete a logical volume in the volume group.
Also deletes all descendants of the logical volume.
|
static |
Find a volume group by vg-name.
LvmVgNotFoundByVgName |
|
static |
Find a volume group by vg-name.
LvmVgNotFoundByVgName |
|
static |
Get all LvmVgs.
unsigned long long storage::LvmVg::get_extent_size | ( | ) | const |
Returns the extent size of the volume group.
const std::string& storage::LvmVg::get_vg_name | ( | ) | const |
Get volume group name.
This is different from get_name().
bool storage::LvmVg::is_overcommitted | ( | ) | const |
Check whether the volume group is overcommitted.
If it is, Storage::commit() will most likely fail.
unsigned long long storage::LvmVg::max_size_for_lvm_lv | ( | LvType | lv_type | ) | const |
Return the max size in bytes for a new logical volume of type lv_type.
The size may be limited by other parameters, e.g. the filesystem on it. The max size also depends on parameters, e.g. the chunk size for thin pools.
unsigned long long storage::LvmVg::number_of_used_extents | ( | ) | const |
Calculates the number of used extents in the volume group.
May be larger than the number of extents in the volume group.
void storage::LvmVg::remove_lvm_pv | ( | BlkDevice * | blk_device | ) |
Removes a block device from the volume group.
The physical volume on the block device will the deleted.
void storage::LvmVg::set_extent_size | ( | unsigned long long | extent_size | ) |
Set the extent size of the volume group.
This can modify the size of the logical volumes. Due to rounding the size of logical volumes can become zero or the volume group can become overcommitted.
Setting the extent size is unsupported if the volume group is already created on-disk (it is only supported by LVM for special cases).
InvalidExtentSize,Exception |