Some notes on increasing LVM partition in Linux.
Terminology
- Physical Volume (PV): This can be created on a whole physical disk (think /dev/sda) or a Linux partition.
- Volume Group (VG): This is made up of at least one or more physical volumes.
- Logical Volume (LV): This is sometimes referred to as the partition, it sits within a volume group and has a file system written to it.
- File System: A file system such as ext4 will be on the logical volume.
Increase or Expand Logical Volume
To increase/expand a logical volume (lv from here onward), it can be done without needing to reboot or experiencing any downtime on the system.
My volume group (vg here onward) is debian-vg; it contains all my lv’s.
root@debian:~# vgdisplay --- Volume group --- VG Name debian-vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 8 VG Access read/write VG Status resizable MAX LV 0 Cur LV 5 Open LV 5 Max PV 0 Cur PV 1 Act PV 1 VG Size 39.76 GiB PE Size 4.00 MiB Total PE 10178 Alloc PE / Size 7151 / 27.93 GiB Free PE / Size 3027 / 11.82 GiB VG UUID QPsbEO-d7Q4-OlbR-9BQL-4C1k-04oq-R8QcG6
As you can see above, the Free PE / Size indicates how much available to use to increase/expand a lv I have.
To look at the logical volumes, I use lvdisplay
command.
--- Logical volume --- LV Path /dev/debian-vg/home LV Name home VG Name debian-vg LV UUID 61YQXT-wTDM-Fb66-1Fy0-U9dK-tHcn-Kzf1M8 LV Write Access read/write LV Creation host, time debian, 2018-06-11 10:03:17 -0400 LV Status available # open 1 LV Size 10.00 GiB Current LE 2560 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:4
My home logical volume is currently 10GB in size, indicated by LV Size above.
If I want to expand this to 12GB, I would issue the following:
root@debian:~# lvextend -L+2G /dev/debian-vg/home Size of logical volume debian-vg/home changed from 10.00 GiB (2560 extents) to 12.00 GiB (3072 extents). Logical volume debian-vg/home successfully resized.
Looking at lvdisplay
output again, I see that it is now 12GB, but I need to expand the filesystem now.
--- Logical volume --- LV Path /dev/debian-vg/home LV Name home VG Name debian-vg LV UUID 61YQXT-wTDM-Fb66-1Fy0-U9dK-tHcn-Kzf1M8 LV Write Access read/write LV Creation host, time debian, 2018-06-11 10:03:17 -0400 LV Status available # open 1 LV Size 12.00 GiB Current LE 3072 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:4
This partition is ext4, so I will use resize2fs
as below:
root@debian:~# resize2fs /dev/debian-vg/home resize2fs 1.43.4 (31-Jan-2017) Filesystem at /dev/debian-vg/home is mounted on /home; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 2 The filesystem on /dev/debian-vg/home is now 3145728 (4k) blocks long.
Note: If using xfs, use xfs_growfs
in lieu of resize2fs
That should do it, now I can issue df -h
and confirm that my /home partition is now 12GB.
root@debian:~# df -h Filesystem Size Used Avail Use% Mounted on udev 991M 0 991M 0% /dev tmpfs 201M 24M 177M 12% /run /dev/mapper/debian--vg-root 7.4G 2.3G 4.7G 33% / tmpfs 1003M 0 1003M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 1003M 0 1003M 0% /sys/fs/cgroup /dev/mapper/debian--vg-tmp 544M 924K 503M 1% /tmp /dev/sda1 236M 37M 187M 17% /boot /dev/mapper/debian--vg-var 7.7G 2.5G 4.9G 34% /var tmpfs 201M 0 201M 0% /run/user/1000 /dev/mapper/debian--vg-home 12G 41M 12G 1% /home