Migrando vms centos do citrix para o vmware

Recentemente fui contratado para dar apoio em um processo de migração do Citrix Xen Server 5x e 6x para o VMWARE ESX Server 5x. Basicamente o cliente tem VMs CentOS 5x e CentOS 6x para migrar, a equipe que estava migrando as VMs conseguia colocá-las no VMWARE mas na hora do boot as VMs não subiam.

Abaixo eu vou mostrar algumas dicas pós conversão para subir a VM no VMWARE com sucesso.

1. Conversion

Use o VMWARE Converter, pegue no site da VMWARE.

2. Boot

Tenha em mãos a ISO do CentOS 6x.

Associe a ISO do CentOS 6x a VM convertida - prefira colocar a ISO no datastore, é a melhor forma.

Se necessário entre nas configurações da VM, clique em Options, acesse o Boot Options, aumente o delay de inicialização para 1000 e clique em “Force BIOS Setup” para entrar na BIOS no próximo boot e definir a ordem de boot.

Dê um boot na VM, na BIOS defina a ordem de BOOT colocando o CDROM primeiro.

Dê outro boot, escolha o CD do CentOS 6x.

3. Rescue mode

Entrar em modo Rescue do CD

Sair para internet é pré-requisito neste cenário.

4. Partition

Acesse a partição montada e rode o chroot no diretório montado

# cd /mnt/sysimage
# chroot .

5. Kernel

Instale o kernel mais novo disponível

# yum install kernel -y

Se não houver pacote novo e você estiver no centos 6 rode

# yum reinstall kernel -y

Se estiver no centos 5 faça o seguinte

# yum remove kernel -y
# yum install kernel -y

No centos 5 o reinstall não fez a reinstalação como ocorre no centos 6.

6. GRUB

Vamos ajustar algumas coisas no grub para ter um boot com sucesso

# vim /boot/grub/menu.lst

Acesse a linha kernel da versão mais recente instalada e remova o trecho abaixo - caso exista

console=xvc0

Caso deseje ver as mensagens de inicialização remova o trecho

quiet

Confira se está apontando para o kernel certo, confira se a opção de kernel default aponta para o kernel mais novo, salve o arquivo!

7. Network

Como provavelmente já existia uma interface de rede configurada como eth0 - mas com outro MAC, será necessário atualizar o MAC da interface de rede eth0 no arquivo de configuração desta em /etc/sysconfig/network-scripts/ifcfg-eth0

# ip a s eth0|grep ether
# vim /etc/sysconfig/network-scripts/ifcfg-eth0

Atualize a linha HWADDR

HWADDR=00:0C:29:11:17:7F

Caso esteja migrando um CentOS 6, apague o arquivo /etc/udev/rules.d/70-persistent-net.rules - fique tranquilo ele será gerado no próximo boot.

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

Caso queira apenas atualizar o mac address dentro do 70-persistent-net.rules isso também funciona, eu apago pois prefiro que ele gere o arquivo novamente.

8. Inittab

Se estiver migrando um CentOS 5, remova ou comente a linha abaixo do /etc/inittab

co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav

E descomente as seguintes linhas

#1:2345:respawn:/sbin/mingetty tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6

Pronto!

9. Reboot

Agora dê um reboot na VM e acompanhe o carregamento.

10. Kernel Panic?

10.1 CentOS 5.x

Se estiver no CentOS 5 pode receber um kernek panic relacionado a não detecção do volume group, a mensagem seria como a abaixo:

No volume groups found"

E logo depois

"Kernel panic - not syncing: Attempted to kill init!"

Para resolver a questão, entre novamente no modo rescue (passo 3 e passo 4), edite o arquivo /etc/modprobe.conf e comente ou remova as linhas abaixo

alias scsi_hostadapter xenblk
alias eth0 xennet

E adicione as linhas abaixo

alias eth0 e1000
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
alias scsi_hostadapter2 ata_piix

Depois disto é preciso regerar a o initrd para que esses módulos utilizados dentro da imagem

cd /boot
mv initrd-2.6.18-398.el5 initrd-2.6.18-398.el5.old
mkinitrd -v --force-lvm-probe --force-raid-probe /boot/initrd-2.6.18-398.el5.img 2.6.18-398.el5

10.2 CentOS 6.x

Caso esteja com um kernel panic no centos 6, você pode regerar o initramfs com o dracut ao invés do mkinitrd (ele vai regerar todos os initramfs), repita os passos 3 e 4 e rode os comandos abaixo no /boot.

# dracut -f 

Caso queira ser específico quanto qual o initramfs quer regerar, veja o exemplo

# dracut -f /boot/initramfs-2.6.x32-xxx.el6.x86_64.img 2.6.32-xxx.el6.x86_64

E depois verifique se a vm vai iniciar.

11. Conclusão

Esse procedimento resolveu as dores de cabeça do cliente e da empresa contratada para fazer a migração do CITRIX para o VMWARE, podem haver outros ajustes, esses foram os que nós detectamos, em sua maioria ajustes simples e objetivos.

11.1 Incompatibilidade?

Alguns ténicos da empresa que estava migrando o CITRIX para o VMWARE me disseram que essa ‘imcompatibilidade’ entre VMWARE e CITRIX é “velha”" conhecida deles, eu por outro lado discordo, não existe nenhuma ‘incompatibilidade’, uma VM rodando no CITRIX pode ser migrada para o VMWARE, são necessários alguns pequenos ajustes devido a mudança de Hypervisor, nada além disto.

A incompatibilidade neste caso, foi na verdade, falta de experiência e falta de conhecimento de sistemas linux.

Fica a dica!

[s]
Guto