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

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


Sobre o Xen - Introdução



Neste artigo explicarei de forma bastante objetiva o funcionamento, configuração e operação do Xen e como criar e administrar máquinas virtuais.

Para começar, vamos explicar o que é o Xen para entender o processo de paravirtualização e fazermos uma comparação com o modelo de virtualização total.

"O Xen é um dos mais populares exemplos de paravirtualização. Na virtualização total, o sistema operacional visitante tenta executar tarefas protegidas e, por estarem no espaço de aplicação do sistema operacional hospedeiro, não podem ser executadas. No entanto, o VMM intervém e executa ou simula a execução dessas, o que reduz o desempenho da virtualização total. Já a paravirtualização apresenta-se como uma alternativa a isso, na medida em que o sistema operacional visitante é modificado para não tentar executar diretamente na CPU as tarefas protegidas, mas entregar essas ao VMM. Este tipo de virtualização tem um ganho de desempenho significativo frente à total.

Uma das maiores vantagens do uso do Xen como VMM na paravirtualização é o fato de que este apresenta um desempenho melhor do que os produtos de virtualização total, quando a máquina física hospedeira não tem instruções de hardware de suporte a virtualização. No entanto, há a necessidade de que o sistema visitante seja portado para o Xen, o que não chega a ser uma desvantagem, já que os sistemas operacionais mais comuns no mercado têm versões para o Xen. Alguns dos sistemas suportados pelo Xen são Linux, FreeBSD e Windows XP.

A tecnologia de virtualização provida pelo Xen difere da tecnologia do VMWare. O Xen segue o conceito da paravirtualização, que fornece um conjunto de abstrações (processador virtual, memória virtual, rede virtual etc.) sobre o qual diferentes sistemas podem ser portados [7]. As abstrações não são necessariamente similares ao hardware da máquina física hospedeira.

Para entender como o Xen implementa a paravirtualização, é importante salientar dois conceitos: o de domínio e o de hypervisor. Os domínios são as máquinas virtuais do Xen. Essas podem ser de dois tipos, privilegiadas (domínio 0) e não-privilegiadas (domínio U). O hypervisor é o responsável por controlar os recursos de comunicação, de memória e de processamento das máquinas virtuais, mas não possui os drivers para manipular os dispositivos diretamente.

Quando a máquina hospedeira é iniciada, uma máquina virtual do domínio 0, privilegiado, é criada. Esse domínio acessa uma interface de controle e executa aplicações de gerenciamento. As máquinas virtuais dos domínios U só podem ser criadas, iniciadas e desligadas através do domínio 0. Na máquina virtual do domínio 0 é executado um Linux com núcleo modificado, que pode acessar os recursos da máquina física, já que possui privilégios especiais, e ainda se comunicar com as outras máquinas virtuais, domínio U.

O sistema operacional do domínio 0 tem que ser modificado para possuir os drivers de dispositivo da máquina física e dois drivers que tratam requisições de acessos à rede e ao disco realizadas pelas máquinas virtuais do domínio U. Em suma, só a máquina virtual do domínio 0 tem acesso direto aos recursos da máquina física, enquanto que as demais máquinas virtuais têm acesso a uma abstração dos recursos, que para serem acessados, as máquina virtuais dos domínios U têm que acessar através do domínio 0.
Linux: Paravirtualização com XEN
Para a virtualização da memória, o Xen reserva para cada máquina virtual uma determinada quantidade de memória, que pode ser alterada a qualquer momento sem a necessidade de terminar ou reiniciar a máquina virtual. Cada máquina virtual pode ter uma ou mais interfaces de rede virtuais. A comunicação entre as interfaces é implementada por dois token rings, um para enviar e outro para receber [7].

Atualmente o Xen conta também com um domínio no qual é feita a virtualização total, o que permite que sistemas operacionais não modificados sejam executados sobre o hypervisor Xen. Inicialmente, a escolha pela paravirtualização justificava-se pelo fato de que o ganho em desempenho era muito maior do que com a virtualização total. No entanto, com o advento das arquiteturas AMD-V e Intel VT, arquitetura que dão o suporte de hardware para a virtualização, a virtualização total passou a obter resultados de desempenho melhores que os da paravirtualização. Vale ressaltar que o domínio de virtualização total disponível no Xen a partir da sua versão 3.0, só pode ser usado nas máquinas hospedeiras que possuam suporte de hardware à virtualização."

Fonte: UFRJ

Utilização do Xen

O Xen pode ser empregado em diversas funções, por exemplo:
  • Consolidação de servidores
  • Virtualização da Infra-estrutura de TI
  • Laboratórios de ensino
  • Desenvolvimento de software

Como podemos observar, tem um potencial de uso enorme.

Agora vamos ao que interessa. Mãos à obra!

    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

Uma breve introdução ao Hydrogen

Aplicativos Linux para o dia-a-dia

VPN no CentOS 5 - via Yum

Migração de Software Proprietário para Software Livre em Instituição Pública

Eclipse no Debian pelo ambiente desktop (duplo-clique)

  
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