Eu quero um método robusto de fazer backup do KVM VPS do arquivo qcow2, enquanto estiver executando. Depois de pesquisar por um longo tempo, descobri que podemos usar o rsync para backup ao vivo. Eu usei o seguinte comando para rsync:
rsync -avh /vms/base.qcow2 /backup/backup.qcow2
Funcionou corretamente. Mas receio que possa corromper a imagem do backup qcow2 se o backup for realizado enquanto o VPS está sendo alterado devido a operações de gravação e exclusão (como a instalação de um novo software ou atualização).
Portanto, fazer backup do instantâneo do VPS ao vivo parece uma opção mais interessante.
Eu usei os seguintes comandos para fazer backup do VPS em execução:
1.Criar instantâneo:
qemu-img create -f qcow2 -b base.qcow2 snapshot.qcow2
2.Converta o instantâneo no formato de imagem bruta (.img):
qemu-img convert -O raw snapshot.qcow2 /backup/backup.img
Para restaurar o VPS:
3. converter imagem bruta na imagem qcow2:
qemu-img convert -O qcow2 /backup/backup.img base.qcow2
Então podemos iniciar o VPS por virsh create base.xml
comando.
Embora esse método também funcione perfeitamente, ainda não tenho certeza se esse é o método adequado para fazer backup da execução do VPS. Encontrei boa documentação sobre os comandos qemu-img aqui e aqui . Mas eles não mencionaram nada sobre a conversão de instantâneo de VPS ao vivo em imagem bruta.
Qual método é mais adequado para backup VPS ao vivo? A conversão de instantâneos em imagens não processadas é segura?
Se eu pudesse obter uma documentação detalhada e agradável sobre como os arquivos de instantâneo e base se comportam em determinadas condições, isso será muito útil.
Talvez também possamos converter a imagem base do qcow2 em um arquivo de backup bruto, em vez de converter o instantâneo. Portanto, o fluxo de comando será:
1. Crie um instantâneo
2. Converta o qcow2 base em imagem bruta de backup
3. Confirme as alterações do instantâneo na imagem base
4. Exclua o instantâneo
Eu tentei isso e funcionou bem em pequenos VPS de 5GB. Mas existe alguma possibilidade de erro ou corrupção do VPS quando o tamanho do VPS é enorme?
Desde já, obrigado...
Respostas:
A única coisa que está faltando é desativar o sistema de arquivos convidado antes de tirar o instantâneo, para garantir que ele seja consistente. Isso pode ser feito
virsh domfsfreeze
se você estiver usando libvirtd.Por exemplo, a ordem das operações é:
Observe bem que isso requer a
qemu-guest-agent
instalação e a execução na VM. Dependendo das opções de distribuição e instalação, este pode ou não ser o caso.O
qemu-guest-agent
também é extensível; você pode adicionar scripts a ele para suportar software específico. Por exemplo, inclui um exemplo de script para colocar o MySQL em um estado consistente.fonte
virsh domfsfreeze $VM_NAME
, recebo permissão negada no meu sistema de arquivos convidado. Meus sistemas de arquivos convidados são criptografados, não tenho certeza se isso importa.Há uma outra abordagem que envolve a criação de instantâneos temporários durante o backup e a confirmação posterior.
Para mais informações, consulte: https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit
fonte