sexta-feira, 24 de agosto de 2012

KVM - Clonando VMs

Um dos recursos mais úteis que um administrador pode ter num ambiente virtualizado é a possibilidade de clonagem de VM's (Virtual Machines). O principal uso da clonagem é ter perfis de máquinas template para criar máquinas rapidamente, sem necessidade de passar por todo o processo de instalação e configuração do novo sistema.

Assim, um administrador que precise lidar com a criação de diversas VM's constantemente, poderá ter um conjunto de máquinas predefinidas criadas somente para dar origem às máquinas que serão solicitadas. Um detalhe importante, que alguns esquecem, é que há a necessidade de manutenção nesses templates (atualizações principalmente), para evitar a instanciação de VM's com vulnerabilidades.

A clonagem pode ser utilizada também como uma forma de backup. Clone a máquina e armazene num storage ou em fita. Em caso de pane irrecuperável numa máquinas, podemos restaurar seu clone colocando-o rapidamente em produção.

O KVM dispõe de um utilitário de clonagem bastante simples e eficiente - o comando virt-clone. Digamos que temos uma máquina chamada vm1-template e desejamos criar uma vm a partir dela, chamada vm1-producao:

virt-clone --connect=qemu:///system \
           -o vm1-template \
           -n vm1-producao \
           -f /var/lib/libvirt/vm1-producao.img


O comando acima clonará a máquina template numa nova máquina, colocando-a no diretório indicado pelo parâmetro -f.

Após o processo, teremos uma máquina exatamente igual à primeira, portanto devemos ter cuidado antes de colocá-la em rede devido à possibilidade de conflito de IP. É importante editar a configuração da máquina clonada para que ela tenha "sua própria personalidade".

Em certos casos, pode haver falha para que a máquina acesse a rede, mesmo se configurarmos corretamente o IP. No Debian, é comum precisarmos remover a regra UDEV referente ao dispositivo de redes. Processo bastante simples. Inicie a máquina clonada, logue como root e execute o comando:

rm /etc/udev/rules.d/70-persistent-net.rules


Reinicie a nova VM, configure a rede e ela deverá funcionar normalmente.

Para fazer backups automatizados, é possível criar scripts que rodem via cron em momentos de menor uso (madrugada por exemplo) e transfiram os clone-backups para um ambiente seguro.

Um comentário: