virsh online disk resize

  KVM (Kernel-based Virtual Machine)

je kan online je disken vergroten onder kvm. je OS moet er uiteraard wel tegen kunnen. in dit voorbeeld heb ik mijn eerste disk te klein gemaakt 8G ik wil hem vergroten naar 12G. als de machine actief is kan kan je met qemu-img niet veel doen die loopt direct te klagen dat de disk in gebruik is door een door een andere OS.

$ sudo qemu-img info /var/lib/libvirt/images/Intrepid.qcow2 
qemu-img: Could not open '/var/lib/libvirt/images/Intrepid.qcow2': Failed to get shared "write" lock
Is another process using the image?
$ 

maar binnen virsh kan je wel de disk info online opvragen middels domblkinfo

virsh # domblkinfo Intrepid vda
Capacity:       8589934592
Allocation:     6614228992
Physical:       6614286336

de disk is dus 8G groot en op het filesysteem is deze 6G groot. om hem nu te resize moet je eerst de exacte source file naam hebben. deze vraag je op met domblklist

virsh # domblklist Intrepid
Target     Source
------------------------------------------------
vda        /var/lib/libvirt/images/Intrepid.qcow2
vdb        /var/lib/libvirt/images/Intrepid-2.img
vdc        /var/lib/libvirt/images/Intrepid-3.img
vdd        /var/lib/libvirt/images/Intrepid-4.img
hda        -

we moeten hier de eerste disk hebben /var/lib/libvirt/images/Intrepid.qcow2 om deze online te resizen gebruik je het volgende commando blockresize

virsh # blockresize Intrepid /var/lib/libvirt/images/Intrepid.qcow2 12G
Block device '/var/lib/libvirt/images/Intrepid.qcow2' is resized

virsh # domblkinfo Intrepid vda
Capacity:       12884901888
Allocation:     6614421504
Physical:       6614482944

Je hoeft binnen de client geen nieuwe scan uit te voeren dit word automatisch gedaan.

dit is is getest op een ubuntu 18-04 kvm host, client is een centos 7 versie.