gnu/linux p2v e v2v para xenserver 6 - blog...

23
GERMANO DIAS LOIOLA FILHO [email protected] GNU/LINUX P2V E V2V PARA XENSERVER 6.5 02/07/2015

Upload: doxuyen

Post on 04-Dec-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

GERMANO DIAS LOIOLA FILHO [email protected] 

                    

GNU/LINUX P2V E V2V PARA XENSERVER 6.5 

                     

02/07/2015   

 

    

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 

    

    

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.    

    

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 

   

● 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 

   

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 

   

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.UTF­8 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 device­image 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. 

 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.UTF­8 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 device­image 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 linux­swap 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=65392864­0bc6­4132­88f9­03df755a8a9b /     ext4 errors=remount­ro   0 1 UUID=c7ecee54­6b59­458a­8306­45832aaece38 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/vmlinuz­2.6.18­398.el5 ro root=UUID=c97e4ef0­7bd6­436d­ac18­58f1ddc53a22  

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/initramfs­3.10.0­229.el7.x86_64.img /boot/initramfs­3.10.0­229.el7.x86_64.img.bkp 

 6. Criar uma nova imagem initrd: 

 mkinitrd ­­force /boot/initramfs­3.10.0­229.el7.x86_64.img 3.10.0­229.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 Hardware­assisted 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 kernel­xen  

2. Criar um backup da imagem initrd:  

mv /boot/initrd­2.6.18­406.el5xen.img /boot/initrd­2.6.18­406.el5xen.img.bkp  

3. Criar uma nova imagem initrd com os módulos Xen:  mkinitrd ­­omit­scsi­modules ­­with=xenblk ­­with=xennet ­­preload=xenblk /boot/initrd­2.6.18­406.el5xen.img 2.6.18­406.el5xen  

4. Editar o arquivo /boot/grub/menu.lst conforme abaixo:  default=0 title CentOS (2.6.18­406.el5xen)         root (hd0,0)         kernel /boot/vmlinuz­2.6.18­406.el5xen ro root=/dev/xvda1         initrd /boot/initrd­2.6.18­406.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 vm­list name­label=nois ­­minimal 

 

16 

9. Configurar os parâmetros da máquina virtual para habilitar a paravirtualização:  xe vm­param­set uuid=cce5655f­a1dd­b96e­ac7e­33f1248a4392 HVM­boot­policy="" xe vm­param­set uuid=cce5655f­a1dd­b96e­ac7e­33f1248a4392 PV­bootloader=pygrub xe vm­param­set uuid=cce5655f­a1dd­b96e­ac7e­33f1248a4392 PV­args="console=hvc0"  

10. Determinar o UUID do disco VBD da máquina virtual:  xe vbd­list vm­uuid=cce5655f­a1dd­b96e­ac7e­33f1248a4392 device=xvda ­­minimal  

11. Marcar o disco VBD como inicializável:  xe vbd­param­set uuid=aa9ebc8e­612c­9730­e035­1a7bb3c73b79 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:  apt­get ­y install linux­virtual linux­image­virtual linux­headers­virtual  

2. Criar uma nova imagem initrd com os módulos Xen:  echo "xen­blkfront" >> /etc/initramfs­tools/modules update­initramfs ­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 vm­list name­label=pesquisa ­­minimal 

 8. Configurar os parâmetros da máquina virtual para habilitar a paravirtualização: 

 xe vm­param­set uuid=0f12262f­7b43­486e­9a34­0ab00b3ccdbe HVM­boot­policy="" xe vm­param­set uuid=0f12262f­7b43­486e­9a34­0ab00b3ccdbe PV­bootloader=pygrub xe vm­param­set uuid=0f12262f­7b43­486e­9a34­0ab00b3ccdbe PV­bootloader­args="­­kernel=/boot/vmlinuz­2.6.38­16­virtual ­­ramdisk=/boot/initrd.img­2.6.38­16­virtual" xe vm­param­set uuid=0f12262f­7b43­486e­9a34­0ab00b3ccdbe PV­args="root=UUID=c37aa5f0­8e3f­4052­8ecb­1af0e5be756f ro quiet console=hvc0 xencons=hvc0"  

9. Determinar o UUID do disco VBD da máquina virtual:  xe vbd­list vm­uuid=0f12262f­7b43­486e­9a34­0ab00b3ccdbe device=xvda ­­minimal  

10. Marcar o disco VBD como inicializável:  

xe vbd­param­set uuid=83677d05­19ad­4107­c349­e7666d5f92fb 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 xs­tools.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: 

 update­rc.d ­f xe­linux­distribution remove update­rc.d xe­linux­distribution 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 

    

21 

12. REFERÊNCIAS  

● AWS Virtualization: HVM vs Paravirtualization http://palakonda.org/2012/10/30/aws­virtualization­hvm­vs­paravirtualization 

 ● Converting to Paravirtualized Guests or Installing Paravirtualized Drivers 

https://docs.oracle.com/cd/E27300_01/E27309/html/vmusg­vm­pv.html  

● Difference between Xen PV, Xen KVM and HVM? http://serverfault.com/questions/222010/difference­between­xen­pv­xen­kvm­and­hvm 

 ● 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/286471­installing­pv­mode­ubuntu­natty­narwhal­1104­on­xs­56­fp1 

 ● P2V Conversion of Linux Virtual Machine (for XenServer) 

http://blog.lewan.com/2011/04/14/p2v­conversion­of­linux­virtual­machine­for­xenserver  

● Paravirtualize an Ubuntu VM using XenServer https://www.cetic.be/Paravirtualize­an­Ubuntu­VM­using 

 ● Virtualização total e para­virtualização 

http://www.gta.ufrj.br/grad/08_1/virtual/Virtualizaototalepara­virtualizao.html  

● XenServer ­ Converting CentOS from HVM to PV ­ Guide http://zconkle.blogspot.com.br/2012/04/xenserver­converting­centos­from­hvm­to.html 

  

22