Resizing LVM

Linux-logo-8EC59678CB-seeklogo.com

Many years ago now stumbling across this information was very useful to me. I figure now that unless it’s passed on again, with my own additional notes, how is the next person going to find it?

One of the great things about installing Linux with LVM (Logical Volume Manager) is that it is ridiculously easy to increase space on a virtual machine. On the platform of your choice add an additional HDD to the virtual machine and then follow these steps:

First, you need to be sure the system sees the new HDD that has been added. In this example, it is /dev/sdb.

fdisk -l
 
Disk /dev/sda: 42.9 GB, 42949672960 bytes
 255 heads, 63 sectors/track, 5221 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
Device Boot Start End Blocks Id System
 /dev/sda1 * 1 666 5345248+ 83 Linux
 Partition 1 does not end on cylinder boundary.
 /dev/sda2 666 5222 36596736 8e Linux LVM

Now that we know /dev/sdb has been found and is the size we expect:

pvcreate /dev/sdb
 Writing physical volume data to disk "/dev/sdb1"
 Physical volume "/dev/sdb1" successfully created

Use the vgs command find out the name of your volume group and then extend it to /dev/sdb:

vgs

VG #PV #LV #SN Attr VSize VFree
vg00 3 10 0 wz--n- 113.91g 34.97g

vgextend vg00 /dev/sdb
Volume group "vg00" successfully extended

Going down the line the next one up is to extend the logical volume:

lvs

LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LogVol00 vg00 -wi-ao 29.06G
LogVol01 vg00 -wi-ao 5.81G 

lvextend -l +100%FREE /dev/vg00/LogVol00vg
Extending logical volume LogVol00 to 49.03 GB
Logical volume LogVol00 successfully resized

Make sure that it now sees all the space properly:

lvs

LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LogVol00 vg00 -wi-ao 49.03G
LogVol01 vg00 -wi-ao 5.81G

Next we need to extend the actual filesystem itself and which path you choose depends if your running RHEL/CentOS 6.x or 7.x

For 6.x you would run:

resize2fs /dev/mapper/LogVol-vg00

For 7.x you would run:

xfs_growfx /dev/mapper/LogVol-vg00

This part can take a few seconds, minutes or longer depending upon the size you are undertaking and activity on the server. Again, if this is a highly active server you are going to need a maintenance window, do not try this during the day.