Você pode criar snapshots de discos permanentes e de hiperdiscos do Google Cloud a qualquer momento, mas poderá criar snapshots mais rapidamente e com maior confiabilidade se usar as práticas recomendadas a seguir.
Considerações de segurança
Para evitar o escalonamento de privilégios não intencional, certifique-se de conceder permissões do IAM relacionadas ao snapshot somente a entidades principais em quem você confia para ler e restaurar dados de snapshots ou de snapshots instantâneos. As seguintes permissões permitem que os usuários leiam e restaurem dados de snapshots ou instantâneos:
-
compute.snapshots.useReadOnly
-
compute.instantSnapshots.useReadOnly
Qualquer entidade de segurança que tenha uma das permissões anteriores pode restaurar dados de snapshots ou snapshots instantâneos no seu projeto para um projeto que ele controla, incluindo um projeto que esteja em uma organização diferente. Por exemplo, se um agente mal-intencionado obtivesse uma função do IAM de snapshot em seu projeto, ele poderia restaurar o snapshot em seu projeto pessoal e acessar os dados contidos no snapshot.
Para saber como verificar as permissões que um principal possui, consulte Determinar quais principais têm determinadas funções ou permissões .
Preparando-se para instantâneos consistentes
Se você criar um instantâneo do disco permanente ou hiperdisco enquanto o aplicativo estiver em execução, o instantâneo poderá não capturar gravações pendentes que estão em trânsito da memória para o disco. Devido a essas inconsistências, o instantâneo pode não refletir o estado exato do seu aplicativo no momento em que você o capturou. Nesse cenário, o instantâneo é considerado consistente com falhas porque captura o estado do aplicativo como se a máquina tivesse travado no momento em que o instantâneo foi obtido.
Opcionalmente, você pode pausar o aplicativo para que todas as transações do aplicativo sejam concluídas e o sistema possa liberar todas as gravações pendentes da memória para o disco antes que o instantâneo seja capturado. Nesse cenário, o instantâneo é considerado consistente com o aplicativo .
Criando snapshots consistentes com falhas
Ao tirar um snapshot de um disco permanente ou hiperdisco, você não precisa realizar nenhuma etapa adicional para tornar o snapshot consistente com falhas. Em particular, você não precisa pausar sua carga de trabalho.
Se a sua carga de trabalho não puder tolerar uma pausa temporária, considere o seguinte processo para criar instantâneos consistentes com falhas:
- Capture um instantâneo enquanto os aplicativos estão em execução, presumindo que haverá algumas inconsistências nos dados do aplicativo.
- Verifique se você pode restaurar sua carga de trabalho para um estado de aplicativo aceitável a partir do snapshot.
- Com base na etapa anterior, retenha ou exclua o instantâneo.
Os snapshots consistentes com falhas provavelmente exigirão a repetição do sistema de arquivos e dos diários no nível do aplicativo antes do uso. Assim, a qualidade do seu instantâneo depende da capacidade do seu aplicativo de se recuperar rapidamente de um estado consistente com falhas e voltar a servir.
Criando snapshots consistentes de aplicativos
- Usuários do Windows Server : para discos anexados a instâncias do Windows Server, use snapshots VSS .
- Usuários do Linux : para obter consistência de aplicativo para snapshots de discos anexados a instâncias do Linux, crie scripts de shell pré e pós-instantâneo para preparar seu sistema para consistência de aplicativo. Em seguida, crie um instantâneo com a opção
guest-flush
habilitada. Isso executa os scripts anteriores e posteriores antes e depois da captura do instantâneo. Para obter instruções, consulte Criando snapshots consistentes de aplicativos Linux .
Criando manualmente snapshots consistentes de aplicativos
Em alguns cenários, talvez seja necessário pausar manualmente seus aplicativos para obter instantâneos consistentes com os aplicativos.
Por exemplo, use esta opção se precisar de consistência de aplicativo entre vários volumes de disco permanente ou hiperdisco. Nesse caso, você deve congelar todos os sistemas de arquivos em cada disco e concluir todos os instantâneos desses discos antes de retomar seus aplicativos.
Você não precisa parar suas VMs. A pausa do aplicativo pode envolver, por exemplo, o congelamento e a desmontagem do sistema de arquivos. Depois de pausar manualmente seus aplicativos, retome suas cargas de trabalho somente depois que o recurso de snapshot atingir o status UPLOADING
.
Ao solicitar um instantâneo, verifique o status da operação chamando o método globalOperations.get
. A tabela a seguir mostra o relacionamento entre o status da operação de captura instantânea e o status do recurso de captura instantânea.
Status da operação | Status do recurso de instantâneo |
---|---|
PENDING | Ainda não existe nenhum recurso de snapshot. |
RUNNING | CREATING ou UPLOADING CREATING : A criação do instantâneo ainda não foi concluída.UPLOADING : o instantâneo foi criado, mas ainda não foi salvo no Cloud Storage. |
DONE | FAILED ou READY . |
Limites de frequência de instantâneo
Há limites para a frequência com que você pode tirar um instantâneo de um disco.
Criação de snapshots de disco permanente ou hiperdisco
Você pode capturar instantâneos de um disco individual no máximo 6 vezes a cada 60 minutos.
Se o limite for excedido, a operação falhará e retornará o seguinte 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."
Este limite aplica-se às seguintes operações:
- Criando snapshots de um disco permanente
- Criando instantâneos de um volume de hiperdisco
- Criando imagens de um disco permanente
- Criando snapshots padrão ou de arquivo a partir de snapshots instantâneos
Este limite não se aplica às seguintes operações:
- Crie agendamentos para instantâneos de disco . Os instantâneos agendados têm considerações de frequência separadas e não contribuem para o limite de frequência do instantâneo.
- Importando manualmente imagens de disco de inicialização
Como prática recomendada, tire um instantâneo do disco uma vez por hora. Evite tirar instantâneos com mais frequência do que isso. A maneira mais fácil de conseguir isso é configurar uma programação de snapshot.
Criando novos discos zonais a partir de snapshots
Você pode criar um novo disco permanente ou hiperdisco zonal a partir de um determinado snapshot por zona de destino no máximo seis vezes a cada 60 minutos. A zona de destino refere-se ao local de armazenamento do novo disco criado a partir do instantâneo.Google Cloud não garante que você será capaz de criar discos a partir de um instantâneo em uma taxa mais rápida do que isso, embora você possa criar discos com mais frequência se não tiver criado nenhum disco a partir do instantâneo na última hora.
Observe que vários instantâneos dos mesmos discos são considerados instantâneos distintos em relação a esse limite de frequência.
Se esse limite for excedido, a operação falhará e retornará o seguinte erro:
"code": "RESOURCE_OPERATION_RATE_EXCEEDED", "message": "Operation rate exceeded for resource 'projects/project-id/global/snapshots/snapshot-name'. Too frequent operations from the source resource."
Este limite aplica-se às seguintes operações:
Este limite não se aplica às seguintes operações:
- Criação de novos discos permanentes regionais a partir de um snapshot.
- Criação de novos discos permanentes zonais ou regionais usando uma imagem como origem.
Para criar vários discos a partir de um instantâneo, use o instantâneo para criar uma imagem e depois crie seus discos a partir da imagem:
Para discos que não são de inicialização, siga as instruções para criar discos permanentes a partir da imagem e siga as etapas a seguir:
- No console do Google Cloud, selecione Imagem como tipo de origem do disco.
- Com a CLI gcloud, use o sinalizador
image
. - Se estiver usando REST, use o parâmetro
sourceImage
.
Use snapshots existentes como base para snapshots subsequentes
Se você tiver instantâneos existentes de um disco (disco permanente ou hiperdisco), o sistema os usará automaticamente como linha de base para quaisquer instantâneos subsequentes criados a partir desse mesmo disco.
- Crie um novo instantâneo de um disco antes de excluir o instantâneo anterior desse mesmo disco. O sistema poderá criar o novo instantâneo mais rapidamente se puder usar o instantâneo anterior e ler apenas os dados novos ou alterados do disco.
- Aguarde a conclusão dos novos snapshots antes de tirar snapshots subsequentes do mesmo disco. Se você executar dois instantâneos simultaneamente no mesmo disco, ambos começarão na mesma linha de base e duplicarão o esforço. Se você aguardar a conclusão do novo instantâneo, todos os instantâneos subsequentes serão executados mais rapidamente porque eles obterão apenas os dados que foram alterados desde a conclusão do último instantâneo.
Programe snapshots fora dos horários de pico
Se você agendar snapshots regulares para seus discos (disco permanente ou hiperdisco), poderá reduzir o tempo necessário para concluir cada snapshot criando-os fora dos horários de pico, quando possível.
- Agende snapshots automatizados durante o dia útil na zona onde seu disco está localizado. A criação de instantâneos normalmente atinge o pico no final do dia útil.
- Agende instantâneos automatizados no início da manhã na zona onde seu disco está localizado, em vez de imediatamente à meia-noite. A criação de instantâneos normalmente atinge o pico à meia-noite.
Organize seus dados em discos separados
Se você criar um instantâneo de um disco (disco permanente ou hiperdisco), todos os dados armazenados no disco serão incluídos no instantâneo. Quantidades maiores de dados criam instantâneos maiores, que custam mais e demoram mais para serem criados. Para garantir que você crie um instantâneo apenas dos dados necessários, organize seus dados em discos separados.
- Armazene dados críticos em um disco secundário ou de dados, em vez de no disco de inicialização. Isso permite criar um instantâneo dos discos de inicialização somente quando necessário ou em uma programação menos frequente.
- Se você criar instantâneos de seus discos de inicialização, armazene partições swap, arquivos de paginação, arquivos de cache e logs não críticos em um disco separado. Esses arquivos e partições mudam frequentemente e o processo de snapshot provavelmente os identificará como dados alterados que devem ser incluídos em um snapshot incremental.
- Reduza o número de instantâneos que você precisa criar mantendo dados semelhantes juntos em um disco. Mantenha o sistema operacional e os dados voláteis separados dos dados que você deseja capturar, mas não precisa distribuir seus dados críticos em vários discos como faria para uma máquina física. Um disco grande é capaz de atingir o mesmo desempenho que vários discos menores do mesmo tamanho total.
Habilite a opção discard
ou execute fstrim
em seu disco
Nas instâncias Linux, se você não formatou e montou seus discos (disco permanente ou hiperdisco) com a opção de descarte, execute o comando fstrim
na instância antes de criar um snapshot. O comando remove blocos que o sistema de arquivos não necessita mais, para que o sistema possa criar o snapshot mais rapidamente e com tamanho menor. Para saber como configurar a opção de descarte em seus discos, consulte Formatar e montar um disco que não seja de inicialização em uma VM Linux .
Crie uma imagem de um instantâneo usado com frequência
Se você estiver usando repetidamente um snapshot na mesma zona para criar um disco (disco permanente ou hiperdisco), economize nos custos de rede usando o snapshot uma vez e criando uma imagem desse snapshot. Armazene esta imagem e use-a para criar seu disco e iniciar uma instância de VM. Para obter instruções, consulte Criando uma imagem personalizada .
Como prática recomendada, tire um instantâneo do disco uma vez por hora. Evite tirar instantâneos com mais frequência do que isso. A maneira mais fácil de conseguir isso é configurar uma programação de snapshots .
Outras práticas recomendadas
- Use sistemas de arquivos com registro em diário, como
ext4
para reduzir o risco de os dados serem armazenados em cache sem realmente serem gravados no disco permanente. - Crie um instantâneo de seus dados regularmente para minimizar a perda de dados devido a falhas inesperadas.
O que vem a seguir
- Aprenda como criar instantâneos de disco .
- Saiba como visualizar, listar, compartilhar e excluir snapshots .
- Aprenda como criar agendamentos para instantâneos de disco .