How do I increase the EBS volume size of a running instance?

j0nes picture j0nes · Mar 7, 2012 · Viewed 63.2k times · Source

I have a server running the recent Ubuntu AMIs from Canonical. The size of the EBS boot volume is 8GB. I know that I can resize EBS volumes by taking a snapshot, creating a new volume and expanding the partition on it. How can I increase the size of the volume while the machine is running? If this is not possible, what is the preferred method for increasing the boot volume size with minimal downtime?

Answer

tk120404 picture tk120404 · Apr 6, 2017

We can increase the volume size with the new EBS Feature Elastic volumes, post that we need to follow the following steps to use the increase size as shown here

Assume your volume was 16G and you increased it to 32GB.

    $lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  32G  0 disk
└─xvda1 202:1    0  16G  0 part /

To extend xvda1 from 16GB t0 32GB, we need growpart. growpart is available as part of cloudutils

sudo apt install cloud-utils

Post installation of cloud-utils, execute the growpart command

sudo growpart /dev/xvda 1

Now lsblk, will show

    $ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  32G  0 disk
└─xvda1 202:1    0  32G  0 part /

but df -h will show only 16GB

Final command for extending xvda1 to 32GB is

sudo resize2fs /dev/xvda1

In case of XFS file system,

sudo xfs_growfs /dev/xvda1 Thanks egg