Criando discos RAM na memória


As instâncias do Compute Engine têm memória de classe empresarial de alto desempenho que você pode usar para executar seus aplicativos. Você pode alocar parte dessa memória para criar um disco RAM com latência excepcionalmente baixa e alto rendimento. Os discos RAM funcionam bem quando seu aplicativo espera uma estrutura de sistema de arquivos e não pode simplesmente armazenar seus dados na memória. Os discos RAM por si só não fornecem redundância ou flexibilidade de armazenamento, portanto, é melhor usar discos RAM em combinação com outras opções de armazenamento de instância .

Os discos RAM compartilham memória de instância com seus aplicativos. Se suas 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 atualize suas instâncias existentes 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 .
  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:

    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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

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

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Criando um disco RAM

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

  1. Se sua instância não tiver memória disponível suficiente, você poderá alterar opcionalmente o tipo de máquina da instância para um tipo de máquina com mais memória.

  2. Conecte-se à sua instância por meio de SSH. Para este exemplo, acesse a página de instâncias de VM e clique no botão SSH próximo à instância onde deseja adicionar um disco RAM.

  3. Crie um ponto de montagem para o seu disco RAM.

    $ sudo mkdir /mnt/ram-disk
    
  4. Crie e monte um novo disco RAM tmpfs . Você deve determinar um valor para a propriedade size que atenda aos seus requisitos de armazenamento sem competir com seus aplicativos por memória ou 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 montado novamente automaticamente 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
    

Excluindo um disco RAM

Você pode desmontar um disco RAM tmpfs como qualquer outro volume. Isso exclui o disco RAM e todos os dados armazenados nele. Para este exemplo, remova um disco RAM montado em /mnt/ram-disk :

$ sudo umount /mnt/ram-disk

Backup automático dos dados do disco RAM entre reinicializações da instância

Você pode fazer backup de um disco RAM antes da reinicialização da instância para preservar os dados do disco RAM até que a instância seja reiniciada. Faça backup dos seus dados em um volume de hiperdisco do Google Cloud ou em um volume de disco permanente se o tipo de máquina da sua VM não for compatível com hiperdisco.

  1. Crie e monte um volume de hiperdisco para usar como disco de backup para seu disco RAM. Certifique-se de que o disco seja grande o suficiente para conter as informações do disco RAM.

  2. Crie um script de encerramento para sua 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 montado em /mnt/ram-disk e o volume do hiperdisco montado 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. Opcionalmente, você também pode criar um script de inicialização que restaure os arquivos de volta ao disco RAM quando a instância for 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"