Por que meu snapshot incremental do EBS está levando o mesmo tempo para ser criado que um snapshot completo do EBS?

4 minuto de leitura
0

Quero saber por que a criação de um snapshot incremental do meu volume do Amazon Elastic Block Store (Amazon EBS) leva o mesmo tempo para ser concluída que um snapshot completo.

Resolução

O tempo de criação do snapshot depende dos seguintes fatores:

  • O tamanho do volume do EBS.
  • A quantidade de blocos alterados (delta) desde o último snapshot.
  • O workload no volume do EBS.
  • E/S ativa para o volume do EBS durante a criação do snapshot. Se as operações de E/S forem simultâneas no volume quando a chamada de criação for emitida, o snapshot não será priorizado.
  • Momento do snapshot, porque a largura de banda é compartilhada nos servidores de back-end.
  • O tempo desde o último snapshot.

Por design, os snapshots do EBS mostram o tamanho total do backup em vez do tamanho incremental. O primeiro snapshot é a cópia completa dos seus dados. Os snapshots subsequentes são incrementais e contêm os blocos alterados a partir do snapshot mais recente. O snapshot subsequente mostra o tamanho completo porque um novo volume pode ser restaurado a partir de qualquer snapshot do EBS, mesmo que seja incremental por design. Cada snapshot incremental faz referência aos outros snapshots no back-end.

Por exemplo, se todos os blocos forem modificados desde o primeiro snapshot, a criação de um snapshot pode parecer demorar tanto quanto o snapshot completo. Isso ocorre porque todos os blocos que fazem referência ao primeiro snapshot são modificados.

Quanto maior o número de alterações desde o último snapshot, mais tempo levará para criar snapshots subsequentes.

O tempo de criação também depende de outros fatores de infraestrutura, como a carga nos subsistemas de armazenamento subjacentes. Não há como prever quanto tempo a criação de snapshots do EBS pode levar, ou agilizar esse processo.

Para mais informações, consulte Como funcionam os snapshot.

Para verificar o tamanho real de um snapshot

1.    Execute o comando list-snapshot-blocks da AWS Command Line Interface (AWS CLI). No comando de exemplo a seguir, substitua value pela ID do seu snapshot.

$ aws ebs list-snapshot-blocks --snapshot-id value

Observação: se você receber erros ao executar os comandos da AWS CLI, utilize a versão mais recente da AWS CLI.

O comando list-snapshot-blocks lista todos os blocos de dados desse snapshot com os índices de bloco e os tokens de bloco. Observe que a API não fornece diretamente o número total de blocos. Você deve contar o número de blocos retornados com base nos tokens do bloco ou nos índices do bloco.

O comando list-snapshot-blocks retorna até 10.000 blocos em um único resultado. Se seu snapshot tiver mais de 10.000 blocos, o comando também retornará um NextToken.

Execute o comando a seguir para usar o token para recuperar a próxima página de resultados. No comando de exemplo a seguir, substitua value pela ID do seu snapshot.

$ aws ebs list-snapshot-blocks --snapshot-id <value> --next-token value

2.    Depois de contar os blocos, calcule o tamanho dos dados multiplicando o número total de blocos por 512 (cada bloco tem 512 KiB de tamanho).

Exemplo

Tamanho dos dados no snapshot (em KiB) = Número total de blocos * 512

Para reduzir o tempo de criação de snapshots

a prática recomendada é tirar snapshots frequentes de seus volumes. A criação frequente de snapshots significa que o tamanho dos blocos alterados no volume é menor, reduzindo o tempo de criação de snapshots. Para automatizar a criação e a exclusão de snapshots, use o Amazon Data Lifecycle Manager ou o AWS Backup.

Informações relacionadas

Por que a criação de snapshots do EBS ou AMI do Amazon Elastic Compute Cloud (Amazon EC2) está lenta?

AWS OFICIAL
AWS OFICIALAtualizada há 10 meses