Xen Hypervisor

Propaganda
UNIVERSIDADE FEDERAL DE SANTA CATARINA – UFSC
DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA – INE
BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO
Xen Hypervisor
Glauco Neves – 07132022
Guilherme Pacheco – 07232063
INE 5412 - 0432
Sistemas Operacionais I - Antônio Augusto Fröhlich
FLORIANÓPOLIS
NOV/2008
O que é Virtualização?
Em uma definição simples, virtualização é o processo de executar vários sistemas
operacionais em uma única máquina. Uma máquina virtual é um ambiente operacional
completo que se comporta como se fosse um computador independente. Com a
virtualização, um servidor pode manter vários sistemas operacionais em uso. [4]
Porque Virtualizar?
A motivação básica para a virtualização é o mesmo que para sistemas operacionais
multitarefa; computadores têm mais poder de processamento do que uma tarefa precisa.
Os primeiros computadores foram construídos para fazer uma tarefa. A segunda geração
foi programável; estes computadores podiam fazer uma tarefa e, em seguida, fazer
outra. No entanto, o hardware se tornou tão rápido que uma máquina poderia fazer uma
tarefa e ainda teria recursos disponíveis. Multitarefa tornou possível aproveitar esse
poder computacional não utilizado.
Muitas organizações têm vários servidores fazendo tarefas únicas, ou pequenos
clusters de tarefas afins. Virtualização permite que um número de servidores virtuais
sejam consolidados em uma única máquina física, sem perder a segurança adquirida por
terem ambientes completamente isolados. Várias empresas de servidores web agora
estão fazendo uso extensivo de virtualização, pois permite dar a cada cliente a sua
própria máquina virtual sem que seja necessária uma máquina física ocupando espaço e
dinheiro. [2]
Conceitos
Hypervisor é o monitor da máquina virtual, ele é executado no maior privilégio
possível, é responsável pela virtualização e controle dos recursos compartilhados pelas
máquinas virtuais, tais como, processadores, dispositivos de entrada e saída, memória,
armazenagem.
Sistema Operacional Visitante (Guest Operating System) é o sistema operacional
que é executado na máquina virtual. Similar a esse é o conceito de domínio.
Formas de Virtualização
A virtualização total tem por objetivo fornecer ao sistema operacional visitante uma
copia do hardware. Dessa forma, o sistema operacional visitante é executado sem
modificações sobre o monitor de máquina virtual (VMM), o que traz alguns
inconvenientes. O primeiro é que o número de dispositivos a serem suportados pelo
VMM é extremamente elevado. Para resolver esse contratempo, as implementações da
virtualização total usam dispositivos genéricos, que funcionam bem para a maioria dos
dispositivos disponíveis, mas não garantem o uso da totalidade de sua capacidade.
Outro inconveniente da virtualização total é o fato de o sistema operacional visitante
não ter conhecimento de que está sendo executado sobre o VMM, então as instruções
executadas pelo sistema operacional visitante devem ser testadas pelo VMM para que
depois sejam executadas diretamente no hardware, ou executadas pelo VMM e
simulada a execução para o sistema visitante. O último inconveniente da virtualização
total é o fato de ter que contornar alguns problemas gerados pela implementação dos
sistemas operacionais, já que esses foram implementados para serem executados como
instância única nas máquinas físicas, não disputando recursos com outros sistemas
operacionais.
Virtualização total na arquitetura x86.
A para-virtualização é uma alternativa à virtualização total. Nesse modelo de
virtualização, o sistema operacional é modificado para chamar o VMM sempre que
executar uma instrução que possa alterar o estado do sistema, uma instrução sensível.
Outro ponto positivo da para-virtualização é que os dispositivos de hardware são
acessados por drivers da própria máquina virtual, não necessitando mais do uso de
drivers genéricos que inibiam o uso da capacidade total do dispositivo.
Embora a para-virtualização apresentasse um ganho de desempenho significativo
frente à virtualização total, essa disparidade tem sido superada devido à presença de
instruções de virtualização nos processadores Intel e AMD, que favorecem a
virtualização total. [3]
Para-virtualização na arquitetura x86.
Xen
Xen é uma ferramenta de virtulização, que permite que os recursos de hardware da
máquina sejam virtualizados e dinamicamente particionados, admitindo a execução de
múltiplos sistemas operacionais visitantes.
Para garantir o sucesso do particionamento existem alguns desafios. Primeiro:
máquinas virtuais devem ser isoladas das outras, pois não é aceitável que a execução de
uma atrapalhe o desempenho da outra, isso devido ao fato de não se ter confiança nos
usuários do sistema. Segundo: é necessário dar suporte a uma gama de sistemas
operacionais para acomodar a variedade de aplicações populares. Terceiro: A
sobrecarga de desempenho que existe na virtualização deve ser pequena.
Já existem vários sistemas operacionais que foram portados para o Xen. Isso é
necessário devido à diminuição do privilégio que o sistema operacional vai ter ao rodar
sobre o hypervisor. No entanto são poucas as mudanças necessárias para isso.
Aspectos do Sistema
A figura a seguir mostra os três grandes aspectos do sistema: gerenciamento de
memória, CPU, e dispositivos I/O.
Interface paravirtualizada x86
Gerenciamento de Memória
Virtualizar a memória é, sem dúvida, a parte mais difícil da para-virtualização de
uma arquitetura, tanto em termos dos mecanismos necessários no hypervisor quanto nas
modificações necessárias para portar SOs hóspedes.
São seguidos duas decisões: (i) SOs hóspedes são responsáveis por alocar e
gerenciar as tabelas de página do hardware, com o mínimo envolvimento do Xen, para
garantir a segurança e isolamento, e (ii) Xen existe em uma seção 64MB, na parte
superior do cada espaço de endereçamento, como mostra a figura a seguir.
Cada vez que um SO visitante faz requisição de
novo processo é criado, ele aloca e inicializa uma
memória reservada e registra com o Xen. Os
endereçamento, que é reservado para Xen, não são
visitante.
uma nova tabela de página, um
página a partir da sua própria
64MB iniciais do espaço de
acessíveis ou remapeáveis pelo
CPU
Virtualizar a CPU tem várias implicações para os SOs visitantes.
Principalmente, a inserção de um hypervisor abaixo o sistema operacional viola a idéia
de que o SO é a entidade mais privilegiada no sistema. A fim de proteger o hypervisor
de erros do SO visitante, ele deve ser modificado para ser executado em um nível menor
privilégio.
O x86 tem quatro níveis de privilégio que permitem uma eficiente virtualização. Os
rings são numerados de zero (mais privilegiado) a três (menos privilegiado).
Normalmente o SO é executado no ring 0, porque nenhum outro ring pode executar
instruções privilegiadas, enquanto o ring 3 é geralmente utilizado para aplicativos. O
sistema operacional visitante é então modificado pra executar no ring 1, para que não
execute instruções privilegiadas e possivelmente prejudique outros SOs visitantes.
Instruções privilegiadas são para-virtualizadas, assim são avaliadas e executadas pelo
Xen. Exceções são tratadas pelo tratador de exceção que foi registrado no Xen, e que é
muito parecido com o tratador verdadeiro do x86.
Dispositivo I/O
Xen expõe um conjunto simples de abstrações de dispositivos. Para garantir a
proteção e isolamento, dados de I/O são transferidos de e para cada domínio através do
Xen, utilizando memória compartilhada, e um buffer anelar assíncrono mostrado a
seguir.
Anexos
Anexo 01: Caminho de um pacote enviado pelo domínio U.
Anexo 02: Configuração simples do Xen.
Anexo 03: Ciclo de vida de uma máquina virtual.
Anexo 04: As três camadas da memória do Xen.
Anexo 05: Sequência de ações em um buffer anelar.
Anexo 06: Interface hierárquica do Xen.
Referências
[1] BARHAM, Paul, DRAGOVIC, Boris, FRASER, Keir, HAND, Steven,
HARRIS, Tim, HO, Alex, NEUGEBAUERY, Rolf, PRATT, Ian, WARFIELD,
Andrew. Xen and the Art of Virtualization. Disponível em: <
http://www.cl.cam.ac.uk/research/srg/netos/papers/2003-xensosp.pdf > Acesso em 24
de novembro.
[2] CHISNALL, David. The Definitive Guide to the Xen Hypervisor. Pearson
Education, 2007.
[3] MATTOS, Diogo M. F. Virtualização: VMWare e Xen. Disponível em: <
http://www.gta.ufrj.br/grad/08_1/virtual/artigo.pdf > Acesso em: 24 de novembro.
[4] O que é virtualização e o que ela pode fazer pela minha empresa?
Disponível em: < http://www.hp.com/latam/br/pyme/solucoes/apr_solucoes_01.html >
Acesso em: 24 de novembro.
[5] Xen Inferface Manual. Disponível em: <
http://www.xen.org/files/xen_interface.pdf > Acesso em: 24 de Novembro.
Download