Beyond OS

Tecnologia em ambientes empresariais, focado em Software Livre e aquilo que der na telha

Subscribe to Beyond OS
Technorati
del.icio.us
29.set.2010

XEN: Clonando Máquina Virtual com vbd em LVM

postado por Renê Teixeira Francisco

Recentemente tive que fazer uma clonagem de uma máquina virtualizada com XEN, onde os vbd’s(Virtual Block Device) foram criados com LVM2. Vou postar as passos que fiz para conseguir isso.

Cenário

Tenho 2 Hosts Físicos virtualizadas com XEN no SLES 10, onde os vdb’s, para as máquinas virtuais  foram criados sobre o LVM2

Fazendo backup do VBD da máquina virtual  (Host 1)

1) Montando local de destino do arquivo de backup no Host XEN.

Tenho uma máquina windows que tem bastante espaço sobrando, então compartilhei uma pasta e joguei a imagem lá. Se você quiser pode gravar o backup no próprio host XEN.

hostxen1:/ # mkdir -p /media/storage

hostxen1:/ # mount.cifs //windowsxp/storage /media/storage -o user=renetf -p

password: (digite sua senha de acesso)

.

2) Criando snapshot da partição em LVM2 e fazendo o backup

Snapshot é uma grande funcionalidade do LVM. Com o snapshot é possível criar uma imagem fixa no tempo de uma partição em LVM enquanto a partição continua sendo usada, no meu caso, pela máquina virtual. Dessa forma eu posso fazer o backup da partição sem parar o servidor. Para a opção -L é preciso definir o tamanho do snapshot, este tamanho deve rodar em torno de 15% a 20% do tamanho da partição original, no meu caso a partição tem 10G então defini como 2G  o tamanho do snapshot.

hostxen1:/ # lvcreate -L 2G -s -n dbpartition1 /dev/system/partition1

hostxen1:/ # dd if=/dev/system/dbpartition1 |gzip -7 | dd of=/media/storage/partition1.gz

hostxen1:/ # lvremove /dev/system/dbpartition1

.

Restaurando a partição LVM e criando a máquina virtual (Host 2)

1) Restaurando backup da partição LVM

No host de destino refaça o passo 1 para montar a pasta remota onde foi gravado o arquivo do backup da partição. Em seguida use os comandos abaixo para restaurar a imagem na nova partição partition2.

hostxen2:/ # lvcreate -L 10G -n partition2 system

hostxen2:/ # cat /media/storage/partition1.gz | gunzip | dd of=/dev/system/partition2

.

2) Criando a máquina virtual

Rode o comando uuidgen para criar uma id única para a nova máquina virtual

hostxen2:/ # uuidgen

10d81d43-47d9-4796-9dd4-e706901e6b7a

.

Copie o arquivo da máquina virtual anterior e atualize o uuid. O arquivo de configuração da VM(Virtual Machine) deve ficar parecido com o código abaixo.

ostype=”sles10″
name=”vm_new”
memory=1024
vcpus=2
uuid=”10d81d43-47d9-4796-9dd4-e706901e6b7a”
on_crash=”destroy”
on_poweroff=”destroy”
on_reboot=”restart”
localtime=0
builder=”linux”
bootloader=”/usr/lib/xen/boot/domUloader.py”
bootargs=”–entry=xvda1:/boot/vmlinuz-xen,/boot/initrd-xen”
extra=” ”
disk=[ 'phy:/dev/system/partition2,xvda,w', ]
vif=[ 'mac=00:16:3e:53:a8:7a,bridge=xenbr1', ]
vfb=['type=vnc,vncunused=1']

.

Por último dê o comando para criar a máquina virtual.

hostxen2:/ # xm create vm_new

.
No meu caso eu desliguei a VM anterior antes de criar a nova, pois estava migrando de um host físico para outro. Caso não fizesse isso iria ter problemas pois as duas máquinas teriam o mesmo IP, para resolver isso deve-se alterar o arquivo de configuração de rede dentro da nova partição restaurada.

Por hoje é só, abraços.

Related Posts with Thumbnails

Posts Relacionados

  1. Wendel Ferreira Said,

    Renê Francisco, boa noite.

    Espero que esteja bem. Parabéns por este tópico, estou desenvolvendo um projeto na faculdade onde queria compartilhar algumas idéias com vossa pessoa. Tenho uma parte a se realizar que preciso fazer alguns passos parecidos com o que você descreveu. Sendo possível, conversamos por e-mail, msn ou skype.
    e-mail: wendelmineiro@yahoo.com.br
    msn: wend.el.1@hotmail.com
    skype: wendel.luis.bernardes.ferreira

    No aguardo, desde já agradeço.
    Boa noite.

  2. jogos Said,

    opa, obrigado pela excelente explicação

Comente

Performance Optimization WordPress Plugins by W3 EDGE