Crea discos RAM en la memoria


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 redundancia ni flexibilidad 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 highmem, como N2 o Actualiza tus instancias existentes para agregar más memoria.

Antes de comenzar

  • Lee información sobre la diferencia entre los discos RAM y otras opciones de almacenamiento de Compute Engine.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña sobre cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Crea un disco RAM

Puedes crear un disco RAM con el sistema de archivos tmpfs, que está incluido de forma predeterminada en la mayoría de las distribuciones de Linux.

  1. 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.

  2. 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.

  3. Crea un punto de activación para tu disco RAM.

    $ sudo mkdir /mnt/ram-disk
    
  4. Crea y activa un nuevo disco RAM tmpfs. Debes determinar un valor para la propiedad size 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áquina n1-highmem-32 con 208 GB de memoria, por lo que un tamaño de disco RAM de 50g es adecuado.

    $ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
    
  5. Agrega el disco RAM al archivo /etc/fstab para que el dispositivo se vuelva a activar de forma automática 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 nuevamente. Haz una copia de seguridad de tus datos en un disco persistente para preservarlos.

  1. Crea y activa un disco persistente para utilizarlo como disco de respaldo de tu disco RAM. Asegúrate de que el disco sea lo suficientemente grande para contener la información en el disco RAM.

  2. 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 CLI de gcloud para agregar los metadatos shutdown-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"
    
  3. 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 nuevamente. Usa la CLI de gcloud para agregar los metadatos startup-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"