{{tag>lvm partitioning}}
====== Resize LVM partition used by a VM ======
Setup:
You have a host server which has a PV volume and lots of different LV volumes used by different qemu-kvm VMs.
You want to expand the disk of test1.1.1.1.1 VM (called a domain in virsh speak). First find the VM via
~# virsh list
then the disk used by the VM:
~# virsh domblkinfo --domain test1.1.1.1.1 --all --human
Target Capacity Allocation Physical
-----------------------------------------------------
vda 40.000 GiB (parted) select /dev/vda
You can see that the Physical and Allocation column are almost the same.
Check if you have available space under //Free PE / Size// in output below:
~# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 94
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 26
Open LV 20
Max PV 0
Cur PV 1
Act PV 1
VG Size <1.82 TiB
PE Size 4.00 MiB
Total PE 476774
Alloc PE / Size 331078 / 1.26 TiB
Free PE / Size 145696 / 569.12 GiB
VG UUID wWFiiE-v4CP-pha0-aAtf-zFiZ-0j6f-RUwUID
Check that the LV volume is part of the VG volume (centos here) by running the ''lvdisplay'' and finding the matching LV. Run the ''lsblk -f'' as well and you should see the name of LV mount.
Now expand the disk size
~# lvextend -L +100G /dev/mapper/test1.1.1.1.1
The above is the new disk size in GB.
Restart the VM to pick up the new disk size.
Inside of VM run these commands (Cent OS 7 example):
Check which filesystem you want to expand:
[root@quad ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sr0
vda
├─vda1 xfs 32d11a94-18ec-42f0-95fd-ca95fb435ea0 /boot
└─vda2 LVM2_member OcgeR3-hMty-TsOV-hkAL-4maE-HcjB-KZNpeY
├─centos-lv_root xfs 02c6e4df-8573-4b36-af74-5e67ba36dbcc /
├─centos-lv_swap swap be38e77e-69ab-49c3-88a7-e1dad5459076 [SWAP]
└─centos-lv_varlibmysql xfs 4b574fe6-830e-45a4-9e1f-894fd3296447 /var/lib/mysql
Here we want to expand vda2, centos-lv_root FS. Run these commands:
sudo yum install -y cloud-utils-growpart
sudo growpart /dev/vda 2
sudo pvresize /dev/vda2
sudo lvextend -l +100%FREE /dev/centos/lv_root
sudo xfs_growfs /
The partition should be expanded now.
If you want to check that the new disk size is seen by the VM use the ''parted'' tool:
Before expanding disk:
(parted) select /dev/vda
Using /dev/vda
(parted) print free
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 49.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
32.3kB 1049kB 1016kB Free Space
1 1049kB 1050MB 1049MB primary xfs boot
2 1050MB 49.4GB 48.3GB primary lvm
After expanding the disk and before expanding the partition and filesystem:
(parted) select /dev/vda
Using /dev/vda
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1050MB 1049MB primary xfs boot
2 1050MB 49.4GB 48.3GB primary lvm
(parted) print free
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
32.3kB 1049kB 1016kB Free Space
1 1049kB 1050MB 1049MB primary xfs boot
2 1050MB 49.4GB 48.3GB primary lvm
49.4GB 64.4GB 15.0GB Free Space
(parted) quit
====== Tested on ======
* CentOS 7 VM host and guest
* qemu-kvm
====== See also ======
* [[create_lvm_debian_7|Create LVM on Debian 7]]
====== References ======
* https://stackoverflow.com/questions/12313384/how-to-view-unallocated-free-space-on-a-hard-disk-through-terminal