Criar discos RAM na memória


As instâncias do Compute Engine têm memória de alto desempenho e de classe empresarial que pode usar para executar as suas aplicações. Pode atribuir parte desta memória para criar um disco RAM com uma latência excecionalmente baixa e um débito elevado. Os discos RAM funcionam bem quando a sua aplicação espera uma estrutura de sistema de ficheiros e não consegue simplesmente armazenar os respetivos dados na memória. Os discos RAM sozinhos não oferecem qualquer redundância ou flexibilidade de armazenamento, pelo que é melhor usar discos RAM em combinação com outras opções de armazenamento de instâncias.

Os discos RAM partilham a memória da instância com as suas aplicações. Se as suas instâncias não tiverem memória suficiente para conter discos RAM e as suas aplicações, crie instâncias com highmemtipos de máquinas, como N2, ou atualize as 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 tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se 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. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

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

Criar um disco RAM

Pode criar um disco RAM com o sistema de ficheiros tmpfs, que está incluído por predefinição na maioria das distribuições Linux.

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

  2. Ligue-se à sua instância através de SSH. Para este exemplo, aceda à página de instâncias de VM e clique no botão SSH junto à instância onde quer 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. Tem de determinar um valor para a propriedade size que cumpra os seus requisitos de armazenamento sem competir com as suas aplicações por memória 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, pelo que um tamanho de disco RAM de 50g é adequado.

    $ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
    
  5. Adicione o disco RAM ao ficheiro /etc/fstab para que o dispositivo seja montado novamente automaticamente se reiniciar a instância:

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

Eliminar um disco RAM

Pode desmontar um tmpfsdisco RAM tal como qualquer outro volume. Esta ação elimina o disco RAM e todos os dados armazenados no mesmo. Para este exemplo, remova um disco RAM montado em /mnt/ram-disk:

$ sudo umount /mnt/ram-disk

Fazer automaticamente uma cópia de segurança dos dados do disco RAM entre reinícios da instância

Pode fazer uma cópia de segurança de um disco RAM antes de a instância ser reiniciada para preservar os dados do disco RAM até a instância ser iniciada novamente. Faça uma cópia de segurança dos seus dados num volume do Hyperdisk do Google Cloud ou num volume do Persistent Disk se o tipo de máquina da sua VM não suportar o Hyperdisk.

  1. Crie e monte um volume do Hyperdisk para usar como um disco de cópia de segurança para o seu disco RAM. Certifique-se de que o disco é suficientemente grande para conter as informações no disco RAM.

  2. Crie um script de encerramento para a sua instância com um comando rsync que escreva o conteúdo do disco RAM no volume de cópia de segurança. Para este exemplo, use a CLI gcloud para adicionar os shutdown-script metadados à instância com o disco RAM montado em /mnt/ram-disk e o volume do Hyperdisk 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, também pode criar um script de arranque que restaura os ficheiros para o disco RAM quando a instância é iniciada novamente. 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"