instantâneo da instância EC2

4

Nos meus primeiros dias como administrador do KVM, quando tive de fazer um backup de uma imagem de VM, segui os passos seguintes:

  1. pausar a VM
  2. Volume LVM de instantâneo
  3. Retomar a VM
  4. Copiar imagem
  5. Remover instantâneo do LVM

Agora eu tenho algumas máquinas no EC2, mas estou com uma dúvida:

Documentação oficial da Amazon diz

"you should stop the instance before taking the snapshot"

mas às vezes você não pode interromper uma instância de produção. Eu tenho tirado fotos sem parar a instância e eu a restaurei (tudo correu bem), mas a dúvida está batendo na minha cabeça no tempo.

Então, minha pergunta é: posso pausar (parar não é e opção) uma instância do EC2 para que eu possa tirar uma foto consistente dela?

    
por periket2000 16.07.2014 / 10:16

4 respostas

4

A pausa não é possível. Parar a instância garantirá que seus sistemas de arquivos sejam consistentes. Usar fsfreeze é outro método para garantir que você desativou seus sistemas de arquivos.

O script ec2-consistent-snapshot é atualmente o padrão de fato, solução de código aberto para fazendo isso em instâncias baseadas em Linux. Você também pode manipular backups do sistema de arquivos MySQL. A execução requer permissões da API da AWS e precisa ser executada na instância em questão para garantir que os sistemas de arquivos sejam consistentes. Eu usei isso com sucesso por algum tempo.

    
por 16.07.2014 / 14:20
2

Não, não pode ser pausado.

Também faço instantâneos em servidores ativos e ainda não corri para um problema, e concordo que seria interessante suspender as gravações durante esse período.

A outra opção é usar 'Create AMI from this instance', que parece fazer algo semelhante a uma pausa, pois interrompe temporariamente a instância, mas sem liberar o IP ou perder o armazenamento da instância. Não é o mesmo que criar um instantâneo, por isso pode não ser útil para backups diários.

    
por 16.07.2014 / 10:41
2

Não, você não pode pausar uma instância do EC2, apenas parar.

Pausar uma VM não garante um instantâneo consistente. Na verdade, pausar uma VM para obter uma captura instantânea subjacente é pior do que tirar uma captura instantânea LVM local de um sistema em execução. A execução de um instantâneo LVM, pelo menos, libera seus buffers de gravação e espera que as gravações sejam concluídas antes de criar o ponto de verificação (como fsfreeze sugerido por Diego F. Durán).

O principal problema com os instantâneos são os aplicativos que gravam no armazenamento que estão em execução no momento. Em que estado eles estão? Para ter certeza de um instantâneo, você precisa ser capaz de quiesce seus aplicativos de escrita antes de tirar o instantâneo. Embora o Linux via LVM ou fsfreeze possa gerenciar o sistema operacional, você não tem garantia alguma de que a operação de gravação pausada não faz parte de um lote maior de gravações que será parcialmente gravado em seu backup.

Alguns bancos de dados podem recuperar-se reproduzindo o log de transações se o log e os dados estiverem no mesmo instantâneo, mas a maioria dos outros aplicativos não é compatível.

    
por 16.07.2014 / 11:19
1

Basta congelar o sistema de arquivos contido no volume usando fsfreeze antes de tirar o instantâneo e descongelá-lo depois que terminar.

    
por 16.07.2014 / 10:57