To resize a virtual drive
Resizing a virtual drive (machine must be off): 0) Read man page
man virt-resize
1) Shut Machine down
virsh shutdown myvm
2) Be extra safe and make a copy of the disk (space permitting)
cp myvm-disk1 myvm-disk1~preresize
3) Examine virtual drive's structure
virt-filesystems --long -h --all -a myvm-disk1~preresize
4) Create new drive (this uses the QCOW2 format. Multiple options available)
qemu-img create -f qcow2 -o preallocation=metadata myvm-disk1~postresize 15G
5) Use vm resize command to populate new disk with expanded partitions (and also expand LVM if applicable)
virt-resize --expand /dev/sda2 --lv-expand /dev/vg_myvm/root_lv myvm-disk1~preresize myvm-disk1~postresize
6) To expand more than 1 LVM partition, repeat the process
qemu-img create -f qcow2 -o preallocation=metadata myvm-disk1~postresize2 25G virt-resize --expand /dev/sda2 --lv-expand /dev/vg_myvm/var_lv myvm-disk1~postresize myvm-disk1~postresize2
7) Swap file names around
mv myvm-disk1 myvm-disk1~original mv myvm-disk1~postresize2 myvm-disk1
8) Start virtual machine
virsh start myvm
9) Cross fingers There may be a permissions problem that causes the following error message upon starting the resized VM
[root@tet qemu]# virsh start tau error: Failed to start domain tau error: internal error Process exited while reading console log output: 2016-10-05T16:12:09.032816Z qemu-kvm: -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/tau.monitor,server,nowait: socket bind failed: Permission denied 2016-10-05T16:12:09.033101Z qemu-kvm: -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/tau.monitor,server,nowait: chardev: opening backend "socket" failed
To address this, change /var/lib/libvirt/qemu to be owned by qemu and under qemu group.
10) If all is OK, clear out old and temporary disks
rm myvm-disk1~postresize rm myvm-disk1~original
Alternative Resize method
This method is for resizing a VM's image file directly. It only works on certain image files.
1) Shutdown the vm
virsh shutdown <vm-name>
2) Find the VM's image file on the hypervisor (Typically somewhere under /var/lib/libvirt/images)
3) Apply an image resize:
qemu-img resize <vm-disk-image> <+/- amount of HDD space to add/subtract>
4) Start VM and re-partition once it is on.