Las instancias de Compute Engine tienen una memoria de clase empresarial de alto rendimiento que puedes usar para ejecutar tus aplicaciones. Puedes asignar parte de esta memoria para crear un disco RAM con una latencia excepcionalmente baja y una capacidad de procesamiento alta. Los discos RAM funcionan bien cuando tu aplicación espera una estructura de sistema de archivos y no puede simplemente almacenar sus datos en la memoria. Los discos RAM solos no brindan flexibilidad ni redundancia de almacenamiento, por lo que es mejor usar discos RAM junto con otras opciones de almacenamiento de instancias.
Los discos RAM comparten memoria de la instancia con tus aplicaciones. Si tus instancias no tienen suficiente memoria para contener discos RAM y aplicaciones, crea instancias con tipos de máquina con alta capacidad de memoria o actualiza tus instancias existentes para agregar más memoria.
Antes de comenzar
- Si deseas usar los ejemplos de línea de comandos de esta guía, haz lo siguiente:
- Instala la versión más reciente de la herramienta de línea de comandos de gcloud.
- Configura una región y una zona predeterminadas.
- Si deseas usar los ejemplos de la API de esta guía, configura el acceso a la API.
- Lee información sobre la diferencia entre los discos RAM y otras opciones de almacenamiento de Compute Engine.
Crea un disco RAM
Puedes crear un disco RAM con la herramienta tmpfs
, que está instalada de forma predeterminada en muchos sistemas operativos de Linux.
Si tu instancia no tiene suficiente memoria disponible, puedes, de manera opcional, cambiar el tipo de máquina de la instancia por un tipo de máquina con más memoria.
Conéctate a tu instancia a través de SSH. Para este ejemplo, dirígete a la página Instancias de VM y haz clic en el botón SSH junto a la instancia en la que quieres agregar un disco RAM.
Crea un punto de activación para tu disco RAM.
$ sudo mkdir /mnt/ram-disk
Crea y activa un disco RAM
tmpfs
nuevo. Debes determinar un valor para la propiedadsize
que cumpla con tus requisitos de almacenamiento sin competir con tus aplicaciones por la memoria ni gastar toda la memoria disponible. En este ejemplo, la instancia tiene un tipo de máquinan1-highmem-32
con 208 GB de memoria, por lo que un tamaño de disco RAM de50g
es adecuado.$ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
Agrega el disco RAM al archivo
/etc/fstab
para que el dispositivo se active de forma automática una vez más si reinicias la instancia:$ echo 'tmpfs /mnt/ram-disk tmpfs nodev,nosuid,noexec,nodiratime,size=50G 0 0' | sudo tee -a /etc/fstab
Borra un disco RAM
Puedes desactivar un disco RAM tmpfs
como cualquier otro volumen. Esto borra el disco RAM y cualquier dato almacenado en él. Para este ejemplo, quita un disco RAM que esté activado en /mnt/ram-disk
:
$ sudo umount /mnt/ram-disk
Realiza una copia de seguridad automática de los datos del disco RAM entre reinicios de instancia
Puedes hacer una copia de seguridad de un disco RAM antes de que tu instancia se reinicie para preservar los datos del disco RAM hasta que la instancia se inicie de nuevo. Haz una copia de seguridad de tus datos en un disco persistente para preservarlos.
Crea y activa un disco persistente para usarlo como disco de copia de seguridad de tu disco RAM. Asegúrate de que el disco sea lo suficientemente grande para contener la información en el disco RAM.
Crea una secuencia de comandos de cierre para tu instancia con un comando
rsync
que escriba el contenido del disco RAM en el volumen de la copia de seguridad. En este ejemplo, usa la herramienta degcloud
para agregar los metadatosshutdown-script
a la instancia con el disco RAM activado en/mnt/ram-disk
y el disco persistente activado en/mnt/ram-disk-backup
.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"
De manera opcional, también puedes crear una secuencia de comandos de inicio que restablezca los archivos en el disco RAM cuando la instancia se inicia de nuevo. Usa la herramienta de
gcloud
para agregar los metadatosstartup-script
a la instancia.gcloud compute instances add-metadata example-instance --metadata startup-script="#! /bin/bash rsync -a --recursive --force /mnt/ram-disk-backup/ /mnt/ram-disk/ EOF"