4.2 Ferramentas de Virtualização
XEN
O Xen é um monitor de máquina
virtual (VMM ou hypervisor), em software livre, para arquiteturas x86.
Originário de um projeto de pesquisa da universidade de Cambridge, sua primeira
versão foi criada em 2003, 4 anos antes de ser comprada pela Citrix System, em
2007.
O Xen apresenta uma solução para
virtualização um pouco diferente das apresentadas até agora. Ele consiste em
criar um hypervisor, responsável por controlar os recursos das máquinas
virtuais, mas que não possui drivers de dispositivos. Por isso, não é possível
rodar um sistema operacional diretamente no hypervisor.
Por isso, é necessário que um
sistema seja invocado para fazer a comunicação entre o hypervisor e os sistemas
hóspedes. Esse sistema inicial chama-se domínio 0. Ele consiste em uma máquina
virtual que executa um núcleo Linux modificado e possui privilégios para
acessar dispositivos de entrada e saída e as outras máquinas virtuais.
As outras máquinas virtuais,
onde podem rodar outros sistemas operacionais, são chamadas domínio U. Elas são
criadas, inicializadas e desligadas através do domínio 0. Possuem um driver
virtual para acesso aos recursos de hardware.
O
domínio 0 possui os drivers dos dipositivos da máquina física além de dois
drivers especiais que tratam as requisições de acesso à rede e ao disco
enviadas pelas máquinas virtuais. Assim, toda requisição de uso da máquina real
feita por uma máquina do domínio U deve ser tratada pelo domínio 0 antes de ser
enviada ao hypervisor.
Abaixo, componentes e arquitetura do Xen, segundo Carissimi, 2008:

Originalmente o Xen foi
desenvolvido com o objetivo de implementar a técnica de para-virtualização, e,
para isso, era necessário modificar os sistemas hóspedes para dar-lhes a
consciência de rodarem sobre um hypervisor. Essa estratégia foi tomada visando
ganhos em desempenho, mas limitou a difusão do Xen aos sistemas Unix, de código
aberto.
A partir da versão 3, o Xen
passou a implementar virtualização completa, podendo assim executar sistemas
operacionais não modificados como Windows e Linux. Isso só foi possível após a
Intel e a AMD lançarem suas arquiteturas com suporte para virtualização (Intel
VT e AMD-V, respectivamente).
A fim de continuar servindo
suporte a para-virtualização mas agora oferecer também virtualização completa,
o Xen dividiu os domínios U entre para-virtualizados (domínios U-PV) e
virtualizados (domínios U-HVM). Os domínios U-PV sabem que não tem acesso
direto ao hardware e por isso precisam de drivers específicos para acesso à
rede e ao disco.
Os domínios U-HVM, por não serem
modificados, iniciam tentando executar a BIOS. O Xen virtual firmware é um componente que simula uma BIOS com todos
os procedimentos normais de um boot. Depois, um daemon Qemu associado a uma U-HVM emula o hardware para que a
máquina virtual possa usar o disco e a rede.
A
figura a seguir ilustra um desktop virtualizado por um monitor de máquina
virtual Xen, mostrando a inicialização de uma máquina virtual executada em CentOs, em cima de outra
máquina Linux. Na janela preta está o gerenciador de máquinas virtuais, que
significa que esse nível é o domínio 0:
|
Top
| Next