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.685 ]

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

Brackets - Editor Open Source no Linux Mint e Ubuntu

Até onde é vantajoso o Cloud Computing?

Introdução à Solus Linux - Distro Independente

A importância do modo texto

Problemas no XMMS c/ RedHat 8.0

  
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