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: 126.861 ]

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

Por que não migrar?

Instalando e utilizando o LimeWire no Debian

Servidor VoIP com Slackware e Asterisk

Instale já o Audacity na sua máquina!

Alternativas ao Microsoft Visio para Linux

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts