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.
- conversão basic
- usar discos thin
- versão 7
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
- Selecione Rescue installed system
- Selecione English como idioma default
- Selecione US como teclado
- Selecione ativar a rede (colocar um IPv4 na máquina e desligar IPv6)
- Selecione buscar discos
- Selecione montar discos em /mnt/sysimage
- Selecione iniciar o terminal do modo Rescue (ssh)
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