Fazendo backup de um servidor da VM para uma unidade USB externa

1

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 uma tarefa cron 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á interface gráfica disponível no servidor.

Alguma sugestão?

    
por Fernando 19.12.2011 / 14:39

4 respostas

1

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 snapshot / restore snapshot (sim, eu sou meio cabeçudo), eu fiz um script para deletar arquivos antigos, começando pelo link que Michael K fornecido, em seguida, passou a fazer uma pasta com data de hoje na unidade usb, pausando todas as VMs ativas (absolutamente nenhuma necessidade de 100% de tempo de atividade aqui, a empresa executa 9 am- 18:00), e copiando todo o / var / lib / libvirt lá, e depois retomar VMs e ser feliz.

Aqui está o script.

#!/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 
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 
shift
done
rm /tmp/vmlist

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

    
por Fernando 03.01.2012 / 17:58
1

Se sua VM for denominada "FooVM", você poderá criar um instantâneo 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.

    
por Michael K 19.12.2011 / 15:32
1

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

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

    
por Jeff 12.03.2012 / 21:02
0

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

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

Veja o 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 imaginar em algumas de minhas postagens, sou fã do rsync;)

    
por Panther 19.12.2011 / 18:53