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 não houver memória suficiente nas instâncias para esses discos RAM e os aplicativos, crie instâncias com tipos de máquina com grande quantidade de memória ou faça upgrade das instâncias atuais para adicionar mais memória.
Antes de começar
- Para usar os exemplos de linha de comando deste guia, siga estas etapas:
- Instale ou atualize a ferramenta de linha de comando gcloud para a versão mais recente.
- Defina uma região e uma zona padrão.
- Para usar os exemplos de API deste guia, configure o acesso à API.
- Leia sobre a diferença entre discos RAM e outras opções de armazenamento do Compute Engine.
Como criar um disco RAM
Crie um disco RAM com a ferramenta tmpfs
, que é instalada por padrão em muitos sistemas operacionais Linux.
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.
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.
Crie um ponto de ativação para o disco RAM.
$ sudo mkdir /mnt/ram-disk
Crie e ative um novo disco RAM
tmpfs
. Determine um valor para a propriedadesize
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áquinan1-highmem-32
com 208 GB de memória. Portanto, um tamanho de disco de50g
de RAM é apropriado.$ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
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.
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.
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 ferramentagcloud
para adicionar os metadadosshutdown-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"
Se preferir, crie um script de inicialização que restaure os arquivos no disco RAM quando a instância é reiniciada. Use a ferramenta
gcloud
para adicionar os metadadosstartup-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"