.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "LVM 3pm" .TH LVM 3pm "2022-10-13" "perl v5.34.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Linux::LVM \- Perl extension for accessing Logical Volume Manager(LVM) data structures on Linux. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Linux::LVM; \& Linux::LVM\->units(\*(AqG\*(Aq); .Ve .SH "ABSTRACT" .IX Header "ABSTRACT" .Vb 2 \& The live data used in the examples is included in the DESCRIPTION area \& for your convenience and reference. .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" .Vb 3 \& units() Get or set the units used to report sizes of LVs, PVs, etc. \& legal values: hbskmgtpeHBSKMGTPE \& see man lvm documentation of \-\-units \& \& get_volume_group_list() This routine will return an array that \& contains the names of the volume groups. \& \& @vgs = get_volume_group_list(); print "@vgs \en"; \& Would yield the following: vg00 \& \& \& get_volume_group_information($) This routine will return all of \& the volume group information about \& the specified volume group. \& \& %vg = get_volume_group_information("vg00"); \& foreach(sort keys %vg) { \& print "$_ = $vg{$_}\en"; \& } \& Would yield the following: \& access = read/write \& act_pv = 2 \& alloc_pe = 3840 \& alloc_pe_size = 15 \& alloc_pe_size_unit = GB \& cur_lv = 3 \& cur_pv = 2 \& free_pe = 864 \& free_pe_size = 3.38 \& free_pe_size_unit = GB \& max_lv = 256 \& max_lv_size = 255.99 \& max_lv_size_unit = GB \& max_pv = 256 \& open_lv = 0 \& pe_size = 4 \& pe_size_unit = MB \& status = available/resizable \& total_pe = 4704 \& uuid = BBq8si\-NyRR\-9ZNW\-3J5e\-DoRO\-RBHK\-ckrszi \& vg_number = 0 \& vg_size = 18.38 \& vg_size_unit = GB \& vgname = vg00 \& \& \& get_logical_volume_information($) This routine will return all of the \& logical volume information associated \& with the specified volume group. \& \& %lv = get_logical_volume_information("vg00"); \& foreach $lvname (sort keys %lv) { \& foreach(sort keys %{$lv{$lvname}}) { \& print "$_ = $lv{$lvname}\->{$_}\en"; \& } \& print "\en"; \& } \& Would yield the following results: \& alloc_le = 1024 \& allocation = next free \& cur_le = 1024 \& device = 58:0 \& lv_number = 1 \& lv_size = 4 \& lv_size_unit = GB \& name = /dev/vg00/lvol1 \& open_lv = 0 \& read_ahead = 1024 \& status = available \& write_access = read/write \& \& alloc_le = 1280 \& allocation = next free \& cur_le = 1280 \& device = 58:1 \& lv_number = 2 \& lv_size = 5 \& lv_size_unit = GB \& name = /dev/vg00/lvol2 \& open_lv = 0 \& read_ahead = 1024 \& status = available \& write_access = read/write \& \& alloc_le = 1536 \& allocation = next free \& cur_le = 1536 \& device = 58:2 \& lv_number = 3 \& lv_size = 6 \& lv_size_unit = GB \& name = /dev/vg00/lvol3 \& open_lv = 0 \& read_ahead = 1024 \& status = available \& write_access = read/write \& \& \& get_physical_volume_information($) This routine will return all of the information \& information about the physical volumes assigned \& to the specified volume group. \& \& %pv = get_physical_volume_information("vg00"); \& foreach $pvname (sort keys %pv) { \& foreach(sort keys %{$pv{$pvname}}) { \& print "$_ = $pv{$pvname}\->{$_}\en"; \& } \& print "\en"; \& } \& Would yield the following results: \& device = /dev/hda3 \& free_pe = 0 \& pv_number = 1 \& status = available / allocatable \& total_pe = 2160 \& \& device = /dev/hda4 \& free_pe = 864 \& pv_number = 2 \& status = available / allocatable \& total_pe = 2544 \& \& \& get_lv_info($) This routine will return all of the information about the \& specified logical volume. The information will be returned \& in a hash. \& \& get_lv_info \& %lv = get_lv_info("/dev/vg00/lvol1"); \& foreach (sort keys %lv) { \& print "$_ = $lv{$_} \en"; \& } \& Would yield the following results: \& access = read/write \& alloc_le = 1024 \& allocation = next free \& block_device = 58:0 \& current_le = 1024 \& lv_name = /dev/vg00/lvol1 \& lv_number = 1 \& lv_open = 0 \& read_ahead = 1024 \& size = 4 \& size_unit = GB \& status = available \& vg_name = vg00 \& \& \& \& get_pv_info($) This routine will return all of the information about the \& specified physical volume. The information will be returned \& in a hash. \& \& %pv = get_pv_info("/dev/hda3"); \& foreach (sort keys %pv) { \& print "$_ = $pv{$_} \en"; \& } \& Would yield the following results: \& alloc_pe = 2160 \& allocatable = yes (but full) \& free_pe = 0 \& num_lvols = 2 \& pe_size = 4096 \& pe_size_unit = KByte \& pv_name = /dev/hda3 \& pv_number = 1 \& sectors = 17703630 \& size = 8.44 \& size_info = NOT usable 4.19 MB [LVM: 136 KB] \& size_unit = GB \& status = available \& total_pe = 2160 \& uuid = 2c5ADu\-oEdt\-ovCe\-rqp0\-MWpF\-I5u1\-8XigH4 \& vg_name = vg00 \& \& \& \& Command Output Used In The Above Examples: /sbin/vgdisplay \-v \& \-\-\- Volume group \-\-\- \& VG Name vg00 \& VG Access read/write \& VG Status available/resizable \& VG # 0 \& MAX LV 256 \& Cur LV 3 \& Open LV 0 \& MAX LV Size 255.99 GB \& Max PV 256 \& Cur PV 2 \& Act PV 2 \& VG Size 18.38 GB \& PE Size 4 MB \& Total PE 4704 \& Alloc PE / Size 3840 / 15 GB \& Free PE / Size 864 / 3.38 GB \& VG UUID BBq8si\-NyRR\-9ZNW\-3J5e\-DoRO\-RBHK\-ckrszi \& \& \-\-\- Logical volume \-\-\- \& LV Name /dev/vg00/lvol1 \& VG Name vg00 \& LV Write Access read/write \& LV Status available \& LV # 1 \& # open 0 \& LV Size 4 GB \& Current LE 1024 \& Allocated LE 1024 \& Allocation next free \& Read ahead sectors 1024 \& Block device 58:0 \& \& \-\-\- Logical volume \-\-\- \& LV Name /dev/vg00/lvol2 \& VG Name vg00 \& LV Write Access read/write \& LV Status available \& LV # 2 \& # open 0 \& LV Size 5 GB \& Current LE 1280 \& Allocated LE 1280 \& Allocation next free \& Read ahead sectors 1024 \& Block device 58:1 \& \& \-\-\- Logical volume \-\-\- \& LV Name /dev/vg00/lvol3 \& VG Name vg00 \& LV Write Access read/write \& LV Status available \& LV # 3 \& # open 0 \& LV Size 6 GB \& Current LE 1536 \& Allocated LE 1536 \& Allocation next free \& Read ahead sectors 1024 \& Block device 58:2 \& \& \-\-\- Physical volumes \-\-\- \& PV Name (#) /dev/hda3 (1) \& PV Status available / allocatable \& Total PE / Free PE 2160 / 0 \& \& PV Name (#) /dev/hda4 (2) \& PV Status available / allocatable \& Total PE / Free PE 2544 / 864 .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" vgdisplay(1M) lvdisplay(1M) pvdisplay(1M) .SH "AUTHOR" .IX Header "AUTHOR" Chad Kerner, .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright 2003 by Chad Kerner .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.