Google Compute Engine instances have high-performance, enterprise-class memory that you can use to run your applications. You can allocate some of this memory to create a RAM disk with exceptionally low latency and high throughput. RAM disks work well when your application expects a file system structure and cannot simply store its data in system memory.
RAM disks alone do not provide any storage redundancy or flexibility, so it is best to use RAM disks in combination with other instance storage options.
Before you begin
- Read the VM instances documentation.
- If you want to use the command-line examples in this guide:
- If you want to use the API examples in this guide, set up API access.
- Read about the difference between RAM disks and other Compute Engine storage options.
Mounting a RAM disk
You can mount a RAM disk with the
tmpfs tool, which is installed by default
on many Linux operating systems.
If your instance does not have enough available memory, you can optionally change the instance machine type to a machine type with more memory.
Create a mount point for your RAM disk.
$ sudo mkdir /mnt/ram-disk
Create and mount a
tmpfsRAM disk. You must determine a value for the
sizeproperty that meets your storage requirements without competing with your applications for system memory or expending all of the available memory. For this example, the instance has a
n1-highmem-32machine type with 208 GB of memory, so a
50gRAM disk size is appropriate.
$ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
Add the RAM disk to the
/etc/fstabfile so that the device automatically mounts again if you restart the instance:
$ echo 'tmpfs /mnt/ram-disk tmpfs nodev,nosuid,noexec,nodiratime,size=50G 0 0' | sudo tee -a /etc/fstab
Unmounting a RAM disk
tmpfs RAM disk just like any other volume. This deletes the RAM disk
and any data that is stored in it. For this example, remove a RAM disk that
is mounted at
$ sudo umount /mnt/ram-disk
Automatically backing up RAM disk data between instance restarts
You can back up a RAM disk before your instance restarts to preserve the RAM disk data until the instance starts up again. Back up your data to a persistent disk to preserve it.
Create and mount a persistent disk to use as a backup disk for your RAM disk. Make sure the disk is big enough to contain the information in the RAM disk.
Create a shutdown script for your instance with an
rsynccommand that writes the RAM disk contents to the backup volume. For this example, use the
gcloudtool to add the
shutdown-scriptmetadata to the instance. The RAM disk is mounted at
/mnt/ram-diskand the persistent disk is mounted at
gcloud compute instances add-metadata example-instance --metadata shutdown-script="#! /bin/bash rsync -a --delete --recursive --force /mnt/ram-disk/ /mnt/ram-disk-backup/ EOF"
Optionally, you can also create a startup script that restores the files back to the RAM disk when the instance starts again. Use the
gcloudtool to add the
startup-scriptmetadata to the instance.
gcloud compute instances add-metadata example-instance --metadata startup-script="#! /bin/bash rsync -a --recursive --force /mnt/ram-disk-backup/ /mnt/ram-disk/ EOF"