Como criar discos RAM na memória


As instâncias do Compute Engine têm memória de classe corporativa de alto desempenho que pode ser usada para executar seus aplicativos. Aloque uma parte dessa memória para criar um disco RAM com latência excepcionalmente baixa e alta capacidade. Os discos RAM funcionam bem quando o aplicativo espera uma estrutura de sistema de arquivos e não consegue armazenar os dados na memória. Esses discos, isoladamente, não fornecem redundância nem flexibilidade de armazenamento e, por isso, é preferível combinar o uso de discos RAM com outras opções de armazenamento de instância.

Os discos RAM compartilham memória de instância com os aplicativos. Se as instâncias não tiverem memória suficiente para conter discos RAM e seus aplicativos, crie instâncias com tipos de máquina highmem, como N2 ou fazer upgrade das instâncias atuais para adicionar mais memória.

Antes de começar

  • Leia sobre a diferença entre discos RAM e outras opções de armazenamento do Compute Engine.
  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

Como criar um disco RAM

É possível criar um disco RAM com o sistema de arquivos tmpfs, incluído por padrão na maioria das distribuições do Linux.

  1. Se a instância não tiver memória suficiente, será possível alterar o tipo de máquina da instância para um que tenha mais memória.

  2. Conecte-se à instância pelo SSH. Para este exemplo, acesse a página "Instâncias de VMs" e clique no botão SSH próximo à instância em que o disco RAM será adicionado.

  3. Crie um ponto de ativação para o disco RAM.

    $ sudo mkdir /mnt/ram-disk
    
  4. Crie e ative um novo disco RAM tmpfs. Determine um valor para a propriedade size que atenda aos requisitos de armazenamento, sem competir por memória com seus aplicativos nem gastar toda a memória disponível. Para este exemplo, a instância tem um tipo de máquina n1-highmem-32 com 208 GB de memória. Portanto, um tamanho de disco de 50g de RAM é apropriado.

    $ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
    
  5. Adicione o disco RAM ao arquivo /etc/fstab para que o dispositivo seja ativado outra vez de modo automático se você reiniciar a instância:

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

Como excluir um disco RAM

É possível desativar um disco RAM tmpfs assim como qualquer outro volume. Isso exclui o disco RAM e todos os dados armazenados nele. Nesse exemplo, remova um disco RAM ativado em /mnt/ram-disk:

$ sudo umount /mnt/ram-disk

Backup automático dos dados do disco RAM entre reinícios de instância

Faça backup do disco RAM antes do reinício da instância para preservar os dados do disco RAM até a conclusão do reinício. Faça backup dos dados em um disco permanente para preservá-los.

  1. Crie e ative um disco permanente para usar como disco de backup do disco RAM. Certifique-se de que o disco tenha espaço suficiente para conter as informações do disco RAM.

  2. Crie um script de encerramento para a instância com um comando rsync que grava o conteúdo do disco RAM no volume de backup. Neste exemplo, use a CLI gcloud para adicionar os metadados shutdown-script à instância com o disco RAM ativado em /mnt/ram-disk e o disco permanente ativado em /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. Se preferir, crie um script de inicialização que restaure os arquivos no disco RAM quando a instância é reiniciada. Use a CLI gcloud para adicionar os metadados startup-script à instância.

    gcloud compute instances add-metadata example-instance --metadata startup-script="#! /bin/bash
    rsync -a --recursive --force /mnt/ram-disk-backup/ /mnt/ram-disk/
    EOF"