How can size of the root disk in Google Compute Engine be increased?
Solution 1
As of 31 Mar 2016, you can resize a persistent disk online without stopping or rebooting the VM, without taking snapshots, and without having to restore it to a larger disk.
The blog post announcing the feature has the details, and you can see the docs for how to do this via the console:
Resize the persistent disk in the Google Cloud Platform Console:
- Go to the Compute Engine page.
- Click on "Disks" in the sidebar
- Click the name of the disk that you want to resize.
- At the top of the disk details page, click "Edit".
- In the "Size" field, enter the new size for your disk.
- At the bottom of the disk details page, click "Save" to apply your changes to the disk.
- After you resize the disk, you must resize the disk partitions so that the operating system can access the additional space.
Or via CLI:
gcloud compute disks resize example-disk --size 250
Then, on Debian/Ubuntu/etc. run:
$ sudo apt install -y cloud-utils # Debian jessie
$ sudo apt install -y cloud-guest-utils # Debian stretch, Ubuntu
$ sudo growpart /dev/sda 1
$ sudo resize2fs /dev/sda1
or, for RedHat/Fedora/CentOS/etc.:
$ sudo dnf install -y cloud-utils-growpart
$ sudo growpart /dev/sda 1
$ sudo xfs_growfs -d / # CentOS 6 needs `resize2fs`
Note that some operating systems will automatically resize your partition on reboot without requiring you to do any manual steps with tools such as fdisk
, resize2fs
or xfs_growfs
, so it should be sufficient to just resize the disk and reboot the VM for changes to take effect.
Solution 2
- create a new disk from snapshot, but increase the size when doing so
- create a new instance, using new, embiggened disk
- embiggen the partition to recognize the new space (https://cloud.google.com/compute/docs/disks/persistent-disks#repartitionrootpd) (NOTE: pay special attention to the starting sector, don't just blindly hit return, you can, however blindly hit return on the ending sector)
- sudo resize2fs /dev/sda1 (note, this step is not mentioned in the google cloud docs)
Solution 3
In most cases, it will be simpler and more flexible to create a second data disk of the size you want, and attach it to the instance.
To resize a Persistent Disk (including a root disk), snapshot the disk, then create a new larger disk from the snapshot.
Solution 4
This is more like a follow-up to @user1130176's answer, but if you are running CentOS 7+, you'll need to do the following for step #4 (expanding the filesystem):
xfs_growfs /dev/sda1
The new disks on CentOS 7 are of type xfs
. Hope this helps, it was not very clear from all the links around.
Solution 5
Since the new GCoud command line tool you can choose your boot disk size and type at the instance creation:
gcloud compute instances create foo-instance --boot-disk-size 100 --image "xxxxxx"
Then resize the root partition using these instructions: https://cloud.google.com/compute/docs/disks#repartitionrootpd
Documentation : https://cloud.google.com/sdk/gcloud/reference/compute/instances/create
Edit: After resizing the root partition, you have to reboot your instance to force the system to re-read the partition table. That makes this trick unusable in a startup script (executed on each startup/reboot).
Rishin S Babu
Updated on April 13, 2021Comments
-
Rishin S Babu about 3 years
The root disk size in GCE is 10 gigs. How do I increase this? I cant find the option in the console or the gcutil flags. This can be easily done in AWS.