Guest Disk Resize SOP

Resize disks in our kvm guests

Contact Information


Fedora Infrastructure Team


#fedora-admin, sysadmin-main


PHX, Tummy, ibiblio, Telia, OSUOSL


All xen servers, kvm/libvirt servers.


Resize guest disks

How to do it

KVM/libvirt Guests

  1. SSH to the kvm server and resize the guest’s logical volume. If you want to be extra careful, make a snapshot of the LV first:

    lvcreate -n [guest name]-snap -L 10G -s /dev/VolGroup00/[guest name]

    Optional, but always good to be careful

  2. Shutdown the guest:

    sudo virsh shutdown [guest name]
  3. Disable the guests lv:

    lvchange -an /dev/VolGroup00/[guest name]
  4. Resize the lv:

    lvresize -L [NEW TOTAL SIZE]G /dev/VolGroup00/[guest name]
    lvresize -L +XG /dev/VolGroup00/[guest name]
    (to add X GB to the disk)
  5. Enable the lv:

    lvchange -ay /dev/VolGroup00/[guest name]
  6. Bring the guest back up:

    sudo virsh start [guest name]
  7. Login into the guest:

    sudo virsh console [guest name]
    You may wish to boot single user mode to avoid services coming up and going down again
  8. On the guest, run:

    fdisk /dev/vda
  9. Delete the the LVM partition on the guest you want to add space to and recreate it with the maximum size. Make sure to set its type to LV (8e):

    p to list partitions
    d to delete selected partition
    n to create new partition (default values should be ok)
    t to change partition type (set to 8e)
    w to write changes
  10. Run partprobe:

  11. Check the size of the partition:

    fdisk -l /dev/vdaN

    If this still reflects the old size, then reboot the guest and verify that its size changed correctly when it comes up again.

  12. Login to the guest again, and run:

    pvresize /dev/vdaN
  13. A vgs should now show the new size. Use lvresize to resize the root lv:

    lvresize -L [new root partition size]G /dev/GuestVolGroup00/root
    (pvs will tell you how much space is available)
  14. Finally, resize the root partition:

    resize2fs /dev/GuestVolGroup00/root
    (If the root fs is ext4)
    xfs_growfs /dev/GuestVolGroup00/root
    (if the root fs is xfs)

    verify that everything worked out, and delete the snapshot you made if you made one.