Thursday, July 5, 2018

kvm virtualization - How to increase KVM guest disk size using LVM VG as storage pool?



The KVM host server is running CentOS 6.5 and a LVM volume group "storage_pool" is used as the main storage pool for KVM.



An Ubuntu guest is installed using an ext4 filesystem and mounts the whole /dev/vda1 as /. This is the guest disk configuration:













What would be the best approach to increase the guest disk size? The VG has a lot of free space.



I have found some examples but most use LVM inside the guests as well, or weren't completely applicable. As far as I understand, the common method is to create a larger LV in the same VG, shutdown the guest, transfer the data, edit the configuration to use the new LV?




Thanks in advance for any suggestions or pointers


Answer



This is the procedure I went with:




  1. Extend the logical volume of the kvm guest



    # lvextend -L+50G /dev/storage_pool/guest.img

  2. Shutdown the kvm guest and deactivate the logical volume




    # virsh shutdown guest
    # lvchange -a n /dev/storage_pool/guest.img

  3. List and note the partition information of the kvm guest, most importantly the first sector. If it doesn't display sectors you may need to add the '-u' or '-u sectors' switch



    # fdisk -l /dev/storage_pool/guest.img

  4. Delete and recreate the partition to fill the whole extended space, make sure you are using sectors as units and to select the same first sector (usually 2048 if partition is aligned), you can use the 'u' fdisk command to toggle between units




    # fdisk /dev/storage_pool/guest.img
    Command (m for help): d
    Partition number (1-4): 1
    Command (m for help): n
    Command action
    e extended
    p primary partition (1-4)
    p
    Partition number (1-4): 1
    First sector (...): 2048

    Last sector...: hit enter and use the default last sector
    Command (m for help): a
    Partition number (1-4): 1
    Command (m for help): w

  5. Expose the ext3/4 filesystem and resize it



    # kpartx -a -v /dev/storage_pool/guest.img
    # e2fsck -p -f /dev/mapper/storage_pool-guest.img1
    # resize2fs /dev/mapper/storage_pool-guest.img1

    # e2fsck -p -f /dev/mapper/storage_pool-guest.img1
    # kpartx -d -v /dev/storage_pool/guest.img

  6. Activate the logical volume and start the kvm guest



    # lvchange -a y /dev/storage_pool/guest.img
    # virsh start guest


No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...