- Alwin John
- April 29, 2021
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!