Paravirtualização com XEN

Há pouco tempo atrás iniciei um piloto para estudo dessa excelente ferramenta, o Xen. Encontrei muitos tutoriais em diversos canais, porém parcialmente eficientes. Assim sendo, reuni as informações de vários tutoriais e unifiquei nesse artigo, que funcionou perfeitamente em mais de três instalações que já fiz.

[ Hits: 127.883 ]

Por: Fernando Tadeu Dalla Marta em 19/10/2009


Criação da máquina modelo



Criaremos uma máquina modelo agora que será usada posteriormente.

# mkdir /modelo

Instale o debootstrap:

# aptitude install debootstrap

O debootstrap precisa de uma fonte de dados, que pode ser o CD-ROM do Debian ou uma URL da Internet. Para utilizar o debootstrap uma URL, execute o comando:

# debootstrap etch /modelo http://ftp.us.debian.org/debian

Copie alguns arquivos essenciais para dentro de /modelo:

# cp -a /etc/apt/* /modelo/etc/apt
# cp -a /etc/fstab /modelo/etc
# cp -a /etc/hosts /modelo/etc
# cp -a /etc/network/interfaces /modelo/etc/network
# cp -av /lib/modules/*xen* /modelo/lib/modules


"Enjaule-se" dentro do diretório /modelo com o comando:

# chroot /modelo

Obs.: Uma vez enjaulado, o /modelo passará a ser a raiz do sistema (/). Com isso o administrador estará operando dentro de um novo sistema, que deverá ser reconfigurado. Se a rede estava funcionando fora da jaula, continuará funcionando dentro da mesma e com o mesmo endereço IP.

Execute o comando:

# mount /proc

Obs.: Isso se faz necessário porque a partição /proc é montada pelo sistema durante o boot e não houve boot de sistema e sim enjaulamento.

Execute os comandos:

# aptitude update
# aptitude install locales libc6-xen


Defina as variáveis abaixo:

# export LC_ALL="pt_BR"
# export LC_CTYPE="pt_BR"
# export LANGUAGE="pt_BR"
# export LANG="pt_BR"
# export LC_MESSAGES="pt_BR"


Execute o comando abaixo para reconfiguração do locales:

# dpkg-reconfigure locales

Nas opções exibidas na tela, selecione "pt_BR ISO-8859-1" e clique em OK. Em seguida confirme a opção "pt_BR" e clique em OK.

Execute o comando a seguir para otimizar o sistema:

# aptitude install apmd less linuxlogo ntpdate rcconf

Instale o pacote module-init-tools:

# aptitude install module-init-tools

Atualize o sistema com o comando:

# aptitude upgrade

Remova os arquivos .deb utilizados até o momento para que a máquina modelo não fique muito grande:

# apt-get clean

Converta o arquivo de senhas de /etc/passwd para /etc/shadow com o comando:

# pwconv

Edite o arquivo /etc/hostname e altere o nome da máquina para "modelo".

Edite o arquivo /etc/hosts e altere o nome para "modelo" e ip da máquina para 192.168.1.3.

Edite o arquivo /etc/network/interfaces e altere o nome xen por eth0 para que as máquinas virtuais possam utilizar corretamente os adaptadores de rede. Ainda, remova as entradas bridge_ports e bridge_maxwait.

Renomeie o diretório /lib/tls para desabilitá-lo. Utilize o comando:

# mv /lib/tls /lib/tls.disabled

Edite o arquivo /etc/inittab e desabilite os terminais locais de 2 a 6 (lembra do que eu disse no início sobre só ter um terminal). A situação final será a seguinte:

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

Obs.: O Xen só utiliza um terminal. Assim sendo, a não desabilitação dos terminais excedentes causará mensagens de erro na tela.

Edite o arquivo /etc/profile e insira as linhas (no final):

alias ls='ls --color=auto'
export TMOUT=1200

Obs.: A linha "alias" proverá a facilidade de colorização dos resultados do comando ls. A linha export irá declarar a variável TMOUT. Com isso, após 1200 segundos (20 minutos) de inatividade no teclado, haverá um auto-logout. Isso aumentará o nível de segurança.

Edite o arquivo /etc/fstab e altere as entradas existentes para que fiquem compatíveis com as máquinas virtuais a serem criadas. Esse arquivo deverá referir-se a uma nova máquina que, normalmente, terá um esquema de partições próprio, começando em /dev/hda1. A seguir, um exemplo de configuração para a máquina modelo:

# <file system> <mount point> <type>  <options> <dump> <pass>
proc          /proc       proc     defaults    0     0
/dev/hda1     /           ext3     defaults    0     1
/dev/hda2     none        swap     sw          0     0 

Obs.: Não se preocupe com o fato de ter utilizado /dev/hda1 e /dev/hda2 e não saber o porque disso. Isto em nada tem haver com seus dispositivos físicos (reais), até mesmo se acaso tivesse, nós usaríamos algo como /dev/sd*, o que não é o caso. Na verdade, no momento em que a máquina virtual for configurada para ir ao ar, serão atribuídas ligações entre os dispositivos em questão e os volumes lógicos criados anteriormente. Assim sendo, no caso da máquina vm1, /dev/hda1 será correlacionado com /dev/vm/vm-virt01.raiz ou /dev/vm/vm-virt02.raiz. Já o /dev/hda2 será correlacionado com /dev/vm/vm-virt01.swap ou /dev/vm/vm-virt02.swap. Isso será configurado posteriormente.

Desmonte o diretório /proc com o comando:

# umount /proc

Saia da jaula com o comando:

# exit

Página anterior     Próxima página

Páginas do artigo
   1. Sobre o Xen - Introdução
   2. Requisitos e considerações
   3. Instalação e configuração
   4. Configuração da LVM para duas máquinas virtuais
   5. Criação da máquina modelo
   6. Criação das máquinas virtuais
   7. Configuração das máquinas virtuais
   8. Inicializando e gerenciando as VMs
   9. Comandos úteis do Xen
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Fazendo jus ao nome GNU/Linux

Instalando o Debian em uma máquina virtual (VirtualBox)

Arco Linux - Distro completa

Mplayer - Instalação e utilização

Librix 4.0 - Uma distro que não é para inglês ver - primeiras impressões

  
Comentários
[1] Comentário enviado por lord_roxton em 19/10/2009 - 10:43h

Artigo muito bom! O uso da virtualização hoje é um fato! E seu uso tende a crescer cada vez mais!

[2] Comentário enviado por removido em 19/10/2009 - 12:28h

Vale ressaltar que para melhor utilização de recursos da paravirtualização, é bom verificar se o processador da máquina real possui as instruções vmx (grep vmx /proc/cpuinfo)

[3] Comentário enviado por removido em 19/10/2009 - 16:05h

Legal.

[4] Comentário enviado por jorge.iwano em 19/10/2009 - 17:28h

Cara, muito bom.
Hoje utilizo citrix, com aquela licença free de 12 meses. Sabe-se lá o que vai acontecer depois desse prazo.
Estou pensando seriamente em migrar toda virtualização para Debian+Xen mesmo.

[]'s

[5] Comentário enviado por marcio.itpro em 31/12/2009 - 18:07h

Muito bom o artigo, uso CentOS ou Red Hat ja com a instalação preparada pra Xen, mesmo assim legal ressaltar isto no Debian.

[6] Comentário enviado por emersonr em 02/02/2010 - 13:23h

Um pequeno relato: Trabalho com XEN ha 2 anos em uma multinacional. Administro cerca de 75 máquinas virtuais XEN (RHEL), distribuidos em clusters de 2 nós cada (RHCS). Entre as VMs, temos cerca de 12 bancos de dados (Oracle), alguns com cerca de 1.5TB de dados.
Não tem como estar mais satisfeito com o XEN. Ele é estável, fácil de implementar e administrar.

Meus 2 centavos.

[7] Comentário enviado por dolivervl em 08/03/2010 - 22:17h

Eu uso o Xenserver da Citrix que é basicamente o XEN, mas infelizmente tive algumas dificuldades principalmente pq temos somente 2 servidores, encontramos alguns bugs. Como por exempo: Quando fizemos a transferência dos servidores da sede da empresa para o datacenter simplesmente não tinha mais o pool master, as máquinas se perderam e tive q dar alguns comandos para resolver.
Fora isso não nos dar muitos problemas, ainda estamos no começo do projeto com o Xenserver e temos somente 13 servidores nele. Mas com certeza não vou desligar os 2 servidores juntos nunca mais.

Obs.: Testei o VMware e fiz esse teste e não deu erro algum.

[8] Comentário enviado por dastyler em 13/05/2010 - 10:47h

Artigo conciso e muito bom. Explica facilmente o uso do Xen. Direto para os favoritos do site....

[]´s


[9] Comentário enviado por gostt em 19/05/2010 - 09:36h

Ola, muito bom seu artigo.

Eu estou usando o Lenny 64 5.03 para fazer a o host, ṕorem ele não tem a pasta /lib/tls, tem que renomear alguma outra pasta, ou o xen vai roda normalmente?
Abraços
PH

[10] Comentário enviado por wikerpaz em 18/12/2010 - 18:52h

Gostaria de tirar uma duvida quando vc fala:

"Edite o arquivo /etc/network/interfaces e altere o nome xen por eth0 para que as máquinas virtuais possam utilizar corretamente os adaptadores de rede. Ainda, remova as entradas bridge_ports e bridge_maxwait. "

Em qual parte eu altero em todos o s locais que tem o nome xen???


# The loopback network interface
auto lo
auto "xen"
iface lo inet loopback

# The primary network interface
allow-hotplug "xen"
iface "xen" inet static
address 10.10.0.15
netmask 255.255.240.0
network 10.10.0.0
broadcast 10.10.15.255
gateway 10.10.10.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 10.10.10.1
dns-search localnet.br
# bridge_ports eth0
# bridge_maxwait 0

[11] Comentário enviado por bitetti em 12/05/2011 - 09:03h

Kra parabens pelo artigo.
Reunio bastante informação, nem na comunidade brasileira do Xen eu achei elas tão centralizadas.

Eu estava bem inclinado a testar o Xen, mas nunca saia do lugar. Agora com seu artigo, a espectativa de férias e Ubuntu 11.04 pra instalar acho q vou experimentar finalmente.

Por curiosidade, apesar de eu já sabia q o xen entra antes do SO, sera q dá pra testar a instalação dele em uma máquina virtual completa como a VMWare ou VirtualBox ?

A pergunta bem sacana: Vc já testou rodar jogos numa VM do Xen ?

[12] Comentário enviado por amaica01 em 02/10/2011 - 11:17h

Parabéns pelo artigo, também instalei xen o debian, agora estou atrás de uma ferramenta web para administrar, estou tentando o eucalyptus, só que não consegui sair da instalação, alguém tem um tutorial bom do eucalyptus? ou similar?

[13] Comentário enviado por andersonnf em 01/05/2012 - 11:22h

Parabéns pelo artigo, também tenho procurado por material com XEN na internet pois é um assunto que muito me agrada, com certeza seu artigo será de grande valia. Obrigado, um abraço!


Contribuir com comentário