Práticas recomendadas para snapshots de disco permanente

Crie snapshots de disco permanente a qualquer momento, mas crie snapshots mais rapidamente e com mais segurança usando as práticas recomendadas a seguir.

Antes de começar

Como preparar snapshots consistentes

Na maioria das situações, é possível criar um snapshot a partir de discos permanentes e, mesmo que seus aplicativos gravem dados nesses discos, o snapshot ainda terá boa consistência. A qualidade do snapshot depende da capacidade dos aplicativos de se recuperarem dos snapshots que você cria durante intensas cargas de trabalho de gravação.

Se seus aplicativos exigirem consistência rigorosa, siga as etapas a seguir para garantir que um snapshot seja consistente com o estado desejado do disco permanente.

Esvaziar os buffers do disco antes de um snapshot

É possível criar um snapshot de um disco permanente mesmo enquanto seus aplicativos gravam dados no disco. No entanto, você melhorará a consistência do snapshot se esvaziar os buffers do disco e sincronizar o sistema de arquivos antes de criar um snapshot.

Pause aplicativos ou processos do sistema operacional que gravam dados nesse disco permanente. Em seguida, esvazie os buffers de disco antes de criar o snapshot.

Para preparar o disco permanente antes de criar um snapshot, siga estas etapas:

  1. Conecte-se à instância usando SSH.
  2. Esvazie o aplicativo no disco. Por exemplo, o MySQL tem uma instrução FLUSH. Use a ferramenta que estiver disponível para o aplicativo.
  3. Interrompa a gravação de dados dos aplicativos no disco permanente.
  4. Execute sudo sync.

Se você pular essa etapa, somente os dados que foram esvaziados do disco pelo aplicativo serão incluídos no snapshot. Para o aplicativo, esse cenário é semelhante a uma queda de energia.

Congelar ou desconectar seu sistema de arquivos

Uma alternativa é congelar ou desconectar o sistema de arquivos antes de capturar um snapshot. Essa é a maneira mais confiável de garantir que os buffers de disco sejam limpos, mas não é tão prática quanto esvaziá-los.

Desconecte completamente o disco permanente para garantir que os dados não sejam gravados nele enquanto você cria o snapshot. Isso costuma ser desnecessário, mas melhora a consistência do snapshot.

  1. Conecte-se à instância usando SSH.
  2. Interrompa os aplicativos que estejam lendo ou gravando dados no disco permanente.
  3. Congele ou desconecte o sistema de arquivos.

    1. Congelar: sudo fsfreeze -f [example-disk_location]
    2. Desconectar: sudo umount [example-disk_location]

    Descongele ou ative o sistema de arquivos após concluir o snapshot:

    1. Descongelar: sudo fsfreeze -u [example-disk_location]
    2. Ativar: sudo mount [example-disk_location mount_location]

Usuários do Linux

Se o disco estiver conectado a uma instância do Linux, desconecte o disco da instância conectando-se à instância e usando a ferramenta umount:

sudo umount /dev/disk/by-id/google-[DISK_NAME]

em que [DISK_NAME] é o nome do disco permanente.

Usuários do Windows

Se o disco estiver conectado a uma instância do Windows, desconecte o disco da instância conectando-se à instância e usando a ferramenta Gerenciamento de discos.

Reativar o disco permanente

Depois de criar um snapshot, reative o disco permanente. Para mais informações, consulte Como formatar e ativar um disco permanente.

Se os aplicativos exigirem consistência entre vários discos permanentes, é preciso congelar ou desconectar todos os sistemas de arquivos em cada disco e concluir todos os snapshots desses discos antes de retomar os aplicativos. O Compute Engine não garante a consistência entre snapshots simultâneos em execução em vários discos permanentes.

Use sistemas de arquivos com registro de diário, como ext4, para reduzir o risco de armazenar os dados em cache sem que sejam de fato gravados no disco permanente.

Discos permanentes usando instâncias do Windows Server

Para discos permanentes anexados a instâncias do Windows Server, use snapshots VSS para ajudar a preservar a integridade dos dados.

Como sempre criar snapshots com eficiência

Use snapshots para gerenciar seus dados com eficiência.

  • Crie um snapshot de seus dados regularmente para minimizar a perda de dados devido a uma falha inesperada.

  • Melhore o desempenho eliminando o excesso de downloads de snapshots e criando e reutilizando uma imagem.

  • Defina a programação do snapshot para horários que não sejam de pico para reduzir o tempo do snapshot.

Limites de frequência do snapshot

Como criar snapshots a partir de discos permanentes

É possível capturar snapshots dos discos uma vez a cada 10 minutos, no máximo. Se você quiser emitir uma sequência de solicitações para capturar snapshots dos discos, é possível enviar 6 solicitações, no máximo, em 60 minutos.

Se o limite for excedido, a operação falhará e retornará este erro:

"code": "RESOURCE_OPERATION_RATE_EXCEEDED",
"message": "Operation rate exceeded for resource 'projects/project-id/zones/zone-id/disks/disk-name'. Too frequent operations from the source resource."

Esse limite se aplica às seguintes operações:

Esse limite não se aplica às seguintes operações:

Como prática recomendada, tire um snapshot do disco uma vez a cada hora. Evite tirar snapshots com mais frequência do que isso. A maneira mais fácil de fazer isso é configurar uma programação de snapshot.

Como criar novos discos permanentes zonais a partir de snapshots

É possível criar um novo disco permanente zonal a partir de um determinado snapshot por zona de destino uma vez a cada 10 minutos, no máximo. A zona de destino se refere ao local de armazenamento do novo disco permanente criado a partir do snapshot. O Google não garante que será possível criar discos a partir de um snapshot com mais rapidez, embora possa ser possível criar discos com mais frequência se você não tiver criado discos do snapshot na última hora.

Vários snapshots dos mesmos discos permanentes são considerados snapshots distintos em relação a esse limite de frequência.

Se esse limite for excedido, a operação falhará e retornará este erro:

"code": "RESOURCE_OPERATION_RATE_EXCEEDED",
"message": "Operation rate exceeded for resource 'projects/project-id/zones/zone-id/disks/disk-name'. Too frequent operations from the source resource."

Esse limite se aplica às seguintes operações:

Esse limite não se aplica às seguintes operações:

Em vez de restaurar repetidamente um snapshot na mesma zona para criar muitos discos permanentes, economize tempo e custos de rede ao criar uma imagem do snapshot e usá-la para criar seus discos:

  1. Crie uma imagem do snapshot.
  2. Crie discos permanentes da imagem. No Console do Google Cloud, selecione Imagem como o Tipo de origem do disco. Com a ferramenta gcloud, use a sinalização image. Na API, use o parâmetro sourceImage.

Use snapshots atuais como referência para snapshots posteriores

Se você tiver snapshots de um disco permanente, o sistema os usará automaticamente como valor de referência para qualquer snapshot posterior que você criar a partir desse mesmo disco.

  • Crie um novo snapshot a partir de um disco permanente antes de excluir o anterior desse mesmo disco permanente. O sistema poderá criar o novo instantâneo mais rapidamente se puder usar o anterior e lerá apenas os dados novos ou alterados do disco permanente.

  • Aguarde a finalização dos novos snapshots antes de criar os subsequentes do mesmo disco permanente. Se você executar dois snapshots simultaneamente no mesmo disco permanente, ambos partirão do mesmo valor de referência e esforços duplicados. Se você esperar que o novo snapshot seja concluído, todos os subsequentes serão executados mais rapidamente, pois eles só precisarão receber os dados que foram alterados desde o último snapshot.

Programar snapshots fora do horário de pico

Se você programar snapshots regulares para os discos permanentes, poderá reduzir o tempo necessário para completar cada snapshot, criando fora do horário de pico, quando possível.

  • Programe snapshots automatizados durante o dia útil na zona em que o disco permanente está localizado. A criação de snapshots costuma ocorrer ao fim do dia útil.
  • Programe snapshots automatizados no início da manhã na zona em que o disco permanente está localizado, em vez de imediatamente à meia-noite. A criação de snapshots costuma ocorrer à meia-noite.

Organizar dados em discos permanentes separados

Se você criar um snapshot de um disco permanente, os dados armazenados no disco serão incluídos no snapshot. Maiores quantidades de dados criam snapshots maiores, o que custa mais e é mais demorado. Para garantir a criação de um snapshot somente dos dados necessários, organize seus dados em discos permanentes separados.

  • Armazene dados críticos em um disco permanente secundário, não no disco de inicialização. Isso permite criar um snapshot dos seus discos de inicialização somente quando necessário ou com uma programação menos frequente.
  • Se você criar snapshots dos discos de inicialização, armazene partições de troca, arquivos de página, arquivos de cache e registros não críticos em um disco permanente separado. Esses arquivos e essas partições mudam com frequência, e o processo do snapshot provavelmente os identifica como dados alterados que precisam ser incluídos em um snapshot incremental.
  • Para reduzir o número de snapshots que você precisa criar, mantenha dados similares reunidos em um único disco permanente. Mantenha o sistema operacional e os dados voláteis separados dos dados que quer tirar o snapshot, mas não distribua os dados essenciais entre vários discos permanentes como faria com máquinas físicas. Um disco permanente grande é capaz de atingir o mesmo desempenho que vários discos permanentes menores do mesmo tamanho total.

Ative a opção discard ou execute fstrim no seu disco permanente

Nas instâncias do Linux, se você não formatou e ativou o disco permanente com a opção discard, execute o comando fstrim na instância antes de criar um snapshot. O comando remove os blocos de que o sistema de arquivos não precisa mais, para que o sistema possa criar o snapshot mais rapidamente e com um tamanho menor. Consulte o artigo sobre como formatar e ativar um disco permanente para saber como configurar a opção discard nos discos permanentes.

A seguir