Situantion

Need Resize Ubuntu VM Disk In KVM

How To

Check Disk Info

~ # qemu-img info /data/img/demo
image: /data/img/demo
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 3.29 GiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true
    refcount bits: 16
    corrupt: false

Resize Disk

~ # qemu-img resize /data/img/demo +180G                                  
Image resized.

Verify Disk Information

~ # qemu-img info /data/img/demo
image: /data/img/demo
file format: qcow2
virtual size: 200 GiB (214748364800 bytes)
disk size: 3.29 GiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true
    refcount bits: 16
    corrupt: false

Start VM And Resize Block

~ # virsh start demo
Domain demo started

~ # virsh blockresize anthos /data/img/demo 200G
Block device '/data/img/demo' is resized

Login VM And Check Disk Use fdisk

root@demo:/home/user# cd
root@demo:~# fdisk -l
.
.
.
GPT PMBR size mismatch (41943039 != 419430399) will be corrected by write.
The backup GPT table is not on the end of the device. This problem will be corrected by write.
Disk /dev/vda: 200 GiB, 214748364800 bytes, 419430400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 1234123123123-3333-4444-5555-12312321321321

Device       Start      End  Sectors Size Type
/dev/vda1     2048     4095     2048   1M BIOS boot
/dev/vda2     4096  2101247  2097152   1G Linux filesystem
/dev/vda3  2101248 41940991 39839744  19G Linux filesystem

Check Disk Use lsblk

root@demo:~# lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0                       7:0    0 55.4M  1 loop /snap/core18/2128
loop1                       7:1    0 55.5M  1 loop /snap/core18/2344
loop2                       7:2    0 61.9M  1 loop /snap/core20/1434
loop3                       7:3    0 44.7M  1 loop /snap/snapd/15534
loop4                       7:4    0 67.8M  1 loop /snap/lxd/22753
loop5                       7:5    0 70.3M  1 loop /snap/lxd/21029
sr0                        11:0    1 1024M  0 rom
vda                       252:0    0  200G  0 disk
├─vda1                    252:1    0    1M  0 part
├─vda2                    252:2    0    1G  0 part /boot
└─vda3                    252:3    0   19G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0   19G  0 lvm  /

Check Disk Use pvs

root@demo:~# pvs
 PV         VG        Fmt  Attr PSize   PFree
 /dev/vda3  ubuntu-vg lvm2 a--  <19.00g    0

Use growpart Rewrite Partition

root@demo:~# growpart /dev/vda 3
CHANGED: partition=3 start=2101248 old: size=39839744 end=41940992 new: size=417329119 end=419430367

Verify Use lsblk

root@demo:~# lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0                       7:0    0 55.4M  1 loop /snap/core18/2128
loop1                       7:1    0 55.5M  1 loop /snap/core18/2344
loop2                       7:2    0 61.9M  1 loop /snap/core20/1434
loop3                       7:3    0 44.7M  1 loop /snap/snapd/15534
loop4                       7:4    0 67.8M  1 loop /snap/lxd/22753
loop5                       7:5    0 70.3M  1 loop /snap/lxd/21029
sr0                        11:0    1 1024M  0 rom
vda                       252:0    0  200G  0 disk
├─vda1                    252:1    0    1M  0 part
├─vda2                    252:2    0    1G  0 part /boot
└─vda3                    252:3    0  199G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0   19G  0 lvm  /

Resize PV

root@demo:~# pvresize /dev/vda3
  Physical volume "/dev/vda3" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

root@demo:~# pvs
  PV         VG        Fmt  Attr PSize    PFree
  /dev/vda3  ubuntu-vg lvm2 a--  <199.00g 180.00g

root@demo:~# vgs
  VG        #PV #LV #SN Attr   VSize    VFree
  ubuntu-vg   1   1   0 wz--n- <199.00g 180.00g

Resize Logincal Volume Use lvextend And Verify That

root@demo:~# lvextend -r -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
  Size of logical volume ubuntu-vg/ubuntu-lv changed from <19.00 GiB (4863 extents) to <199.00 GiB (50943 extents).
  Logical volume ubuntu-vg/ubuntu-lv successfully resized.
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 25
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 52165632 (4k) blocks long.

root@demo:~# df -h
Filesystem                         Size  Used Avail Use% Mounted on
udev                               1.9G     0  1.9G   0% /dev
tmpfs                              394M  1.1M  393M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  196G  4.5G  184G   3% /
tmpfs                              2.0G     0  2.0G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop0                          56M   56M     0 100% /snap/core18/2128
/dev/loop1                          56M   56M     0 100% /snap/core18/2344
/dev/loop2                          62M   62M     0 100% /snap/core20/1434
/dev/loop3                          45M   45M     0 100% /snap/snapd/15534
/dev/loop4                          68M   68M     0 100% /snap/lxd/22753
/dev/vda2                          976M  107M  803M  12% /boot
/dev/loop5                          71M   71M     0 100% /snap/lxd/21029
tmpfs                              394M     0  394M   0% /run/user/1000