Marllus
Marllus Cientista da computação, doutorando em educação, mestre em políticas públicas, professor, poeta, escritor, artista digital e aspirante a tudo que lhe der na telha.

Instalar Xenserver Tools (xen-tools) em Debian 5 (Lenny) (HVM para PV)

Instalar Xenserver Tools (xen-tools) em Debian 5 (Lenny) (HVM para PV)

O tutorial de hoje é sobre como intalar o XenTools em uma VM Debian 5.0 (Lenny) em um Xenserver que não tem suporte a mesma (support guests), como ocorre a partir da versão 6.2.

Bem, instalar o xen-tools vai habilitar o administrador a realizar diversas operações com a VM, como gerenciar a network da mesma, monitorar o uso de memória RAM, realizar Xen Motion além de fornecer drivers para otimização de I/O de disco e rede.

As vezes, ocorre de você ter um sistema legado (ex. Debian 5.0), exportado de um outro hypervisor ou de uma máquina física, no seu ambiente de virtualização. Baseado nesse tipo de situação, deixo aqui um tutorial de como facilmente você pode instalar o xen-tools nessa VM e de quebra realizar a paravirtualização da mesma (HVM para PV).

Os passos a seguir mostram como instalar o xen-tools em um Debian 5 estando em um XenServer 7 – Dundee. Pode ser feito também em outras versões do XenServer, como 6.2 e 6.5.

Primeiro, vamos baixar o xen tools do XenServer 6.0 (Não é fácil encontrá-lo separado na internet, então instalei o mesmo e o peguei da pasta /opt/xensource/packages/iso/) e o coloquei em uma pasta pública para donwload. O link está abaixo:

https://dl.dropboxusercontent.com/u/4912938/xentools6.0.iso

Com a VM ligada, baixe o arquivo para dentro da mesma. Abaixo cito um exemplo usando wget:

# wget https://dl.dropboxusercontent.com/u/4912938/xentools6.0.iso

Após isso, monte o arquivo .iso:

# mount -o loop xentools6.0.iso /mnt

OBS: O diretório /mnt foi colocado como exemplo. Se tiver outro diretório onde queira montar, altere-o.

Entre no diretório de execução do script do xen-tools e execute-o:

# cd /mnt/Linux/

# ./install

O script vai gerar um informação na tela relatando que reconheceu o sistema operacional Debian 5.0 e que vai atualizar diversos arquivos, incluindo o kernel do sistema (que é um kernel paravirtualizado).

Pressione a tecla ‘y’ para confirmar a instalação e configuração.

Aguarde um instante e logo terminará a instalação. No final do relatório o testo irá relatar para reiniciar a VM.

NÃO REINICIE AINDA.

NÃO REINICIE AINDA.

NÃO REINICIE AINDA.

Se você reiniciar, o sistema não vai iniciar, pois ainda faltam configurações adicionais para o boot conseguir ser realizado.

Primeiro, entre no arquivo de configuração da inicialização do grub.

# vim /boot/grub/menu.lst

No meu caso, o script do xen-tools instalou o kernel 2.6.32-5-amd64,  e o mesmo adicionou como partição do arquivo initrd e kernel a /dev/hda1.

A forma que o XenServer utiliza para gerenciar dispositivos de bloco virtuais de VMs é a xvda/xvdb… ao invés de hda/hdb… ou sda/sdb…. É aí que surge o problema. Se você deixar /dev/hda, quando o boot da VM ocorrer ele tentará iniciar o kernel paravirtualizado 2.6.32-5-amd64 e não irá conseguir, pois o mesmo está referenciado por /dev/xvd*, por isso, temos que alterar no arquivo do grub.

A imagem abaixo é para mostrar como ficará o arquivo menu.lst.

Percebam o ‘root=/dev/xvda1’ para mostrar que o novo dispositivo de bloco que contém o kernel e initrd estão nesse dispositivo de bloco.

 

No kernel antigo (2.6.26-2-amd64) podem deixar como está, pois não mais precisaremos dele.

Saia e salve o arquivo:

Tecle Esc e digite:

:w!

Agora vá para o arquivo padrão de montagem de partições para atualizar o novo nome:

# vim /etc/fstab

Altere todas as linhas que contém /dev/hdx* por /dev/xvdx*.

OBS: Substitua o ‘x’ pela letra correspondente ao dispositivo de bloco correspondente e o * pelo número referente a partição.

No meu caso exemplo, o arquivo ficou dessa forma:

Salve e saia do arquivo:

Tecle esc e digite:

:w!

Agora, iremos alterar o console padrão do sistema (tty) para o padrão do XenServer (hvc):

Entre no arquivo /etc/inittab:

# vim /etc/inittab

Adicione a linha:

co:2345:respawn:/sbin/getty hvc0 9600 linux

antes da linha:

1:2345:respawn:/sbin/getty/ 38400 tty1

Agora tenha em mãos o uuid da VM (você pode vê-lo através do xencenter na aba _General _da VM no canto inferior.)

Abra o console do XenServer e digite os comandos abaixo:

Setar o novo kernel e initrd da VM:

_# xe vm-param-set uuid= PV-bootloader-args=”–kernel –ramdisk

_ No meu caso ficou assim:

# _xe vm-param-set uuid= PV-bootloader-args=”–kernel /boot/vmlinuz-2.6.32-5-amd64 –ramdisk /boot/initrd.img-2.6.32-5-amd64″_

Setar o local dos arquivos do kernel e initrd da VM:

xe vm-param-set uuid=_ PV-args=”root=/dev/xvdx* ro quiet console=hvc0″

_ No meu caso ficou assim:

_# xe vm-param-set uuid=____ PV-args=”root=/dev/xvda1 ro quiet console=hvc0″_

Setar o novo bootloader (grub) da VM:

_# xe vm-param-set uuid= PV-bootloader=pygrub_

Setar em branco o boot antigo (HVM):

# _xe vm-param-set uuid= HVM-boot-policy=””_

Pronto, após todos os comandos sem nenhum erro, você pode reinicializar a VM.

Caso ocorra tudo bem, quando a mesma estiver ativa, no xencenter na aba General veja seu estado de virtualização  (Virtualization state) e veja se está com status Optimized. Isso quer dizer que o xen-tools está instalado.

Para saber se a VM está rodando em modo PV, no campo “Virtualization mode” vai estar escrito PV. Caso esteja utilizando o XenServer 6.5 ou 6.2 digite o comando abaixo dentro da VM:

# dmesg egrep -i “xen front”

Se ela estiver em PV (paravirtualizada), as seguintes linhas aparecerão, dentre outras informações:

Booting paravirtualized kernel on Xen

blkfront: xvda: barriers enable

Initialising Xen virtual ethernet drive

Abaixo deixo o print da tela de opções que serão habilitadas com o xen-tools instalado:

Chegamos ao fim, enfim.

Grande abraço e qualquer dúvida poste nos comentários ou mande e-mail ([email protected]).

Se quiser ter acesso a uma série de tutorias sobre diversas funcionalidades do XenServer, acesse a página inicial do projeto: http://www.marllus.com/xenserver

Referências:

http://discussions.citrix.com/topic/307891-paravirtualizing-debian/

http://discussions.citrix.com/topic/151259-howto-convert-hvm-to-paravirtmanual-p2v-rhel5sles10sp1/

http://support.citrix.com/article/CTX121875

http://discussions.citrix.com/topic/259891-tut-debian-lenny-paravirtualization-with-xentools-updated/