In this post, we will show you how to extend the size of lvm partition in linux with lvextend command on the fly.
Resizing the file system size is an important task of Linux admin’s profile. In Linux , LVM(Logical Volume Manager) provides the facility to increase and reduce the file system size. One of benefit of using lvm partition is that we can increase or decrease its size on the fly without any downtime. It is recommended to have lvm partitions in production Linux or UNIX servers.
Scenario : Suppose we have a LVM partition(/home) and running out of space and want to extend or increase file system size. So, to increase the size of the file system first we must see whether in volume group has free space or not. If the volume group has free space then use the below steps :
Step1) View Disk Usage of File System
Run df command followed by the file system to view total ,used and available disk space
[[email protected] home]# df -h /home/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_cloud-LogVol00 9.7G 9.2G 0 100% /home
As we can see above, /home is 100 % utilized.
Step 2) Check Free Space in Volume Group
To display volume group details, execute the vgdisplay or vgs command followed by volume group name,
# vgdisplay <Volume-Group-Name>
# vgs <Volume-Group-Name>
[[email protected] home]# vgdisplay vg_cloud --- Volume group --- VG Name vg_cloud System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 27.01 GiB PE Size 4.00 MiB Total PE 6915 Alloc PE / Size 5256 / 20.53 GiB Free PE / Size 1659 / 6.48 GiB VG UUID 1R89GB-mIP2-7Hgu-zEVR-5H02-7GdB-Ufj7R4
Output above confirms that we 6.48 GB free space in the volume group (vg_cloud)
Step 3) Increase the size with lvextend Command
Run below lvextend command to extend the file system,
[[email protected] ~]# lvextend -L +2G /dev/mapper/vg_cloud-LogVol00 Extending logical volume LogVol00 to 11.77 GiB Logical volume LogVol00 successfully resized
Above command will extend the file system size by 2GB. You can also specify the size in MB , just replace G with M.
If you want all free space available in volume group to be added to file system then run
[[email protected] ~]# lvextend -l +100%FREE /dev/mapper/vg_cloud-LogVol00
Now, run the resize2fs command to implement above size to file system.
[[email protected] ~]# resize2fs /dev/mapper/vg_cloud-LogVol00
Note: You can also extend the file system size using single lvextnd command by adding -r at end, example is shown below
[[email protected] ~] lvextend -L +2G /dev/mapper/vg_cloud-LogVol00 -r
After running above command, you don’t need to resize2fs command.
Step 4) Verify File system Size after Extension
Re-run the df -h command followed by /home file system, now we can see that file system has been extended by 2 GB, before the extension size was 10 GB
[[email protected] ~]# df -h /home/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_cloud-LogVol00 12G 9.2G 1.9G 84% /home
That’s all from this post, I hope found it informative. Kindly do post your queries and feedback in below comments sections.
Also Read: How to Create and Extend XFS file system based on LVM
24 thoughts on “How to Extend LVM Partition with lvextend Command in Linux”
Thank you very helpfully
what about mount points that are multi-path? can you safely extend them?
it is only for xfs file system and this is for all other file system
isn’t that only the case when the filesystem is xfs ?
Thank you very much it was very helpful.
Hi! First of all thanks for sharing this post. I use LVM almost everywhere!
I would like to add that, you can add a “-r” in the end of the line where you extend the LV. Example:
# lvextend -L +2G /dev/mapper/vg_cloud-LogVol00 -r
If you do that, there is no necessity of resize2fs command!
Very helpful, thanks Man 🙂
All good, but as an intern sys admin, I was just gonna run resize2fs on an xfs file system. It would be great if you write somewhere in the articl that this is for ext2/3/4 thanks in advance!
great job!! its was very helpfull. Thank you. 🙂
very nice , Thank You?
i don’t know what my volume grup is? How?
Type lvs. The LV (Logical Volume) and VG (Volume group) is listed.
For example, if you have LV root in VG foobar-vg, then the path to the LV would be /dev/foobar-vg/root
Thank you very much:)
Thank you very much Pradeep !
It helped me a lot to extend my LV.
In addition, if someone want to use all available free space, the following command can be used :
(e.g. for Ubuntu 20.04)
#lvextend -l +100%FREE /dev/mapper/ubuntu–vg-ubuntu–lv
very simple and usefull !!
Very much appreciated & nicely written & illustrated.
I haven’t really tested it out yet but I followed your guide & I am now ready to reboot & hope I didn’t mess anything up!
Thank you for creating this guide.
Thank you !!!
All steps clear and to the point!
if the lv is using the block special fs that is the default when you create an LV then you can use the -r option to resize fs online as well resize the lv. check lvextend -r
Thanks, good article! But you can also mention that you can extend lv with 100% free space: lvextend -l +100%FREE /dev/mapper/ubuntu–vg-ubuntu–lv
I just proved with both commands
lvextend and xfs_growfs
lvextend with -r
they work like a charm.
It was very useful
Thank you so much:)
Thank you, this guide is neat and informative.