Questão Fazendo backup de um servidor de VM para uma unidade USB externa


Eu tenho um servidor Ubuntu 10.04 executando minhas VMs em kvm / qemu. Tenho pausado manualmente minhas VMs (usando o virt-manager gui) e copiando a pasta / var / lib / libvirt para uma unidade USB externa em / mnt / usbexterno Isso obviamente está longe de ser ideal. Eu preciso de uma solução para executar um backup everynight.

Eu penso em usar um cron job com um script para pausar as VMs e copiar os arquivos para a unidade. Eu li em um fórum que eu poderia usar o virsh para salvar o estado da VM em um arquivo, mas eu não acho que é isso que eu preciso, já que eu quero um backup completo de tudo no caso do servidor ficar pronto!

Então, versão curta. Eu preciso de algo para executar um backup diário de minhas VMs para uma unidade USB externa, as VMs podem ser pausadas durante a noite. Não há GUI disponível no servidor.

Alguma sugestão ?


1
2017-12-19 13:39


origem


Seria uma vantagem se a solução pudesse apagar backups mais antigos quando o disco usb fica cheio ou não tem espaço para executar o backup. - Fernando


Respostas:


Se sua VM for denominada "FooVM", você poderá criar uma captura instantânea usando:

VBoxManage snapshot FooVM take FooVM_Snapshot1

Através da linha de comando, você pode configurar onde armazenar os instantâneos:

VBoxManage configvm FooVM --snapshotfolder /media/foostick/foofolder

No entanto, tome cuidado para que o disco rígido do UBS esteja disponível o tempo todo.

Você pode automatizar os backups usando tarefas agendadas. E não há necessidade de desligar as VMs.


1
2017-12-19 14:32



backups mais antigos também podem ser excluídos automaticamente: howtogeek.com/howto/ubuntu/… - Michael K
Mas ele não está executando o Virtualbox - Panther
Eu acho que vi algumas funções similares ao ler sobre o virsh, vou testá-lo e vamos ver :) - Fernando
oops :-D desculpe - mas talvez ajude alguém - Michael K


Demorei um pouco para voltar a isso, desculpe a todos que me deram dicas. Aqui está a solução que acabei com.

Como eu ainda não entendi o conceito de snapshot / restore snapshot (sim, eu sou meio grosso), eu fiz um script para deletar arquivos antigos, começando pelo link que Michael K fornecido, em seguida, procedeu a fazer uma pasta com a data de hoje na unidade usb, pausando todas as VMs ativas (absolutamente nenhuma necessidade de 100% uptime aqui, a empresa roda das 9h às 18h) e copiando todo o / var / lib / libvirt e, em seguida, retome as VMs e seja feliz.

Aqui está o roteiro.

#!/bin/bash

find /mnt/usbexterno/backup* -maxdepth 0 -type d -mtime +15 -exec rm -rf {} \;

virsh list | sed '1,2d' | cut -d' ' -f3>/tmp/vmlist

VMLIST=$(cat /tmp/vmlist)
set -- $VMLIST
for i in $VMLIST
do
    /usr/bin/virsh suspend $1
shift
done

mkdir /mnt/usbexterno/`date +backup-%Y-%m-%d`
cp -Rv /var/lib/libvirt /mnt/usbexterno/`date +backup-%Y-%m-%d`

set -- $VMLIST
for i in $VMLIST
do
    /usr/bin/virsh resume $1
shift
done
rm /tmp/vmlist

Se alguém tiver alguma dica sobre como eu poderia melhorar isso, por favor, seja meu convidado: D


1
2018-01-03 16:58





Eu consideraria compactar a VM antes de enviá-la, mas é exatamente isso que tenho feito.

Ah, você pode querer considerar salvar o arquivo xml também/etc/libvert/qemu/).


1
2018-03-12 20:02





Eu tenderia a concordar, embora sua estratégia de backup esteja funcionando, pode não ser a melhor.

IMO não há muito que é necessariamente exclusivo para uma máquina virtual e existem várias estratégias de backup disponíveis para você.

Vejo Guia do Servidor Ubuntu - Backups

A estratégia de backup varia dependendo de quais servidores você está executando. Em geral, em um servidor, faço backup de dados (como / var / www e bancos de dados), quaisquer arquivos de configuração que eu edito manualmente (mantenho uma cópia do arquivo original e do arquivo editado em / root) e uma lista de todos os pacotes instalados (você pode restaurar a partir de uma lista de pacotes, se necessário).

Como você pode adivinhar em algumas de minhas postagens, sou fã do rsync;)


0
2017-12-19 17:53