Backup de uma máquina virtual no XEN

Uma coisa que estava me encucando era como criar uma cópia de uma dada máquina virtual para que ela pudesse ser executada em outro servidor. Os motivos para isso talvez só sejam claros para quem já precisou, como eu. Por exemplo precisei migrar 4 VM de um servidor Xen que começou apresentar problemas de hardware, para que este equipamento pudesse ser levado a assistência.

Se as máquinas estivessem em um SAN, DAS ou outro storage seja lá qual fosse, poderia usar o recurso de Live Migration nativo do Xen, mas não era o caso e as máquinas estavam nos discos internos do servidor que era do tipo SAS, enquanto o outro servidor que possuía para migração usava discos SATA, ou seja, nada de mover os discos.

Era necessário então levar as DomU de outra forma. Veja o procedimento:

Backup

A primeira coisa a fazer é encerrar a máquina virtual DomU que será feito o backup para não termos problemas de arquivos abertos ou partição em uso. Em seguida faça o seguinte procedimento a partir do Dom0:

#Criar um ponto de montagem temporario
mkdir /mnt/disco
#Montar a partição raiz da máquina virtual
mount /dev/mapper/GV_VirtualMachine-vm005--disk /mnt/disco
# Entra no diretório onde a raiz foi montada
cd /mnt/disco
# Compacta os arquivos da máquina virtual
tar -cpzf /srv/vm005_raiz_20080822.tgz
# Desmonta a partição do DomU
cd .. && umount /mnt/disco

Não esqueça de mudar o caminho do dispositivo/volume onde está a sua máquina virtual. Caso não saiba qual é o volume, basta dar uma olhada no seu arquivo de configuração (procure pela linha disk) e observe ainda o nome e o caminho onde está sendo feita a compactação com com o comando tar.

Note que eu não fiz backup de outras partições. Se o seu DomU tiver outras partições, repita o mesmo procedimento. Lembre, no entanto, que não precisa ser feito o backup do swap já que é só recriá-lo no outro servidor. Também não esqueça de copiar o arquivo de configuração da sua DomU:

cp /etc/xen/vm005.cfg /srv

Feito isso o backup está pronto!

Restaurar

Para restaurar o DomU no novo servidor é preciso que primeiro se crie as partições/volumes com os mesmos nomes que existiam no servidor original. Isso vai poupar o trabalho de editar os arquivos de configuração de cada máquina veja que como os dados foram compactados do sistema de arquivos não é necessário que a nova partição tenha o mesmo tamanho, mas é recomendável que tenha o mesmo sistema de arquivos para evitar modificações no /etc/fstab do DomU.

#Cria os volumes lógicos
lvcreate -n vm004-disk -L 8G VG_VirtualMachine && lvcreate -n vm004-swap -L 128M VG_VirtualMachine
mkswap /dev/VG_VirtualMachine/vm004-swap
#Formata a Raiz
mkreiserfs /dev/VG_VirtualMachine/vm004-disk
#Criando um ponto de montagem
mkdir /mnt/disco
#Montando a nova Raiz
mount /dev/VG_VirtualMachine/vm004-disk /mnt/disco
#Entrando na Raiz
cd /mnt/disco
#Descompactando a máquina virtual
tar -xpzf /mnt/backup-remoto/vm004_raiz_20080818.tgz
#Desmontar a partição
cd .. && umount /mnt/disco

Feito!

Concluindo

O procedimento é simples embora um pouco trabalhoso, mas funciona.Pelo menos com as minhas DomU que rodam em modo PVM. Não sei se com máquinas HVM seria assim também, mas pode-se tentar.

Este procedimento não é novo e nem uma invenção minha. Alguns meses atrás eu já tinha visto algo a respeito, mas como não salvei os links não pude citá-los, mas só para não dizerem que irei tudo da cabeça no site Xen-br[1] tem algo como ponto de partida, como por exemplo o artigo do explicando como clonar máquinas virtuais[2].

[1] Projeto XEN-BR – http://www.xen-br.org
[2] Clonando máquinas virtuais no Xen – http://wiki.xen-br.org/index.php?title=CloneVM

4 comentários em “Backup de uma máquina virtual no XEN”

    1. Obrigado pela visita Willian.

      Certamente que é útil sim. Eu tive um problema com um dos discos onde estavam as minhas VMs e por sorte eu tinha realizado este procedimento de backup. Após providenciar outro disco todas as máquinas virtuais puderam ser restauradas e iniciadas sem problemas.

  1. Boa tarde amigo, primeiramente parabéns pelo post e pelo site, sei que o tópico é antigo, mas já está batendo o desespero e gostaria de ver se você consegue me dar uma luz.

    Tivemos uma queda de energia, que fez com o que servidor desligasse de forma abrupta. Quando foi reestabelicida a energia ligamos o servidor de forma normal. Porém quando fomos subir a máquina virtual Xen, esta não subiu. retornando um erro no final do processo.

    Você saber uma forma de transportar essa máquina virtual para um outro HD e de quebra outro servidor ? Ou talvez algum comando pra tentar recuperar esta máquina virtual ?

  2. Salve @Luiz ,
    A primeira coisa a fazer é saber se os arquivos da máquina virtual não estão corrompidos. Você terá que montar o volume lógico e acessa-lo a partir do Dom0. Se tudo estiver Ok, você pode desmontar novamente e então seguir este mesmo procedimento descrito aqui neste texto, ou ainda se preferir usar o comando dd para copiar todo o conteúdo do volume de forma bruta e então transferí-lo para o seu novo servidor.

    Caso os arquivos estejam corrompidos a situação fica mais complicada. Você terá que agir de acordo com a situação para resolver o problema ai cada caso é um caso. Mas uma vez que tudo esteja recuperado você volta ao ponto inicial de fazer o backup como está no texto ou usar o dd.

    abç

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.