How do you increase a KVM guest's disk space?
How do you go about increasing KVM virtual machine guest's disk space from the command line if you initially set insufficient amount of disk space?
- Shutdown the VM
- Move the current image
 
 mv mykvm.img mykvm.img.bak
- Create a new image
 
 qemu-img create -f raw addon.raw 30G
- concatenate the 2 images
 
 cat mykvm.img.bak addon.raw >> mykvm.img
- start the VM (using the newly created mykvm.img)
- run fdisk inside VM and delete & re-create LVM partition
 % fdisk /dev/vda
 ...
 Device Boot Start End Blocks Id System
 /dev/vda1 * 1 13 104391 83 Linux
 /dev/vda2 14 3263 26105625 8e Linux LVMCommand (m for help): d 
 Partition number (1-4): 2Command (m for help): p Disk /dev/vda: 48.3 GB, 48318382080 bytes 
 255 heads, 63 sectors/track, 5874 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System 
 /dev/vda1 * 1 13 104391 83 LinuxCommand (m for help): n 
 Command action
 e extended
 p primary partition (1-4)
 p
 Partition number (1-4): 2
 First cylinder (14-5874, default 14): 14
 Last cylinder or +size or +sizeM or +sizeK (14-5874, default 5874):
 Using default value 5874Command (m for help): p Disk /dev/vda: 48.3 GB, 48318382080 bytes 
 255 heads, 63 sectors/track, 5874 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System 
 /dev/vda1 * 1 13 104391 83 Linux
 /dev/vda2 14 5874 47078482+ 83 LinuxCommand (m for help): t 
 Partition number (1-4): 2
 Hex code (type L to list codes): 8e
 Changed system type of partition 2 to 8e (Linux LVM)Command (m for help): p Disk /dev/vda: 48.3 GB, 48318382080 bytes 
 255 heads, 63 sectors/track, 5874 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System 
 /dev/vda1 * 1 13 104391 83 Linux
 /dev/vda2 14 5874 47078482+ 8e Linux LVMCommand (m for help): w 
 The partition table has been altered!Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or 
 resource busy.
 The kernel still uses the old table.
 The new table will be used at the next reboot.
 Syncing disks.
 %
- Reboot the VM
- Resize the LVM physical volume
 % pvdisplay
 --- Physical volume ---
 PV Name /dev/vda2
 VG Name VolGroup00
 PV Size 24.90 GB / not usable 21.59 MB
 Allocatable yes (but full)
 PE Size (KByte) 32768
 Total PE 796
 Free PE 0
 ...% pvresize /dev/vda2 % pvdisplay 
 --- Physical volume ---
 PV Name /dev/vda2
 VG Name VolGroup00
 PV Size 44.90 GB / not usable 22.89 MB
 Allocatable yes
 PE Size (KByte) 32768
 Total PE 1436
 Free PE 640
 ...
- Resize the LVM Logical Volume
 % lvresize /dev/VolGroup00/LogVol00 -l +100%FREE
 Extending logical volume LogVol00 to 43.88 GB
 Logical volume LogVol00 successfully resized
- Grow the File system
 % resize2fs /dev/VolGroup00/LogVol00
 resize2fs 1.39 (29-May-2006)
 Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
 Performing an on-line resize of /dev/VolGroup00/LogVol00 to 11501568 (4k) blocks.
 The filesystem on /dev/VolGroup00/LogVol00 is now 11501568 blocks long.
 
      
Comments
Anonymous (not verified)
Fri, 02/12/2016 - 07:59
Permalink
Great stuff ! Tested it and
Great stuff !
Tested it and worked from the first try. ( rhel7.2 VM )
I've resized my VM with qemu-img as I had a qcow2 disk image : qemu-img resize my-server.qcow2 +10GB
Thank you
Add new comment