Increase root partition size in AWS Instance without Downtime.

1. Login to AWS console.

  • Before modifying a volume that contains valuable data, it is a best practice to create a snapshot of the volume in case you need to roll back your changes.
  • Request the volume modification. For example existing volume size is 8 GB and extend to 16 GB.
  • Monitor the progress of the volume modification.
  • Once the size of the volume has modified in console then extend the volume’s file system with below steps to take advantage of the increased storage capacity.

2. SSH into the instance and resize the partition:

let’s list block devices attached to our box:

lsblk

NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

xvda    202:0    0  16G  0 disk

└─xvda1 202:1    0   8G  0 part /

There can see /dev/xvda1 is still 8 GiB partition on a 16 GiB device and there are no other partitions on the volume. Let’s use “growpart” to resize 8G partition up to 16G:

# install “cloud-guest-utils” if it is not installed already(pre installed in aws ami’s)

apt install cloud-guest-utils

# resize partition

growpart /dev/xvda 1

Let’s check the result (you can see /dev/xvda1 is now 16G):

lsblk

NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

xvda    202:0    0  16G  0 disk

└─xvda1 202:1    0  16G  0 part /

 

Resize file system to grow all the way to fully use new partition space

 

# Check before resizing (“Avail” shows 1.1G):

df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/xvda1      7.8G  6.3G  1.1G  86% /

 

# resize filesystem

resize2fs /dev/xvda1

 

# Check after resizing (“Avail” now shows 8.7G!-):

df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/xvda1       16G  6.3G  8.7G  42% /

So we have zero downtime and lots of new space to use.

Enjoy!

Leave a Reply