Máquina virtual e backup

Máquina virtual e backup

Tenho uma máquina virtual (centos) executando algum serviço de arquivos para arquivos pequenos. Qual é a forma recomendada de backup? Devo fazer backup do disco/arquivo da máquina virtual (de fora da máquina virtual) ou devo executar um agente de backup dentro da máquina virtual, para fazer backup do conteúdo e não de todo o disco virtual?

Responder1

TLDR: Instale um agente de backup na VM.

Fazer backup da imagem do disco fora da VM certamente parece tentador, não é? Especialmente se você tiver várias VMs, basta dizer à máquina host para fazer backup de todas as imagens de disco e pronto, sem precisar configurar individualmente cada VM para fazer backup de si mesma.

O problema com essa abordagem, porém, é que a máquina host não tem conhecimento do que o sistema operacional da VM está fazendo internamente. Ele não sabe se há alguma gravação em disco pendente ou em andamento. Ele não conhece nenhum cache de gravação ou buffer de saída interno ao processo da VM. E, portanto, não pode garantir que a imagem de disco da qual faz backup será umconsistenteimagem no momento do backup. O arquivo de imagem de backup quase certamente ainda poderá ser usado, mas há uma grande chance de que você precise primeiro executar um reparo do sistema de arquivos para limpar as coisas.

A outra grande desvantagem de fazer backups externos de imagens de disco completas é que esses backups são úteis principalmente para restaurações completas do sistema. Se você só precisar recuperar a versão de quinta-feira passada de um arquivo perdido, eles não são tão bons para isso - você precisa restaurar a imagem inteira do backup de quinta-feira e usar outras ferramentas para extrair esse arquivo da segunda cópia do imagem, o que consumirá muito mais tempo e espaço do que se você tivesse feito um backup na VM e conseguido restaurar apenas o arquivo de interesse.

Também relacionado a isso está o fato de que os backups de imagem completa são mais difíceis (na melhor das hipóteses) de serem executados de forma incremental, o que significa que você precisa fazer uma cópia completa da imagem inteira sempre que executar um backup. Com um backup baseado em conteúdo de dentro da VM, você pode fazer backups completos periódicos e fazer backup apenas dos arquivos alterados no meio, permitindo backups muito mais frequentes com a mesma quantidade de espaço de armazenamento.

Se você estiver criando uma imagem de toda a VM para fins de recuperação de desastres ou para usá-la como mestre para clonar para criar outras VMs, desligar a VM e copiar a imagem completa do disco é uma boa maneira de fazer isso. Mas não é uma boa abordagem para fazer backups de rotina de um sistema em execução.

Responder2

TL;DR faz um snapshot de fora da VM

Todos os softwares de host de VM que já vi (incluindo serviços em nuvem e hosts de contêiner) possuem um recurso de snapshot. Esta é a maneira preferida de fazer backup de um sistema em execução, poisinstantâneosgarantem cópias consistentes e atômicas de um disco inteiro em um único momento. O software host da VM normalmente possui ferramentas de sistema operacional convidado que desativam o sistema de arquivos antes de um instantâneo, embora seja sempre melhor fazer o instantâneo em um momento em que não há muitas gravações, como à noite. A maioria dos sistemas fará uma breve pausa enquanto o estado do instantâneo é salvo.

Os instantâneos também são geralmente incrementais. Existem também recursos avançados de snapshot, como eliminação de duplicação.

Se o sistema estiver desligado (não pausado ou suspenso), você poderá simplesmente fazer uma cópia dos arquivos da VM, pois sabe que não pode haver nenhuma gravação e todos os dados devem ter sido gravados no disco.

Se precisar restaurar arquivos individuais, basta restaurar o disco, anexá-lo e montá-lo em outro sistema.

Se você executar um backup dos arquivos em um sistema de arquivos, haverá alguns problemas:

Os arquivos podem não ser consistentes, pois podem ocorrer gravações durante o backup porque não são atômicos. Tar, por exemplo, avisa que um arquivo foi gravado durante o backup. Como outro exemplo, eu nunca confiaria em uma cópia de um banco de dados cujos arquivos foram copiados em backup. O sistema de banco de dados pode ser resiliente à recuperação de inconsistências, mas você quer correr esse risco? Seria melhor fazer um backup de banco de dados externo separado usando a ferramenta de sistema relevante.

Outro problema é que seria difícil criar um sistema inicializável apenas a partir dos arquivos. Outras coisas como o setor de inicialização e a tabela de partição são necessárias para criar um sistema inicializável. O que significa que há a etapa adicional de restauração da instalação doexatamente o mesmosistema operacional antes da restauração do arquivo. Mesmo assim, eu ficaria extremamente duvidoso em confiar nele, mesmo que ele inicializasse.

informação relacionada