LVM Crash course

In this post we will give you a crash course on Linux LVM (Logical Volume Manager). This post will cover the most used LVM commands in a Linux Admin life.

Before we start first let’s go through the concepts.

Physical Volumes (PVs): Storage devices (physical hard disks, partitions, RAID arrays etc.) provides raw storage
Volume Groups (VGs): Combine multiple PVs to create a group. They can be mirror or concatenation of PVs.
Logical Volumes (LVs): Create smaller volumes from the Volume Group(VG) as per your size requirement. You can can use the LVs to create filesystem on them.

Below commands are for RHEL 7.

All the below commands will require root access. You can either run them with sudo  or switch to root user as mentioned below.

sudo su -

Install LVM

[root@cloudvedas ~]# yum install lvm2*

Check LVM version

[root@cloudvedas ~]# lvm version

Label the new disk and bring it under LVM using pvcreate

Create PV (Physical Volume)

[root@cloudvedas ~]# pvcreate /dev/sdb1

Show PV

[root@cloudvedas ~]# pvs /dev/sdb1

Create VG (Volume Group)

[root@cloudvedas ~]# vgcreate cvsvg /dev/sdb1

Show VG

[root@cloudvedas ~]# vgs cvsvg

Display VG

[root@cloudvedas ~]# vgdisplay cvsvg

Extend VG

[root@cloudvedas ~]# vgextend cvsvg /dev/sdb2

Create LV (Logical Volume)

Green Monday Sale! Never stop learning, courses now as low as $10.99
[root@cloudvedas ~]# lvcreate -L 500M cvsvg -n cldvdsvol1

Display LV 

[root@cloudvedas ~]# lvdisplay /dev/cvsvg/cldvdsvol1

Create mirror volume

 lvcreate -L 100M -m1 -n cvmirrorvol1 cvsvg

Create striped volume

[root@cloudvedas ~]# lvcreate -L 50M -i 3 -I 64 -n stripevol cvsvg

Here

-i|–stripes (Number of disks in stripe)
-I|Stripe size

Extend LV

lvextend -L +20M /dev/cvsvg/stripevol

De-activate volume

lvchange -an /dev/cvsvg/stripevol

Activate volume

lvchange -ay /dev/cvsvg/stripevol

Remove LV

Ensure filesystem is unmounted before running this

lvremove /dev/cvsvg/stripevol

Create filesystem

mkfs -t ext4 /dev/cvsvg/cldvdsvol1

Create directory

mkdir /CVFS1

Mount filesystem

mount /dev/cvsvg/cldvdsvol1  /CVFS1

All the available LVM commands

[root@cloudvedas ~]# lvm help
 Available lvm commands:
 Use 'lvm help <command>' for more information

devtypes Display recognised built-in block device types
 dumpconfig Dump configuration
 formats List available metadata formats
 help Display help for commands
 lvchange Change the attributes of logical volume(s)
 lvconvert Change logical volume layout
 lvcreate Create a logical volume
 lvdisplay Display information about a logical volume
 lvextend Add space to a logical volume
 lvmchange With the device mapper, this is obsolete and does nothing.
 lvmdiskscan List devices that may be used as physical volumes
 lvmsadc Collect activity data
 lvmsar Create activity report
 lvreduce Reduce the size of a logical volume
 lvremove Remove logical volume(s) from the system
 lvrename Rename a logical volume
 lvresize Resize a logical volume
 lvs Display information about logical volumes
 lvscan List all logical volumes in all volume groups
 pvchange Change attributes of physical volume(s)
 pvresize Resize physical volume(s)
 pvck Check the consistency of physical volume(s)
 pvcreate Initialize physical volume(s) for use by LVM
 pvdata Display the on-disk metadata for physical volume(s)
 pvdisplay Display various attributes of physical volume(s)
 pvmove Move extents from one physical volume to another
 pvremove Remove LVM label(s) from physical volume(s)
 pvs Display information about physical volumes
 pvscan List all physical volumes
 segtypes List available segment types
 tags List tags defined on this host
 vgcfgbackup Backup volume group configuration(s)
 vgcfgrestore Restore volume group configuration
 vgchange Change volume group attributes
 vgck Check the consistency of volume group(s)
 vgconvert Change volume group metadata format
 vgcreate Create a volume group
 vgdisplay Display volume group information
 vgexport Unregister volume group(s) from the system
 vgextend Add physical volumes to a volume group
 vgimport Register exported volume group with system
 vgmerge Merge volume groups
 vgmknodes Create the special files for volume group devices in /dev
 vgreduce Remove physical volume(s) from a volume group
 vgremove Remove volume group(s)
 vgrename Rename a volume group
 vgs Display information about volume groups
 vgscan Search for all volume groups
 vgsplit Move physical volumes into a new or existing volume group
 version Display software and driver version information
[root@cloudvedas ~]#

 

Leave a Reply

Your email address will not be published. Required fields are marked *