How to refresh lvm-backed virtual disk in libvirt
How can I grow a libvirtd VM's LVM-backed virtual disk online, without rebooting the vm.
My host has an LVM VG for VMs. Each VM disk is an LV to the host.
It's easy to grow the VG by adding a PV and extending the LV. But the VM doesn't "see" the new space without rebooting.
How can I get the VM to see the larger space without rebooting the VM?
1 answer
virsh blockresize vmname diskname --size 123b
vmname is the name of the "domain" in libvirt parlance. diskname is the name inside /dev int the vm. vda or vdb for instance. 123 should be the exact number of bytes of the newly expanded block device that hosts this virtual disk.
First, obtain the size of that device with blockdev --getsize64 /dev/vg_somehting/lv_vm_something
That will give you an integer in bytes
Then run the virsh command with that byte number and the suffix b.
As of 2023-02, there is no way arround having to tell virsh blockresize the new size yourself. Historically the reason it had a --size argument is that it actually performed the resize of a virtual disk file or qcow file to the size you specified.
It will not modify the size of an lvm lv. But you still have to tell it the size.
0 comment threads