GNU/LINUX P2V E V2V PARA XENSERVER 6 - Blog...
Transcript of GNU/LINUX P2V E V2V PARA XENSERVER 6 - Blog...
SUMÁRIO
01. Objetivo ...…………………………………..…………………………………………...……. 04
02. Levantar Informações .....………………………………………………………………….... 06
03. Preparar Para a Clonagem ......…………………………………………………………….. 08
04. Criar Imagem de Disco ……………………………………………………………………... 09
05. Configurar Máquina Virtual …………………………………………………………………. 11
06. Restaurar Imagem de Disco ………………………………………………………………... 12
07. Editar Partições …………………………………………………………………………….... 14
08. Criar Imagem Initrd ………………………………………………………………………….. 15
09. Converter HVM em PVM ……………………………………………………………………. 16
10. Instalar XenServer Tools ……………………………………………………………………. 19
11. Realizar Testes ………………………………………………………………………………. 20
12. Referências …………………………………………………………………………………... 22
2
01. OBJETIVO Documentar o processo de migração de sistemas operacionais GNU/Linux, assim como seus serviços, aplicações e dados, para máquinas virtuais executadas em hypervisor XenServer 6.5. Este objetivo inclui documentar o processo de migração a partir de máquinas físicas, processo este conhecido como Physical to Virtual, ou P2V. Inclui ainda documentar o processo de migração a partir de máquinas virtuais executadas em outros hypervisors, processo este conhecido como Virtual to Virtual, ou V2V.
4
02. LEVANTAR INFORMAÇÕES Acessar o servidor GNU/Linux que será virtualizado com a conta de root e identificar as seguintes informações:
● Identificar o kernel em execução e a plataforma de hardware:
uname ri
● Identificar a configuração Xen existente no kernel em execução:
egrep 'PARAVIRT|XEN' /boot/config$(uname r) | egrep v '̂#' | sort u
● Identificar a distribuição GNU/Linux:
cat /etc/issue
● Identificar o nome do servidor. hostname
● Identificar quantos núcleos (cores) o processador possui:
○ Para servidores virtuais:
grep 'processor' /proc/cpuinfo | wc l
○ Para servidores reais consulte o modelo do processador no site do fabricante:
grep 'model name' /proc/cpuinfo | head 1
● Identificar a quantidade de memória RAM: grep 'MemTotal' /proc/meminfo free m
● Identificar os HDs e suas partições: lsblk fdisk l parted /dev/sda print
● Identificar se existem partições que podem ser reduzidas: df h
6
● Identificar informações de rede, como quantidade de interfaces, redes às quais as interfaces estão conectadas, endereços IP nas interfaces, endereço IP do gateway, e endereços IP dos servidores DNS:
ip addr ifconfig route n ip route list cat /etc/resolv.conf
● Identificar serviços ativos: netstat nlptu nmap sV p 192.168.0.1 nmap sU p 192.168.0.1
7
03. PREPARAR PARA A CLONAGEM As partições identificadas com espaço sobrando desnecessariamente devem ser reduzidas para economizar este espaço no storage do XenServer, conforme passos abaixo:
1. Reiniciar o servidor, inicializar através de um Linux Live CD, onde nenhuma partição do HD do servidor deve ser montada, e realizar login com o usuário root.
2. Reduzir o sistema de arquivos das partições identificadas para alguns gigabytes a menos
do que o tamanho final da partição: e2fsck f /dev/sda1 resize2fs /dev/sda1 30G
3. Reduzir o tamanho das partições identificadas. Confirmar com Yes quando solicitado: parted /dev/sda resizepart 1 35G
4. Estender o sistema de arquivos para o tamanho final das partições reduzidas: e2fsck f /dev/sda1 resize2fs /dev/sda1
5. Excluir partições swap:
swapoff a parted /dev/sda rm 2
8
04. CRIAR IMAGEM DE DISCO Após redimensionar as partições, vamos criar uma imagem do HD para depois clonálo em uma máquina virtual no servidor Xen, conforme passos abaixo:
1. Reiniciar servidor e inicializar através do CD do Clonezilla.
2. Na tela de boot do Clonezilla selecionar a opção padrão Clonezilla live (Default settings, VGA 800x600).
3. Selecionar a opção padrão en_US.UTF8 English.
4. Selecionar a opção padrão Don’t touch keymap.
5. Selecionar a opção padrão Start Clonezilla.
6. Selecionar a opção deviceimage para podermos fazer uma imagem do HD.
7. Selecionar a opção samba_server, pois em nossa rede armazenamos as imagens de HDs
em um NAS através de um compartilhamento Samba (SMB/CIFS).
8. Selecionar a interface equivalente à rede onde o NAS está conectado.
9. Selecionar a opção dhcp para configurar um endereço IP atrvés do protocolo DHCP possibilitando o acesso ao NAS.
10. Inserir o endereço IP do NAS 192.168.0.197 e selecionar OK.
11. Deixar a informação de domínio em branco e selecionar OK.
12. Inserir o usuário dolly, que é o usuário com acesso ao compartilhamento Samba no NAS, e
selecionar OK.
13. Inserir o diretório /clone, que é o compartilhamento Samba do NAS, e selecionar OK.
14. Selecionar a opção padrão auto como modo de segurança.
15. Selecionar OK para entrar a senha do usuário dolly do NAS.
16. Entrar com a senha do usuário dolly do NAS.
17. Teclar Enter para continuar.
18. Selecionar o modo padrão Beginner.
19. Selecionar a opção savedisk para criar uma imagem do disco inteiro.
20. Definir um nome para a imagem e selecionar OK.
9
21. Selecionar o HD identificado anteriormente, teclar Espaço para marcálo com um asterisco,
e selecionar OK.
22. Selecionar a opção padrão Skip checking/repairing source file system.
23. Selecionar a opção padrão Yes, check the saved image.
24. Selecionar a opção padrão Not to encrypt the image.
25. Teclar Enter para continuar.
26. Digitar y e teclar Enter para continuar.
27. Haverão algumas telas de progresso, aguardar todas elas terminarem.
28. Teclar Enter para continuar.
29. No final do procedimento selecionar a opção poweroff para desligar o servidor. Desligar o servidor manualmente caso não se desligue automaticamente.
10
05. CONFIGURAR MÁQUINA VIRTUAL Com a imagem criada do HD do servidor, vamos agora criar uma máquina virtual no XenServer, conforme os passos abaixo:
1. Através do XenCerter, selecionar o pool de servidores Xen, ou o servidor Xen específico, onde a máquina virtual será criada.
2. Selecionar o menu VM > New VM.
3. Na janela New VM, no passo Template, selecionar Other install media e clicar em Next.
4. No passo Name, inserir o nome do servidor e clicar em Next.
5. No passo Installation Media, selecionar o método de instalação Install from ISO library or DVD drive, selecionar a imagem ISO do Clonezilla e clicar em Next.
6. No passo Home Server, em caso de estar usando um pool de servidores Xen, definir se será utilizado um home server para esta máquina virtual e clicar em Next.
7. No passo CPU & Memory, definir o número de núcleos que o processador da máquina virtual terá no campo Number of vCPUs, escolher uma topologia de núcleos em Topology, definir a quantidade de memória RAM em Memory e clicar em Next.
8. No passo Storage, para adicionar um novo disco virtual, clicar em Add.
9. Na janela Add Virtual Disk, inserir um nome para o disco no campo Name, definir o tamanho do disco no campo Size e clicar em Add.
10. De volta à janela New VM clicar em Next.
11. No passo Networking, usar o botão Add para adicionar interfaces de rede à máquina virtual, ou em Properties para editar uma interface.
12. Em ambos os casos abrirá uma nova janela onde é possível escolher a rede à qual a interface deve estar conectada no campo Network e depois clicar em OK.
13. De volta à janela New VM clicar em Next.
14. Clicar em Create Now.
15. Selecionar a máquina virtual criada e clicar na guia Console.
11
06. RESTAURAR IMAGEM DE DISCO Com a máquina virtual criada no servidor Xen, vamos agora restaurar a imagem criada anteriormente dentro do HD desta máquina virtual, conforme os passos abaixo:
1. Na tela de boot do Clonezilla selecionar a opção padrão Clonezilla live (Default settings, VGA 800x600).
2. Selecionar a opção padrão para o idioma en_US.UTF8 English.
3. Selecionar a opção padrão Don’t touch keymap.
4. Selecionar a opção padrão Start Clonezilla.
5. Selecionar a opção deviceimage para podermos fazer uma imagem do HD.
6. Selecionar a opção samba_server, pois em nossa rede armazenamos as imagens de HDs
em um NAS através de um compartilhamento Samba (SMB/CIFS).
7. Selecionar a interface equivalente à rede onde o NAS está conectado.
8. Selecionar a opção dhcp para configurar um endereço IP através do protocolo DHCP possibilitando o acesso ao NAS.
9. Inserir o endereço IP do NAS 192.168.0.197 e selecionar OK.
10. Deixar a informação de domínio em branco e selecionar OK.
11. Inserir o usuário dolly, que é o usuário com acesso ao compartilhamento Samba no NAS, e
selecionar OK.
12. Inserir o diretório /clone, que é o compartilhamento Samba do NAS, e selecionar OK.
13. Selecionar a opção padrão auto como modo de segurança.
14. Selecionar OK para entrar a senha do usuário dolly do NAS.
15. Entrar com a senha do usuário dolly do NAS.
16. Teclar Enter para continuar.
17. Selecionar o modo Expert para podermos usar opções avançadas.
18. Selecionar a opção restoredisk para restaurar a imagem criada anteriormente.
19. Selecionar a imagem que foi criada anteriormente e selecionar OK.
20. Selecionar o disco xvda e selecionar OK.
12
21. Selecionar a opção icds Skip checking destination disk size before creating partition table, teclar Espaço para marcála com um asterisco, e selecionar OK.
22. Selecionar a opção padrão Use the partition table from the image e selecionar OK.
23. Selecionar a opção padrão p true Do nothing when the clone finishes e selecionar OK.
24. Teclar Enter para continuar.
25. Teclar Enter para continuar.
26. Digitar y e teclar Enter para continuar.
27. Digitar y e teclar Enter para continuar.
28. Haverão algumas telas de progresso, aguardar todas elas terminarem.
29. Teclar Enter para continuar.
30. No final do procedimento selecionar a opção poweroff para desligar o servidor. Desligar o
servidor manualmente caso não se desligue automaticamente.
13
07. EDITAR PARTIÇÕES Após restaurar a imagem do HD na máquina virtual foi necessário inicializar a partir de um Linux Live CD, onde nenhuma partição do HD do servidor deve ser montada, e realizar login com o usuário root, para reajustar partições e preencher o disco por completo, conforme passos abaixo.
1. Criar partição swap:
parted /dev/xvda mkpart primary linuxswap 39GB 42.9GB mkswap L 'swap' /dev/xvda2
2. Redimensionar demais partições para preencher todo o disco:
parted /dev/xvda resizepart 1 39GB
3. Estender o sistema de arquivos para o tamanho total da partição:
e2fsck f /dev/xvda1 resize2fs /dev/xvda1
4. Identificar o UUID das partições:
blkid
5. Montar o sistema de arquivos raiz em /mnt:
mount /dev/xvda1 /mnt
6. Editar o arquivo /mnt/etc/fstab para montar partições durante a inicialização do sistema
operacional a partir de seus UUIDs:
UUID=653928640bc6413288f903df755a8a9b / ext4 errors=remountro 0 1 UUID=c7ecee546b59458a830645832aaece38 none swap sw 0 0
7. Para o Grub Legacy, editar também as linhas iniciadas por kernel no arquivo
/mnt/boot/grub/menu.lst usando o UUID para identificar o sistema de arquivos raiz: kernel /boot/vmlinuz2.6.18398.el5 ro root=UUID=c97e4ef07bd6436dac1858f1ddc53a22
8. Reiniciar a máquina virtual inicializando pelo HD:
reboot
14
08. CRIAR IMAGEM INITRD Após restaurar a imagem do HD na máquina virtual, editar as partições, e inicializálo pela primeira vez, o sistema pode vir a entrar em modo de emergência, onde é realizado login com o usuário root automaticamente e não é pedido senha. Observe que nesta situação o sistema operacional não consegue detectar o HD. Para solucionar este problema é preciso novamente reiniciar a máquina virtual e inicializála através de um Linux Live CD, onde nenhuma partição do HD do servidor deve ser montada, realizar login com o usuário root, e seguir os passos abaixo.
1. Descobrir como o HD foi detectado pelo sistema operacional:
blkid fdisk l
2. Identificar partições e volumes lógicos LVM:
parted /dev/xvda print lvdisplay lvs
3. Montar os sistemas de arquivos /, /boot, /dev, /proc e /sys em /mnt:
mount /dev/vg/root /mnt mount /dev/xvda1 /mnt/boot mount bind /dev /mnt/dev mount bind /proc /mnt/proc mount bind /sys /mnt/sys
4. Mudar a raiz do sistema para /mnt:
chroot /mnt 5. Fazer backup do arquivo initrd original:
mv /boot/initramfs3.10.0229.el7.x86_64.img /boot/initramfs3.10.0229.el7.x86_64.img.bkp
6. Criar uma nova imagem initrd:
mkinitrd force /boot/initramfs3.10.0229.el7.x86_64.img 3.10.0229.el7.x86_64
7. Sair do chroot em /mnt:
exit
8. Reiniciar a máquina virtual inicializando pelo HD:
reboot
15
09. CONVERTER HVM EM PVM Após restaurar a imagem do HD na máquina virtual, editar as partições, e inicializar o sistema operacional com sucesso, pode acontecer do HD ser detectado como hda. Quando isso acontece significa que estamos em uma Hardwareassisted Virtual Machine, ou HVM. Uma HVM possui recursos importantes do XenServer desabilitados, impossibilitando realizar tarefas como Live Migration. Além disso, o sistema operacional de uma HVM possui um desempenho muito baixo, devido à camada de hardware virtualizado. Precisamos modificar a máquina virtual para que esta seja convertida em Paravirtualized Virtual Machine, ou PVM. VM com sistema operacional CentOS 5
1. Instalar o kernel Xen: yum y install kernelxen
2. Criar um backup da imagem initrd:
mv /boot/initrd2.6.18406.el5xen.img /boot/initrd2.6.18406.el5xen.img.bkp
3. Criar uma nova imagem initrd com os módulos Xen: mkinitrd omitscsimodules with=xenblk with=xennet preload=xenblk /boot/initrd2.6.18406.el5xen.img 2.6.18406.el5xen
4. Editar o arquivo /boot/grub/menu.lst conforme abaixo: default=0 title CentOS (2.6.18406.el5xen) root (hd0,0) kernel /boot/vmlinuz2.6.18406.el5xen ro root=/dev/xvda1 initrd /boot/initrd2.6.18406.el5xen.img
5. Modificar /etc/modprobe.conf para incluir os módulos Xen de rede e armazenamento. Qualquer módulo de hardware antigo deve ser removido: alias scsi_hostadapter xenblk alias eth0 xennet
6. Desligar o sistema da máquina virtual: shutdown h now
7. Fechar o XenCenter.
8. Acessar o terminal do servidor Xen e determinar o UUID da máquina virtual: xe vmlist namelabel=nois minimal
16
9. Configurar os parâmetros da máquina virtual para habilitar a paravirtualização: xe vmparamset uuid=cce5655fa1ddb96eac7e33f1248a4392 HVMbootpolicy="" xe vmparamset uuid=cce5655fa1ddb96eac7e33f1248a4392 PVbootloader=pygrub xe vmparamset uuid=cce5655fa1ddb96eac7e33f1248a4392 PVargs="console=hvc0"
10. Determinar o UUID do disco VBD da máquina virtual: xe vbdlist vmuuid=cce5655fa1ddb96eac7e33f1248a4392 device=xvda minimal
11. Marcar o disco VBD como inicializável: xe vbdparamset uuid=aa9ebc8e612c9730e0351a7bb3c73b79 bootable=true
12. Abrir o XenCenter.
13. Selecionar a máquina virtual, clicar em Start, selecionar a guia Console, e aguardar a inicialização do sistema operacional.
VM com sistema operacional Ubuntu 11.04
1. Instalar o kernel Xen: aptget y install linuxvirtual linuximagevirtual linuxheadersvirtual
2. Criar uma nova imagem initrd com os módulos Xen: echo "xenblkfront" >> /etc/initramfstools/modules updateinitramfs u
3. Determinar a localização dos arquivos de kernel e initrd: egrep 'vmlinuz|initrd' /boot/grub/grub.cfg | grep 'virtual'
4. Criar o arquivo /etc/init/hvc0.conf contendo as configurações de console do XenCenter: start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty 8 38400 hvc0
5. Desligar o sistema da máquina virtual: shutdown h now
6. Fechar o XenCenter.
17
7. Acessar o terminal do servidor Xen e determinar o UUID da máquina virtual: xe vmlist namelabel=pesquisa minimal
8. Configurar os parâmetros da máquina virtual para habilitar a paravirtualização:
xe vmparamset uuid=0f12262f7b43486e9a340ab00b3ccdbe HVMbootpolicy="" xe vmparamset uuid=0f12262f7b43486e9a340ab00b3ccdbe PVbootloader=pygrub xe vmparamset uuid=0f12262f7b43486e9a340ab00b3ccdbe PVbootloaderargs="kernel=/boot/vmlinuz2.6.3816virtual ramdisk=/boot/initrd.img2.6.3816virtual" xe vmparamset uuid=0f12262f7b43486e9a340ab00b3ccdbe PVargs="root=UUID=c37aa5f08e3f40528ecb1af0e5be756f ro quiet console=hvc0 xencons=hvc0"
9. Determinar o UUID do disco VBD da máquina virtual: xe vbdlist vmuuid=0f12262f7b43486e9a340ab00b3ccdbe device=xvda minimal
10. Marcar o disco VBD como inicializável:
xe vbdparamset uuid=83677d0519ad4107c349e7666d5f92fb bootable=true
11. Abrir o XenCenter.
12. Selecionar a máquina virtual, clicar em Start, selecionar a guia Console, e aguardar a inicialização do sistema operacional.
18
10. INSTALAR XENSERVER TOOLS Para completar a virtualização, possibilitando ao XenServer capturar informações da máquina virtual e executar algumas tarefas de virtualização extras, é necessário instalar o XenServer Tools, conforme os passos abaixo.
1. No XenCenter, selecionar a máquina virtual, e selecionar o item de menu VM > Install XenServer Tools para inserir a imagem xstools.iso no drive de DVD da máquina virtual.
2. Na janela de confirmação que se abre, clicar no botão Install XenServer Tools.
3. No console da máquina virtual, realizar a montagem da imagem:
mount /dev/cdrom /mnt mount /dev/xvdd /mnt
4. Instalar o XenServer Tools executando o script install.sh. Responder yquando a questão
Continue? [y/n] aparecer, aceitando as mudanças que serão aplicadas: /mnt/Linux/install.sh
5. Desmontar a imagem do XenServer Tools:
umount /mnt
6. No XenCenter, na guia Console, em DVD Drive 1, selecionar a opção <empty>.
7. Em distribuições Debian ou baseadas nela, como o Ubuntu, determinar os runlevels corretos de execução do serviço do XenServer Tools:
updaterc.d f xelinuxdistribution remove updaterc.d xelinuxdistribution defaults
8. Reiniciar o sistema operacional da máquina virtual:
reboot
19
11. REALIZAR TESTES
1. Verificar se o sistema operacional da máquina virtual é inicializado corretamente, chegando até o momento em que é solicitado o login de usuário.
2. Ferramenta utilizada para checar sistemas de arquivos ext2, ext3 e ext4. Necessário
reiniciar máquina virtual e inicializar através de um Linux Live CD, onde nenhuma partição do HD do servidor deve ser montada: e2fsck f /dev/xvda1
3. Testes de rede de dados e conectividade TCP/IP:
a. Identificar o gateway:
route n ip route list
b. Identificar os servidores DNS:
cat /etc/resolv.conf
c. Realizar testes de conectividade IP:
ping c2 192.168.0.254 ping c2 8.8.8.8
d. Realizar testes de resolução de nomes:
nslookup www.google.com.br dig www.google.com.br
4. Ferramentas que identificam os serviços de rede e seus processos apresentando portas
utilizadas para recebimento de conexões TCP ou UDP no sistema operacional da máquina virtual: netstat nlptu nmap sV p 192.168.0.1 nmap sU p 192.168.0.1
5. Testes de paravirtualização:
a. No XenCenter verificar se é possível visualizar informações sobre o sistema
operacional e endereço IP de interfaces de rede na máquina virtual.
b. No XenCenter verificar se é possível realizar o procedimento de Live Migration.
20
12. REFERÊNCIAS
● AWS Virtualization: HVM vs Paravirtualization http://palakonda.org/2012/10/30/awsvirtualizationhvmvsparavirtualization
● Converting to Paravirtualized Guests or Installing Paravirtualized Drivers
https://docs.oracle.com/cd/E27300_01/E27309/html/vmusgvmpv.html
● Difference between Xen PV, Xen KVM and HVM? http://serverfault.com/questions/222010/differencebetweenxenpvxenkvmandhvm
● Enabling the Paravirtualization Kernel of an HVM Linux Virtual Machine
http://support.citrix.com/article/CTX121875
● Installing PV mode Ubuntu Natty Narwhal 11.04 on XS 5.6 FP1 http://discussions.citrix.com/topic/286471installingpvmodeubuntunattynarwhal1104onxs56fp1
● P2V Conversion of Linux Virtual Machine (for XenServer)
http://blog.lewan.com/2011/04/14/p2vconversionoflinuxvirtualmachineforxenserver
● Paravirtualize an Ubuntu VM using XenServer https://www.cetic.be/ParavirtualizeanUbuntuVMusing
● Virtualização total e paravirtualização
http://www.gta.ufrj.br/grad/08_1/virtual/Virtualizaototaleparavirtualizao.html
● XenServer Converting CentOS from HVM to PV Guide http://zconkle.blogspot.com.br/2012/04/xenserverconvertingcentosfromhvmto.html
22