In the past I have wrote lots of different little blurbs on LVM but I have been using it a lot and needed to document all the processes. I will consolidate all my past posts into this one:
Logical Volume Management provides a great deal of flexibility allowing you to dynamically re-allocate blocks of space to different file systems. Traditional volume manage relies upon strict partition boundaries separating and containerizing each mount point. Logical Volume Management in linux takes control of the whole drive (or partition) carving it out into equal chunks called physical extents (PE). Each PE is addressed by it’s logical extent (LE) address. Groups of LE’s are grouped together to form logical volumes (LV) that are used to mount as file systems. Then LV’s are grouped into volume groups (VG) for management purposes.
All of the information below is the command line versions of LVM management. There are lots of quality GUI tools to manage LVM but since I rarely run graphical linux command line is my friend.
Display LVM Information
Display Physical Volume information – pvdisplay
This command will display information on the physical volumes. Physical volumes fall along partition and traditional linux storage boundries. This is how you will identify what physical disks are involved in your lvm’s
[root@linuxmonkey2 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb3
VG Name storagevg
PV Size 456.83 GB / not usable 15.15 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 14618
Free PE 1
Allocated PE 14617
PV UUID 3bwFUg-N06S-yTr9-BkoS-nndD-XcXz-G308fy
As you can see this displays a lot of information on the physical volume and some additional information on PE’s and volume group associated with the physical volume.
Display logical volumes – lvdisplay
This command will display information on the logical volumes. Logical volumes are mountable partitions made up of one or more PE’s. Logical volumes have to have a traditional file system placed upon them before they are usable. This will help you identify what things can be mounted:
lvdisplay
--- Logical volume ---
LV Name /dev/storagevg/storagelv01
VG Name storagevg
LV UUID GMp2kU-kAMc-ju8o-NJRB-hQ9u-CQ1O-dBi2mX
LV Write Access read/write
LV Status available
# open 1
LV Size 456.78 GB
Current LE 14617
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
LV Name provides a persistent path that can be mounted via fstab you could also mount it via UUID provided by this command.
Display Volume Group – vgdisplay
This command will display information on the volume group which is a grouping of physical volumes on your system. (not presented by the graphic very well). By adding multiple drives to a vg you can increase the size of a lv dynamically without getting larger hard drives.
[root@linuxmonkey2 ~]# vgdisplay
--- Volume group ---
VG Name storagevg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 456.81 GB
PE Size 32.00 MB
Total PE 14618
Alloc PE / Size 14617 / 456.78 GB
Free PE / Size 1 / 32.00 MB
VG UUID 0csogH-bjz3-qP4z-JM63-YLpO-YpRy-Kqci71
This displays basic volume information in order to figure out what physical volumes are part of the vg use the pvdisplay command.