Skip to main content

How to extend AWS EBS volumes with no downtime



This can be applied whenever you need to extend your EBS volume size avoiding to stop the instance and detach the volume. 

In order to extend the volume size, follow these simple steps: 


  1. Login to your AWS console 
  2. Choose “EC2” from the services list 
  3. Click on “Volumes” under ELASTIC BLOCK STORE menu (on the left) 
  4. Choose the volume that you want to resize, right click on “Modify Volume” 
  5. You’ll see an option window like this one: If your filesystem is an ext2, ext3, or ext4, type: 
  6. Set the new size for your EBS volume (in this case i extended an 8GB volume to 20GB) 
  7. Click on modify. 


Now, we need to extend the partition itself. 

SSH to the EC2 instance where the EBS we’ve just extended is attached to. 

Type the following command to list our block devices: 


 lsblk 

You should be able to see a similar output:


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

As you can see size of the root volume reflects the new size, 20GB, the size of the partition reflects the original size, 8 GB, and must be extended before you can extend the file system. 

To do so, type the following command: 


sudo growpart /dev/xvda 0

Be careful, there is a space between device name and partition number! 

Now we can check that the partition reflects the increased volume size (we can check it with the lsblk command we already used): 


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

Last but not least, we need to extend the filesystem itself. 


sudo resize2fs /dev/xvda1

If your filesystem is an XFS, then type: 


sudo xfs_growfs /dev/xvda1

Finally we can check our extended filesystem by typing: 


df -h

If everything went right, we should be able to see our effective filesystem extended size: 


Filesystem      Size     Used     Avail    Use%    Mounted on
devtmpfs 980M 0 980M 0% /dev
tmpfs 997M 0 997M 0% /dev/shm
tmpfs 997M 440K 997M 1% /run
tmpfs 997M 0 997M 0% /sys/fs/cgroup
/dev/xvda1 20G 1,4G 9G 7% /

You have just extended your EBS volume size with 0 downtime.

Source: Hackernoon

Popular posts from this blog

WordPress Site is not loading properly behind Google Cloud/AWS Load Balancer

Hello Guys, Today we are going to understand how can we fix a WordPress loading issue (CSS and JS loading issue) behind the Google Cloud Load Balancer or AWS Load Balancer. Generally, When we host a WordPress site directly with Google Cloud Compute Engine VM instance or AWS EC2 instance. It's loading perfectly fine. But once we added this WordPress server behind any Load Balancer either from GCP Load Balancer or AWS Load Balancer, you site will completely broken, means the CSS and JS of your site not loaded properly. The reason for this is - When you put a load balancer in front of WordPress, you need to modify wp-config.php to process the HTTP header HTTP_X_FORWARDED_PROTO to detect the protocol that the user is using and not the protocol the load balancer is using to connect to your backend. To fix this issue, we have to make following changes in the  wp-config.php  file and add the below code snippet on the top of  wp-config.php file - Google Cloud Platform Load Bal...

Git and GitHub Commands Mastery

1. Setup Git and GitHub Global Configuration  git config --global user.email "gautamthakur1983@gmail.com" git config --global user.name "Gautam Thakur" git config --global list git config --list 2. Git Lifecycle | Initilize, Status, Add, Commit git status git init git add git commit -m "Commit Message" git log git log --oneline 3. Git Difference between last commit changes and current version changes git diff 4. Git Compare between 2 different Git Commits git diff eac4c5b 82485b1 5. Git Statsh - To save some changes for temporary purpose ## Pop take out stash and clear but apply take out stash but not clear git stash (To save current changes for temporary) git stash pop (To take out all stash contents) git stash list git stash clear (To clear all the stash changes) git stash save "NAME"  git stash save "NAME1" (Working with multiple stash) git stash sapply 0 or 1 (0 for name, 1 for about) after that run git stash clear git stash clear 6...

How to Setup Kubernetes Cluster in Google Cloud Virtual Machine using "kubeadm"? | Ubuntu 20.04/22.04 LTS

  Hello Friends, In this post, we are going to setup Kubernetes Cluster on Virtual Machine in Google Cloud Platform using kubeadm tool. Hope this post will help you in Kubernetes learning Hand-On Labs (HOL). Requirements: Master Node: No. of VMs 1 Specifications - 2 vCPUs, 4GB RAM, 20 GB HDD (Balanced PD or SSD PD), Operating System (OS) Ubuntu 20.04 LTS x86/64, amd64  Firewall Rule - Ingress Allow 6443 (API Server) | 2379 (ETCD) | 10251 (Scheduler) | 10252 (Controller Manager) 10250 (Kubelet), sudo access with admin access  Worker Node: No. of VMs 2 Specifications - 2 vCPUs, 4GB RAM, 20 GB HDD (Balanced PD or SSD PD), Operating System (OS) Ubuntu 20.04 LTS x86/64, amd64  Firewall Rule - Ingress Allow 30000-32767 (Services) | 10250 (Kubelet),  sudo access with admin access  Disable Swap and comment fstab entry: First, Disable Swap and remove or comment the Swap entries from fstab file : sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab Next...