2. Monitores <strong>de</strong> máquinas virtuaisA virtualização <strong>de</strong> recursos computacionais é um conceitoque foi bastante difundido no início da década <strong>de</strong>70, permitindo o compartilhamento e melhor aproveitamentodo po<strong>de</strong>r computacional dos mainframes existentes[8]. Atualmente, fatores como aumento <strong>de</strong> <strong>de</strong>sempenhodos computadores atuais e utilização <strong>de</strong> ambientes interligadosimpulsionaram novamente a utilização <strong>de</strong> ambientesvirtualizados.Soluções <strong>de</strong> virtualização envolvem basicamente o uso<strong>de</strong> uma camada <strong>de</strong> software que permite que múltiplasmáquinas virtuais (possivelmente executando diferentes sistemasoperacionais) utilizem os recursos <strong>de</strong> uma dadamáquina real. O gerenciamento <strong>de</strong>stas máquinas virtuaisé <strong>de</strong> responsabilida<strong>de</strong> <strong>de</strong> um Monitor <strong>de</strong> Máquinas Virtuais.Um MMV oferece, aos diferentes sistemas executandosobre suas máquinas virtuais, a ilusão um ambiente real, semelhanteà arquitetura original do computador hospe<strong>de</strong>iro.A eficiência <strong>de</strong> um monitor é medida <strong>de</strong> acordo com sua intrusivida<strong>de</strong>na interceptação e manipulação das instruçõesvirtualizadas.Dentre as abordagens <strong>de</strong> implementação <strong>de</strong> monitores <strong>de</strong>máquinas virtuais, distingue-se os sistemas <strong>de</strong> virtualizaçãohospedada dos sistemas <strong>de</strong> virtualização clássica [15]. Emsistemas <strong>de</strong> virtualização hospedada, o monitor é instaladosobre um sistema operacional hospe<strong>de</strong>iro, e suas máquinasvirtuais são executadas sobre essa camada <strong>de</strong> software oferecida.Um exemplo <strong>de</strong> MMV que utiliza esse mo<strong>de</strong>lo <strong>de</strong>implementação é o sistema VMware [16].Em sistemas <strong>de</strong> virtualização clássica, o monitor <strong>de</strong>máquinas virtuais é uma camada instalada diretamente sobreo hardware, permitindo que a execução do monitorocorra com o mais alto nível <strong>de</strong> privilégio. Destaforma, as interrupções e chamadas <strong>de</strong> sistema solicitadaspelos sistemas operacionais virtualizados po<strong>de</strong>m serinterceptadas e manipuladas pelo monitor. Este mo<strong>de</strong>lo<strong>de</strong> implementação, tipicamente utilizado em mainframes,apresenta uma limitação perante aos computadores atuaisque utilizam arquiteturas semelhantes à IA-32, on<strong>de</strong> um sistemaoperacional, embora virtualizado, ainda consegue executarinstruções em um nível <strong>de</strong> maior privilégio.Para contornar esta limitação na abordagem <strong>de</strong>virtualização clássica, sistemas como Denali [17] e Xen [3]utilizam uma técnica conhecida como paravirtualização,on<strong>de</strong> a interface apresentada às máquinas virtuais difere ligeiramenteda interface real da arquitetura subjacente. Estaabordagem requer uma adaptação do sistema operacionalvirtualizado, particularmente para lidar com instruções queexecutariam com maior privilégio.3. Visão geral <strong>de</strong> XenXen [3] é um MMV <strong>de</strong> código aberto, com suporte aarquiteturas das famílias IA-32, AMD64 e EM64T, e quepermite usar Linux ou NetBSD como sistemas operacionaishospe<strong>de</strong>iros. Nestas arquiteturas, Xen utiliza a técnica<strong>de</strong> paravirtualização mencionada na seção anterior, permitindoa execução <strong>de</strong> múltiplos sistemas operacionais emum mesmo computador hospe<strong>de</strong>iro. Embora os sistemasoperacionais virtualizados precisem ser modificados parafuncionar sobre Xen, esta abordagem é eficiente e não requermodificações em aplicações que executam sobre asmáquinas virtuais. A virtualização oferecida através <strong>de</strong> Xenresulta em uma máquina virtual in<strong>de</strong>pen<strong>de</strong>nte do hardwareexistente, que po<strong>de</strong> ser encapsulada e migrada entre computadoresinterligados em re<strong>de</strong>. O restante <strong>de</strong>sta seção apresentaa arquitetura <strong>de</strong> Xen e suas ferramentas auxiliares,além <strong>de</strong> <strong>de</strong>screver o mecanismo <strong>de</strong> migração suportado poreste MMV.3.1. Arquitetura e ferramentasA arquitetura <strong>de</strong> Xen distingue dois elementos principais:o monitor <strong>de</strong> máquinas virtuais propriamente dito(também chamado hypervisor) e as máquinas virtuais queexecutam sobre o monitor (chamadas <strong>de</strong> domínios Xen). Omonitor tem acesso direto ao hardware e executa no modo<strong>de</strong> maior privilégio do processador, enquanto as máquinasvirtuais são impedidas <strong>de</strong> executar diretamente as instruçõesem modo privilegiado. Nesta arquitetura, um domínioespecial (chamado Domain0) é responsável pela criação,terminação e migração dos <strong>de</strong>mais domínios hospedados.Para isso, este domínio tem acesso a uma interface <strong>de</strong> controleoferecida pelo monitor.A interface oferecida pelo MMV inclui chamadas queos domínios hospedados <strong>de</strong>vem utilizar para execução <strong>de</strong>instruções e operações privilegiadas. Além disso, tem-seum mecanismo para notificação <strong>de</strong> eventos às máquinas virtuaise um mecanismo para transferência <strong>de</strong> mensagens <strong>de</strong>entrada e saída entre máquinas virtuais.Para virtualizar a memória física, o MMV particiona(reserva) estaticamente a memória entre os domínios, provendoassim um forte isolamento entre eles. Um domíniotambém po<strong>de</strong> convenientemente liberar memória para economizarrecursos, reduzindo assim sua reserva <strong>de</strong> memóriae <strong>de</strong>volvendo-a para Xen.O acesso à memória por parte dos domínios não sofreuma penalida<strong>de</strong> tão elevada como em outras técnicas<strong>de</strong> virtualização, como por exemplo a utilizada emVMware [16], que se utiliza <strong>de</strong> tabelas <strong>de</strong> páginas virtuais,invisíveis ao gerenciador <strong>de</strong> memória. Ao invés <strong>de</strong>virtualizar as tabelas <strong>de</strong> páginas, o MMV permite a todosos domínios o acesso somente <strong>de</strong> leitura ao gerenciador
<strong>de</strong> memória, enquanto o acesso para atualizações é feitoatravés <strong>de</strong> uma chamada ao hypervisor. Este, por sua vez,as valida antes <strong>de</strong> serem aplicadas, <strong>de</strong> modo a garantir o isolamentodas máquinas virtuais. Essa técnica aumenta consi<strong>de</strong>ravelmenteo <strong>de</strong>sempenho, pois diminui a complexida<strong>de</strong>no acesso à memória.O conjunto <strong>de</strong> ferramentas <strong>de</strong> administração oferecidaspor Xen permitem facilmente gerenciar todos os aspectosdo sistema. Através da ferramenta xm tem-seacesso a informações sobre o estado das máquinas virtuais,bem como à submissão <strong>de</strong> comandos, como checkpointe migração para outro computador.A instalação do sistema como um todo é relativamentesimples. Até o presente momento porém, as principaisdistribuições do sistema operacional Linux ainda não chegarama uma forma <strong>de</strong> instalação pré-compilada que possaser utilizada para a distribuição automática em diversoscomputadores simultaneamente, o que po<strong>de</strong> ser um empecilhopara implantação em clusters <strong>de</strong> computadores.Contudo, esta situação ten<strong>de</strong> a se resolver em um futuropróximo, <strong>de</strong>vido à rápida popularização <strong>de</strong> Xen.3.2. Migração <strong>de</strong> máquinas virtuaisXen implementa um mecanismo chamado <strong>de</strong> live migration[5], on<strong>de</strong> uma máquina virtual po<strong>de</strong> migrar <strong>de</strong> um computadorhospe<strong>de</strong>iro para outro sem que sua execução preciseser suspensa e reiniciada mais tar<strong>de</strong>. Para isso, a memóriada máquina virtual é copiada iterativamente para o computador<strong>de</strong> <strong>de</strong>stino, <strong>de</strong> modo a permitir que os serviços oferecidospelo sistema virtualizado continuem em execução.O mecanismo <strong>de</strong> live migration inicia com uma reserva<strong>de</strong> recursos (pré-cópia) no computador <strong>de</strong> <strong>de</strong>stino, seguida<strong>de</strong> uma transferência <strong>de</strong> dados iterativa e por <strong>de</strong>manda,on<strong>de</strong> somente são transferidos os dados alterados durantea última iteração realizada.Durante as iterações, o mecanismo <strong>de</strong> live migrationbusca i<strong>de</strong>ntificar uma condição on<strong>de</strong> a suspensão damáquina virtual e a ativação no computador <strong>de</strong> <strong>de</strong>stino resulteem um tempo <strong>de</strong> indisponibilida<strong>de</strong> mínimo. Caso nãoseja possível i<strong>de</strong>ntificar uma condição satisfatória para amigração e o número <strong>de</strong> iterações realizadas seja alto, aexecução da máquina virtual é suspensa e a migração é concluída,evitando que o tempo total <strong>de</strong> migração seja elevado.É importante mencionar que Xen não utiliza nenhummétodo <strong>de</strong> migração <strong>de</strong> sistemas <strong>de</strong> arquivos, supondo queos sistemas operacionais virtualizados utilizem um sistema<strong>de</strong> compartilhamento <strong>de</strong> arquivos tal como NFS. Alémdisso, para implementar a migração das conexões <strong>de</strong> re<strong>de</strong>,Xen optou pela difusão <strong>de</strong> um ARP reply [13] informandoque o en<strong>de</strong>reço IP da máquina migrada foi movido para umanova localização. Neste mo<strong>de</strong>lo <strong>de</strong> implementação não énecessário o redirecionamento <strong>de</strong> pacotes, diminuindo a <strong>de</strong>pendênciaresidual entre a máquina virtual migrada o computador<strong>de</strong> <strong>de</strong>stino.4. Xen e a virtualização em plataformas <strong>de</strong>computação <strong>de</strong> alto <strong>de</strong>sempenhoA utilização <strong>de</strong> soluções <strong>de</strong> virtualização em ambientes<strong>de</strong> computação <strong>de</strong> alto <strong>de</strong>sempenho tem sido explorada emdiversos trabalhos recentes. Huang et al. [9], por exemplo,apresentam uma solução <strong>de</strong> virtualização baseada em Xen,capaz <strong>de</strong> explorar eficientemente uma re<strong>de</strong> <strong>de</strong> interconexão<strong>de</strong> alto <strong>de</strong>sempenho tal como InfiniBand, além <strong>de</strong> proverum mecanismo escalável <strong>de</strong> gerenciamento <strong>de</strong> imagens <strong>de</strong>máquinas virtuais para utilização em aglomerados <strong>de</strong> computadores.Quetier et al. [14] apresentam uma análise sobre a escalabilida<strong>de</strong><strong>de</strong> arquiteturas virtualizadas em gra<strong>de</strong>s computacionais,on<strong>de</strong> diversos microbenchmarks foram executadosa fim <strong>de</strong> comparar quatro implementações <strong>de</strong> tecnologiasque oferecem virtualização <strong>de</strong> recursos. Nesta avaliação, omonitor <strong>de</strong> máquinas virtuais Xen apresentou um bom <strong>de</strong>sempenhoem diversos quesitos analisados, embora algumas<strong>de</strong>ficiências tenham sido i<strong>de</strong>ntificadas (por exemplo nacomunicação entre máquinas virtuais através da interfacevirtual <strong>de</strong> re<strong>de</strong>, po<strong>de</strong>ndo ter impacto sobre as aplicações emexecução).No trabalho <strong>de</strong>senvolvido por Figueiredo et al. [7]discute-se a aplicabilida<strong>de</strong> <strong>de</strong> soluções <strong>de</strong> virtualização emgra<strong>de</strong>s computacionais. Questões relativas às vantagens eformas <strong>de</strong> utilização <strong>de</strong> um ambiente virtualizado em gra<strong>de</strong>scomputacionais foram discutidas, analisando-se também asobrecarga da virtualização sobre as aplicações (neste casoutilizando-se VMware como solução <strong>de</strong> virtualização).Childs et al. [4] fazem um comparativo entre Xen e UML(User Mo<strong>de</strong> Linux) [6] para a hospedagem do serviço <strong>de</strong> conexãoao Grid-Ireland – que é composto <strong>de</strong> quatro servidores– em uma única máquina física. Neste trabalho concluiseque a sobrecarga imposta por Xen é suficientemente tolerávelface às vantagens da utilização <strong>de</strong> um ambiente virtualizadopara as unida<strong>de</strong>s <strong>de</strong> acesso à gra<strong>de</strong>.É importante mencionar que, <strong>de</strong>ntre os trabalhos analisados,não encontrou-se uma análise do impacto da migraçãosobre aplicações <strong>de</strong> alto <strong>de</strong>sempenho.5. Avaliação <strong>de</strong> <strong>de</strong>sempenho <strong>de</strong> XenOs testes apresentados ao longo <strong>de</strong>sta seção tiveramcomo objetivo avaliar a utilização <strong>de</strong> Xen em cenários característicos<strong>de</strong> ambientes <strong>de</strong> computação <strong>de</strong> alto <strong>de</strong>sempenho.Inicialmente, buscou-se quantificar a sobrecarga causadapelo monitor <strong>de</strong> máquinas virtuais sobre o tempo total<strong>de</strong> execução <strong>de</strong> uma aplicação <strong>de</strong> computação distribuída,