Crear discos de RAM en memoria


Las instancias de Compute Engine tienen memoria de alto rendimiento y de clase empresarial que puedes usar para ejecutar tus aplicaciones. Puedes asignar parte de esta memoria para crear un disco RAM con una latencia excepcionalmente baja y un rendimiento alto. Los discos RAM funcionan bien cuando tu aplicación espera una estructura de sistema de archivos y no puede almacenar sus datos en la memoria. Los discos RAM por sí solos no proporcionan redundancia ni flexibilidad de almacenamiento, por lo que es mejor usarlos en combinación con otras opciones de almacenamiento de instancias.

Los discos de RAM comparten la memoria de la instancia con tus aplicaciones. Si tus instancias no tienen suficiente memoria para contener los discos RAM y tus aplicaciones, crea instancias con highmem tipos de máquinas, como N2, o actualiza tus instancias para añadir más memoria.

Antes de empezar

  • Consulta la diferencia entre los discos RAM y otras opciones de almacenamiento de Compute Engine.
  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

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

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Crear un disco RAM

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

  1. Si tu instancia no tiene suficiente memoria disponible, puedes cambiar el tipo de máquina de la instancia a un tipo de máquina con más memoria.

  2. Conéctate a tu instancia a través de SSH. En este ejemplo, ve a la página Instancias de VM y haz clic en el botón SSH situado junto a la instancia en la que quieras añadir un disco RAM.

  3. Crea un punto de montaje para tu disco RAM.

    $ sudo mkdir /mnt/ram-disk
    
  4. Crea y monta un nuevo disco RAM tmpfs. Debe determinar un valor para la propiedad size que cumpla sus requisitos de almacenamiento sin competir con sus aplicaciones por la memoria ni agotar 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 es adecuado un tamaño de disco RAM de 50g.

    $ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
    
  5. Añade el disco RAM al archivo /etc/fstab para que el dispositivo vuelva a montar automáticamente si reinicias la instancia:

    $ echo 'tmpfs /mnt/ram-disk tmpfs nodev,nosuid,noexec,nodiratime,size=50G 0 0' | sudo tee -a /etc/fstab
    

Eliminar un disco RAM

Puedes desmontar un disco RAM tmpfs como cualquier otro volumen. Se eliminará el disco RAM y todos los datos que contenga. En este ejemplo, vamos a quitar un disco RAM que está montado en /mnt/ram-disk:

$ sudo umount /mnt/ram-disk

Crear automáticamente copias de seguridad de los datos del disco de RAM entre reinicios de instancias

Puedes crear una copia de seguridad de un disco RAM antes de que se reinicie la instancia para conservar los datos del disco RAM hasta que la instancia se inicie de nuevo. Crea una copia de seguridad de tus datos en un volumen de Hyperdisk de Google Cloud o en un volumen de Persistent Disk si el tipo de máquina de tu VM no es compatible con Hyperdisk.

  1. Crea y monta un volumen de Hyperdisk para usarlo como disco de copia de seguridad de tu disco RAM. Asegúrate de que el disco sea lo suficientemente grande como para contener la información del disco RAM.

  2. Crea un script de apagado para tu instancia con un comando rsync que escriba el contenido del disco RAM en el volumen de copia de seguridad. En este ejemplo, usa la CLI de gcloud para añadir los metadatos shutdown-script a la instancia con el disco RAM montado en /mnt/ram-disk y el volumen de Hyperdisk montado 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. También puedes crear una secuencia de comandos de inicio para restaurar los archivos en el disco RAM cuando se vuelva a iniciar la instancia. Usa gcloud CLI para añadir 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"