Extend Logical Volume Manager (LVM) Partition Notes
Notes on how to extend LVM partitions. I do this so infrequently that I forget how and have to look up the steps all the time. These are my own notes so that next time I will at least follow the same steps.
Assess Current Partition Space
Nagios just gave me warning notification my /usr partition has less than 20% free space. To check if that is accurate, I use the ‘df’ command with the file system in question. Unsurprisingly the alert seems accurate, and since this is a repeat alert, only temporarily addressed by freeing up space by hand, it is time to extend the partition on the volume.
$ df -h /usr
Filesystem Size Used Avail Use% Mounted on
/dev/dm-1 35G 27G 5.8G 83% /usr
$
Is There Unused Space Available?
Now it is time to display the volume group details, and see what I have yet to use. To do this I use the ‘vgdisplay’ command with the volume name. In this case it looks like I have in excess of 500GiB of unallocated space.
$ sudo vgdisplay vg
--- Volume group ---
VG Name vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 42
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 8
Open LV 7
Max PV 0
Cur PV 1
Act PV 1
VG Size <1.82 TiB
PE Size 4.00 MiB
Total PE 476644
Alloc PE / Size 338964 / 1.29 TiB
Free PE / Size 137680 / 537.81 GiB
VG UUID BMcdOB-vY2o-tZim-7DRU-BJBu-41hz-j9ed80
$
Increase Partition Size with LVMExtend
I think I will add 10GiB to the partition, leaving free space closer to 40% and silencing the Nagios complaint. This is done using the lvmextend command as seen below.
$ sudo lvextend -L +10G /dev/mapper/vg-usr
Size of logical volume vg/usr changed from 35.00 GiB (8960 extents) to 45.00 GiB (11520 extents).
Logical volume vg/usr successfully resized.
$
Resize the File System
The file system needs to be resized to take advantage of the additional partition space. The ‘resize2fs’ command is ideal for this purpose.
$ sudo resize2fs /dev/mapper/vg-usr
resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/mapper/vg-usr is mounted on /usr; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 3
The filesystem on /dev/mapper/vg-usr is now 11796480 (4k) blocks long.
$
Validate Results
Run the ‘df’ command again to make sure change is as expected.
$ df -h /usr
Filesystem Size Used Avail Use% Mounted on
/dev/dm-1 45G 27G 16G 64% /usr
$
All is well, and until next time, peace out.