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?