Increase LVM Partition in Linux
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