ESCOLA POLITÉCNICA
DEPARTAMENTO DE ELETRÔNICA E DE COMPUTAÇO
Estudo Comparativo de Té ni as de Virtualização
Autor:
Carlo Fragni
Orientador:
Prof. Otto Carlos Muniz Bandeira Duarte, Dr.Ing.
Examinadores:
Prof. Luís Henrique Ma iel Kosmalski Costa, Dr.
Miguel Elias Mitre Campista, D.S .
DEL
Desejo agrade er atodos quemepossibilitarameste momento.
Emprimeiro lugar, aos meus pais, que sempre mederam amor, me passaram valores
e me riaram dandosempre o melhorque podiam.
Àminhanamorada,quesempre onseguiumearran arum sorriso,mepresenteou om
inúmeros momentos felizes e om quem passareimuitos outros.
Àminhafamília,quesempremedeu atençãoe memotivouaseguir emfrentesempre
bus ando o melhor.
Aos meus amigos, que sempre estiveram ao meu lado e de quem tenho diversas boas
lembranças.
Aos meus professores, que dedi aram suas vidas ao saber e me ensinaram desde as
oisas mais simples até as mais omplexas, ontribuindo para que eu pudesse me tornar
um engenheiro.
AomeuorientadoreatodoogrupodoGTA,querapidamentemea olheram,tornaram
possívela onfe ção deste trabalhoe om os quais ertamente ompartilhareios avanços
rios para aobtenção do grau de Engenheiro Eletrni o e de Computação.
Estudo Comparativo de Té ni as de Virtualização
Carlo Fragni
Fevereiro de 2009
Orientador: Otto Carlos Muniz Bandeira Duarte
Departamento: Engenharia Eletrni a e de Computação
O presente trabalho trata do tema de Virtualização. Virtualização é uma área do
onhe imento, muitas vezes asso iada aSistemas Opera ionais, queestuda té ni as para
parti ionarumsistema omputa ionalfísi oemsistemas omputa ionaisvirtuais,osquais
ofere em um ambienteextremamentesimilar a um sistema omputa ionalreal.
Atualmente, a virtualização é uma área que re ebe investimentos emlarga es ala e é
onsiderada uma te nologia extremamente promissora. Segundo The Green Grid, grupo
formado por grandes empresas om o intuito de melhorara e iên ia das te nologias de
informação do ponto de vista ambiental, a virtualização é um fator have para obter a
sustentabilidade ambiental das infraestruturas de te nologia da informação. Conforme
Gartner, empresa maisrespeitada para onsultoria estratégi aemte nologia da
informa-ção, virtualização é uma das dez te nologias estratégi as para as empresas hoje.
Os usos orrentes da virtualização in luem onsolidar servidores ( omo os servidores
web ou de e-mail) em um úni o servidor físi o, desenvolver novas té ni as de simulação,
riar novas estratégias de segurança e robustez, fa ilitarodesenvolvimento de software e
muitas outras apli ações.
Neste trabalhosão abordados aspe tos fundamentais de virtualização, bem omo
al-gunsfundamentosdesistemasopera ionaisne essáriosparaa ompreensãodotemadeste
lização,um estudo de desempenhode algumasdas ferramentasexistentes e as on lusões
Virtualização
SistemasOpera ionais
Máquinas Virtuais
Hipervisores
VM : Virtual Ma hine;
VMM : Virtual Ma hine Monitor;
ISA : Instru tionSet Ar hite ture;
API : Appli ation Programming Interfa e;
RAM : Random A ess Memory;
IVT : Intel Virtualization Te hnology;
IBM: International Business Ma hines;
Resumo iv
Lista de A rnimos vii
Lista de Figuras xi
I Introdução 1
I.1 Es opo . . . 1
I.2 Motivação . . . 2
I.3 Objetivos deste trabalho . . . 3
II Virtualização 4
II.1 Introduçãoà Virtualização . . . 4
II.2 Con eitos Bási osde SistemasOpera ionais . . . 6
II.3 Con eitos Bási osde Virtualização . . . 11
IIITé ni as de Virtualização 15
III.1 Introduçãoàs Té ni as de Virtualização . . . 15
III.2.1 Máquinas Virtuais de Apli ação . . . 20
III.2.2 Máquinas Virtuais de Sistema . . . 21
III.3 Té ni as de Virtualização . . . 23
III.3.1 Para-Virtualização . . . 23
III.3.2 Virtualização Total . . . 24
III.4 Suporte de Hardware à Virtualização . . . 24
IVFerramentas de Virtualização 27 IV.1 Xen . . . 27
IV.2 VMWare . . . 29
IV.3 VirtualBox . . . 31
IV.4 User-Mode Linux . . . 34
IV.5 QEMU . . . 35
IV.6 Mi rosoft VirtualP . . . 36
V Comparação de Desempenho das Ferramentas de Virtualização 37 V.1 Testes de Desempenho de Ferramentas de Virtualização . . . 37
V.2 Problemas de Testes de Desempenho para Ferramentas de Virtualização e Soluções . . . 39
VIAlgumas Apli ações para as Té ni as de Virtualização 41 VI.1 NovasPossibilidadesAtravésda Virtualização . . . 41
VI.2 Consolidaçãode Servidores . . . 41
VI.4 ReproduçãodeAmbientesMulti-PlataformaePortabilidadedosAmbientes
de Desenvolvimento . . . 42
VI.5 Melhoria dos Pro edimentosde Segurançada Informação . . . 43
VI.6 Navegação naInternetMenos Exposta a Danos . . . 43
VI.7 Fa ilitara Gerên iade Laboratóriosde Informáti a para Ensino . . . 44
VIICon lusões 45
II.1 Organizaçãoda memóriaalo ada por um pro esso. . . 8
II.2 Exemplo simpli ado do haveamento de ontexto. . . 9
II.3 Exemplo de onguração de Máquina Virtual. . . 12
II.4 Camadas de um ambiente om Máquina Virtual. . . 14
III.1 Exemplo de máquina virtual de apli ação. . . 17
III.2 Exemplodeduasmáquinasvirtuaisde sistemasobreummesmohipervisor, uma hospedandoWindows e outrahospedando Linux.. . . 18
III.3 Exemplode máquinasvirtuais ominterfa esequivalentese ominterfa es distintas. . . 18
IV.1 Arquitetura doXen. . . 29
V.1 Comparaçãode desempenho entre VMWare,Xen e exe ução nativa [1℄. . . 38
V.2 Comparaçãoentreté ni asdevirtualização[2℄. Naesquerda,odesempenho rela ionado à ompilaçãodo nú leo doLinux. Na direita,a ompressãode aproximadamente700MB de dados om obzip2. . . 39
Introdução
O presente trabalho uida do tema de Virtualização. Virtualização é uma área do
onhe imento, muitas vezes asso iada aSistemas Opera ionais, queestuda té ni as para
parti ionarumsistema omputa ionalfísi oemsistemas omputa ionaisvirtuais,osquais
ofere emum ambienteextremamentesimilaraum sistema omputa ionalreal. A
asso i-açãoàáreade sistemasopera ionaisremeteàsuaorigem,avirtualizaçãofoidesenvolvida
nos anos 60 pela IBM para possibilitar a ompatibilizaçãode software legado om seus
novos mainframes.
I.1 Es opo
Este trabalhoéum estudosobre asté ni as de virtualização de omputadores, dando
ênfase às ferramentas de virtualização VMWare e Xen que atualmente são amplamente
utilizadas omer iale a ademi amente.
O estudo possui duas partes, uma de fundamentos e outra de apli ação. A parte de
fundamentos tem omo es opo detalhar os on eitos bási os de virtualização, sistemas
opera ionais e té ni as de virtualização. A parte de apli açãoenfatiza asferramentasde
virtualização, ompara o desempenho de algumas ferramentas entre si e mostra algumas
I.2 Motivação
A virtualização apresentainúmerosaspe tos vantajosos que justi amo interesse em
seuestudo. Porpossibilitarautilizaçãodeapli açõesemsistemasopera ionais,ouatéem
plataformas omputa ionais, diferentes dos para osquaisas apli açõesforam on ebidas,
a virtualizaçãoapresenta um enormeapelode ompatibilidadeeretro ompatibilidadede
sistemas, forne endo grande e onomia de tempo edinheiro ao evitar a ne essidade de se
refazer sistemas legado.
Para o desenvolvimento de sistemas, a virtualização também possibilita uma grande
e onomia de tempo e dinheiro. Isso o orre devido à extrema simpli açãoda instalação
de sistemasno liente, vistoqueoambiente omputa ionalutilizadoemdesenvolvimento
e que já está ongurado para exe utar a apli ação é portado junto à apli ação, o que
resume a instalação da apli ação a uma simples instan iação da máquina virtual que a
ontém.
Paraainfra-estruturadete nologiade informação(TI)deumaempresa, asvantagens
do uso de virtualização também são laras. Os serviços de TI de uma empresa são
tra-di ionalmente desenvolvidos para serem exe utados em servidores dedi ados, por razões
que variam desde as pe uliaridades de onguração do sistema que o serviço ne essita,
até asquestõesde disponibilidadede serviço e segurança. Utilizarum servidor físi o por
serviço en are e a manutenção, pois demanda maior equipe e tempo, além de poten ial
desperdí io de equipamentos, visto que a maioria dos servidores a o iosa durante a
maiorpartedotempo. Aouni arosserviçosde TIemumservidorfísi oexe utandoum
servidor virtual para ada serviço, onsegue-se obter o tão vantajoso isolamento de
ser-viços ombinadoa um melhor aproveitamento dos equipamentos eà ne essidade de uma
equipe menor de manutenção de TI, e onomizando signi ativamentetempo edinheiro.
A virtualização apresenta diversas outras apli ações e motivações para seu estudo,
omoporexemplo,apossibilidadede desenvolver softwares ujaportabilidadeindepende
daplataforma omputa ional,asa imades ritassãoapenasalgunsexemplosqueilustram
I.3 Objetivos deste trabalho
Estetrabalhotem omoobjetivoestudarosfundamentosne essáriospara ompreender
oque évirtualização, omofun iona,quaissão asté ni as existentes, quemas programa,
qual éo es opo do uso dessas ferramentas, quaistêm melhordesempenho eo porquê.
Para exibir as ara terísti as das ferramentas de virtualização aqui des ritas, foram
onsideradosdo umentos extraídosdos siteso iaisdasferramentas(manuaisde usuário,
manuaisdedesenvolvedor,whitepapers,et ),bem omoartigosdeanálisededesempenho,
ara terísti as eapli ações das mesmas.
No apítulo 2 são apresentados alguns aspe tos históri os da virtualização, algumas
apli açõese motivações para seu estudo, bem omo on eitos bási os e alguns on eitos
de sistemasopera ionais para fa ilitaro entendimento deste trabalho.
O apítulo3apresentaté ni asdevirtualizaçãobus andomostrarnãosomenteas
dife-renças arquiteturaisentre asdiversas té ni as, mas tambémasdiferençasde desempenho
emque estas a arretam.
O apítulo4detalhaalgumasferramentasdevirtualização,tornandopossíveluma
me-lhor ompreensãodas diferenças existentes ede quaissão as ferramentasmais adequadas
para ada enário de uso da virtualização.
O apítulo 5 apresenta um estudo de desempenho de ferramentas de virtualização
utilizadasno mer ado e nomeio a adêmi o.
O apítulo 6 apresenta algumas apli ações para virtualização tanto para utilizações
emgrande quanto empequena es ala.
Virtualização
II.1 Introdução à Virtualização
O on eito de máquina virtual não é re ente. As primeiras máquinas virtuais foram
desenvolvidas pelaIBM nadé adade 60paraumsistemaopera ionalexperimental
deno-minado M44/44X. Baseado neste sistema opera ional experimental, a IBM desenvolveu
diversossistemas omer iais om suporteàvirtualização, edentre estes omaisfamoso foi
o OS/370 [3℄. Naquela épo a era omum a utilização de mainframes e, para forne er a
ada usuárioum ambienteindividual ompleto, ondeelepudesse ter sistemaopera ional,
apli açõesedados isoladosdos ambientes de outros usuários,lançava-se mãoda
virtuali-zação, disponibilizando uma máquina virtual para ada usuário e obtendo assim o nível
de isolamentoe independên ia desejados.
Alémdisso,a virtualizaçãoera frequentemente utilizadapara portar sistemaslegados
para mainframes maisnovos. A utilizaçãodaté ni ade virtualização eraimpres indível,
visto que, naquela épo a, diferentes modelos de mainframes de um mesmo fabri ante
ostumavam possuir seu próprio sistema opera ional e arquitetura[4℄. Deve-se ressaltar
ainda que,até adé adade 80,o hardware era o responsávelda maiorparte do usto dos
sistemas omputa ionaisoquetornavamuitointeressanteparaosfabri antes dehardware
seus mainframes mais novos.
Nadé adade 80houve obarateamentodohardware eosusuáriospassaram apossuir
estações de trabalho individuais, fazendo om que a virtualização se tornasse um tema
menos relevante. A popularização dos omputadores também fez om que os sistemas
opera ionais onvergissem para pou as plataformas(Ma intosh, Unix e Mi rosoft) ada
uma omum públi o-alvoeapli açõesespe í as,oquetambémfez omqueoproblema
da virtualização perdesse importân ia.
Com o aumento do poder omputa ionaldos pro essadores mais re entes, a
dissemi-nação de sistemas distribuídos, a proliferação de redes de omputadores e o surgimento
e su essoda linguagem de programaçãoJava, oproblema da virtualizaçãovoltou aestar
em fo o.
Por diversas razões, omo o uso de sistemas opera ionais distintos e ongurações
espe í asde ambiente, amaioriadasapli açõesempresariaissãofeitaspararodaremem
um servidordedi ado, oque,até hoje, apresentava-se omoa melhoropção. Atualmente,
entretanto, devido a esse aumento da apa idade de pro essamento dos pro essadores
atuais, grande parte dos servidores empresarias am o iosos fazendo om que parte do
investimento em hardware seja desperdiçado. Dessa forma, existe hoje uma tendên ia
a virtualizar esses servidores om apa idade o iosa onsolidando-os em um úni o ou
pou os servidores, aproveitando melhoro uso dohardware, evitando assim o desperdí io
de re ursos. Além da e onomia em equipamentos, a onsolidação de servidores também
possibilitao orte de outros ustos omoo ustodoespaço físi oqueos servidoresfísi os
eliminadoso upariam,o gasto energéti o eo usto om refrigeração.
Outra apli ação para a virtualização é agilizar o desenvolvimento de softwares, pois
pode-se utilizar uma máquina virtual para o ambiente de desenvolvimento e outra para
o ambientede produção. Isto evitaerros de onguração noambiente, versõesdiferentes
de algum omponente eagiliza o pro esso de instalaçãoda apli ação.
Aseguir, serão expli adosalguns on eitos bási os sobreSistemas Opera ionais,
II.2 Con eitos Bási os de Sistemas Opera ionais
O Sistema Opera ional permite e ontrola o a esso das apli ações aos re ursos de
hardware. Segundo Silber hatz e Galvin [5℄, a denição lássi a de Sistema Opera ional
é de uma amada de software inserida entre o hardware e as apli ações que exe utam
tarefas para os usuários e ujo objetivo é tornar a utilizaçãodo omputador, ao mesmo
tempo,mais e iente e onveniente.
Essa utilização mais e iente do hardware é obtida através de diversos me anismos
para otimizar o aproveitamento dos re ursos omo pro essador, memória RAM, dis o
rígido, et .
Umdosprin ipaisme anismosparaobteresseusoe ientedohardwareéome anismo
de exe ução em multi-tarefas.
Antigamente, os omputadores possuíam SistemasOpera ionais que possibilitavama
exe uçãodeapenasumatarefaporvez. Dessamaneira,seumatarefaestivesse esperando
algum evento, omo entrada de dados por parte do usuário ou algum dado de outro
periféri o,pormaisquehouvesse outrastarefasparaserexe utadas emseguida,osistema
ava o ioso aguardando a o orrên ia do evento para prosseguir a exe ução da tarefa
orrente, resultando emgrande desperdí io de re ursos.
Com a introdução da exe ução em multi-tarefas, ada tarefa possui a ilusão de estar
exe utandosozinhano omputador,quandonarealidade,está ompartilhandoosre ursos
om as demais. Ao ser riada, a tarefa re ebe do Sistema Opera ional um pro essador
lógi oasso iadoaelaememóriavirtualpara seuuso. Para passarailusãode paralelismo
entre as tarefas, o nú leo do sistema opera ional onta om um es alonador de tarefas
que divide o tempo de exe ução do pro essador em fatias e é responsável por alternar a
exe uçãodas tarefas haveando rapidamenteospro essadores lógi ossobreopro essador
físi o a ada uma dessas fatias de tempo.
A utilizaçãomais onvenientedo hardware éobtida através de amadasde abstração
de entrada esaída.
Para exempli ar o uso dessas amadas de abstração pode-se utilizar o on eito de
driver. Driver é uma amada de software que disponibiliza interfa es lógi as para o
uso de dispositivos de hardware. Com o uso de drivers, pode-se abstrair detalhes de
implementaçãodohardware a essadoeutilizarainterfa elógi adodriver paraefetuaras
tarefasdesejadas. Issoépossívelporqueasdiversasformasdeinteração omoshardwares
de diferentes modelos efabri antes são tratadaspelos drivers.
Outro exemplo de uso mais onveniente do hardware é o on eito de arquivos.
Ar-quivos não existem nos dispositivos de armazenamento omo dis os rígidos, CDs, DVDs
ou pen-drives, eles são uma abstração que fa ilita imensamente o uso da apa idade de
armazenagemofere ida pelo hardware.
Um on eito de suma importân ia para a ompreensão de Sistemas Opera ionais é
o on eito de pro esso. O pro esso é uma abstração que representa um programa em
exe ução, aunidadebási ade exe uçãotratadapeloSistemaOpera ional. Cadapro esso
é denido por uma região de endereçamento lógi o da memória que é omposta pelas
regiões de ódigo, dados, pilha e heap. A região de ódigo é a região de memória onde
estão armazenadas as instruções do programa. A região de dados é a região onde estão
armazenadasasvariáveisglobaisdoprograma. A regiãode pilhaarmazenaoendereço de
retorno das hamadas a funções, é utilizadapara a passagem de parâmetros das funções
e serve também para guardar as variáveis lo ais de uma função. Por último, mas não
menosimportante,aregiãodeheapéazonautilizadaparaarmazenarasvariáveisalo adas
dinami amente,ouseja,variáveisalo adasemtempodeexe ução. AguraII.1representa
a organizaçãoda memóriautilizadapor um pro esso.
Expli ando de maneira simpli ada, mas su iente para o es opo deste trabalho, a
exe ução de um pro essoé basi amente denida pordois registradoreslógi os asso iados
a ele. O primeiro registrador lógi o é o ontador de programa (Program Counter - PC)
e o segundo registrador lógi o é o apontador de pilha (Sta k Pointer - SP). O ontador
en-FiguraII.1: Organização damemóriaalo adaporum pro esso.
quanto o apontador de pilha indi a onde estão armazenados os endereços de retorno de
uma hamadadefunção,bem omoseusparâmetrosevariáveislo ais. Osistema
opera i-onal então, através de seu es alonador de pro essos e dispat her,mapeiaos registradores
lógi osPCeSPde adapro essoparaosregistradoresPC eSPdopro essadorreal,
ons-tituindoo haveamentode ontexto. Éeste haveamentode ontextos(ilustradonagura
II.2) que possibilita a exe ução de múltiplas tarefas, dando a impressão de paralelismo
das exe uções.
Outro on eito de suma importân ia da arquitetura de Sistemas Opera ionais é sua
onstrução em amadas hierárqui as om diferentes níveis de abstração e de interfa es.
Graçasaesta arquitetura em amadas, aevoluçãodos sistemas omputa ionais ontinua,
FiguraII.2: Exemplo simpli adodo haveamentode ontexto.
e software que os formam e suas relações. Essa estrutura hierárqui a permite diversos
níveis de abstração e interfa es bem denidas entre ada omponente. Assim, os
desen-volvedores de novos omponentes de hardware e software podem se abstrairdos detalhes
de tudo que se en ontra ao redor do omponente desenvolvido, sendo ne essário apenas
preo upar-se om asinterfa esdos omponentes que forne emserviços paraouque usam
serviços ofere idospelo omponenteemdesenvolvimento. Essa ara terísti aarquitetural
dos sistemas opera ionais é fundamental também para que as equipes que desenvolvem
ada omponentepossamtrabalharde formaindependenteegarantirofun ionamentodo
sistema nal omo um todo.
Emgeral, um sistema omputa ionalpossui quatro tipos de interfa es:
tambémé onhe ido omo System Instru tion Set Ar hite ture ou system ISA;
2. instruções de máquina não-privilegiadas. Este sub onjunto das instruções de
má-quina tambémé onhe ido omo User Instru tion Set Ar hite ture ou user ISA;
3. hamadas de sistema, também onhe idas omo hamadasao sistemaopera ional;
4. interfa e apli ativade programação,também onhe ida omoAppli ation
Program-ming Interfa e - API).
Como o próprio nome CPU diz, Central Pro essing Unit, oprin ipal omponente de
um omputador é o seu pro essador. Existem diversos pro essadores e ada um deles
possui o seu próprio onjunto de instruções de máquina que pode seguir um padrão.
A plataforma mais utilizada hoje é a plataforma Intel IA-32, também onhe ida omo
x86, que é implementada por diversos pro essadores de vários fabri antes omo Intel,
AMD e Via. Os softwares desenvolvidos são ompilados para utilizar um determinado
onjunto de instruções de máquina e, por esse motivo, um software desenvolvido para
a plataforma Intel IA-64 não irá fun ionar na plataforma Intel IA-32, por exemplo. O
onjunto de instruções de máquina é uma interfa e entre o hardware e software sendo
dividida em dois grupos: o das instruções privilegiadas,que sópodem ser exe utadas no
nívelde privilégiosmaisaltodaCPU,eodasinstruçõesnão-privilegiadas,quepodemser
exe utadas om níveis mais baixos de privilégiosda CPU. As instruções privilegiadasdo
onjuntode instruções de máquinasão exe utadas somentepelosistema opera ionale as
não-privilegiadas são exe utadas tanto pelosistema opera ional quanto pelas apli ações
do usuário.
As hamadas de sistema são disponibilizadas pelo sistema opera ional para a essar
re ursos que requerem nível mais alto de privilégio. Através delas, de forma indireta
e ontrolada pelo sistema opera ional, as apli ações de usuário onseguem a essar os
re ursos quedemandam ouso de instruçõesprivilegiadas, omo,porexemplo,a esso aos
dispositivos de entrada e saída. Este intermédio do sistema opera ional para a essar os
re ursos de hardware através das hamadas de sistema é fundamental para garantir que
que haja a exe ução de múltiplas tarefas mesmo om os programas sendo es ritos om a
losoa de que vãorodar sozinhosno omputador.
A interfa e apli ativade programação(API)é omposta pelas interfa es
disponibili-zadas porbibliote as. As bibliote as ostumam forne er o a esso indireto ede mais alto
nível às hamadas de sistema além de forne er fun ionalidades de altonível omumente
utilizadaspordesenvolvedores de software.
Após esta rápida revisão de alguns on eitos bási os de sistemas opera ionais, são
apresentados na seção seguinte alguns on eitos bási os de virtualização que farão uso
desses on eitos.
II.3 Con eitos Bási os de Virtualização
Nestaseçãosãoapresentadosalguns on eitosbási osimportantesparaa ompreensão
de oque é e omo fun iona avirtualização.
Éimportanteexporalgumasdeniçõessobreoqueévirtualização. Virtualizaçãoéum
on eito muito amplo e abstrato e possui diversas denições oerentes e que se apli am
de formamaisadequadaoumenosdependendo do ontextoemqueéapli ada. Dentro do
es opodeste trabalho, amelhordenição de virtualização éade que virtualizaçãoéuma
té ni a que permite parti ionar um sistema omputa ional físi o em diversos sistemas
omputa ionais virtuais denominados máquinasvirtuais. As máquinas virtuais forne em
um ambiente omputa ional ompleto extremamente similar ao de um sistema
ompu-ta ional físi o. Dessa maneira, ada máquina virtual pode possuir seu próprio sistema
opera ional, apli ações, dispositivosperiféri os, et [3℄.
SegundoPopekeGoldberg[6℄, umamáquinavirtualéuma ópiaisoladaee ientedo
hardware que se en ontra abaixo dela. Ainda segundo Popek e Goldberg, essa denição
impõetrêspropriedadesqueumprogramaresponsávelpelo ontroledasmáquinasvirtuais
deve satisfazer para ser onsiderado um monitor de máquina virtual (Virtual Ma hine
1. ae iên ia, que impõequeum sub onjunto estatisti amentedominantedas
instru-ções do pro essador virtual seja exe utado diretamente sobre o pro essador real,
sem requerer nenhuma intervenção domonitor de máquina virtual;
2. ontrole de re ursos, que impõe que o monitor de máquina virtual tenha ontrole
ompleto dosre ursos dosistema. Istorequerquesejaimpossívelqueumprograma
arbitrário rodando dentro de uma máquina virtual lo alizada a ima do monitor
de máquina virtual afete re ursos do sistema, omo por exemplo memória RAM
ou periféri os, que estejam alo ados para outra máquina virtual oupara o próprio
monitorde máquina virtual.
3. equivalên ia, que impõe que um monitorde máquina virtual disponibilize aos
pro-gramasumambientequesejaessen ialmenteidênti oaoprovidopelamáquina
origi-nal. Formalmente,qualquer programa"P"exe utando omum monitorde máquina
virtual residente na memória, om somente duas ex eções possíveis, deve agir de
maneiraindistinguíveldamaneira omo agiria no aso do monitorde máquina
vir-tual não existir, em que "P"teria a esso às instruções privilegiadas previstas pelo
programador. As duas ex eçõespossíveispara o prin ípioda equivalên iaresultam
dadisponibilidade de re ursos e de dependên ias temporais.
Umexemplo de onguração de máquina virtual en ontra-se na guraII.3.
Denições mais re entes de virtualização ompreendem também a virtualização de
re ursos de software e não somente os de hardware previstos nas denições lássi as de
virtualização.
Segundo Singh[7℄, virtualização é um framework ou metodologia para dividir os
re- ursos de um omputador emmúltiplosambientes de exe ução, utilizando,para isso, um
ou mais on eitos e te nologias omo parti ionamento de software e hardware,
ompar-tilhamento de tempo, simulação ompleta ou par ial da máquina, emulação e qualidade
de serviços. De forma mais práti a, virtualização pode ser denida omo um onjunto
de té ni as que permitemparti ionar um úni o sistema omputa ional em vários outros
isolados e independentes. Cada um desses sistemas omputa ionais originados do
parti- ionamento do original forne e um ambiente, denominado máquina virtual, que estende
ousubstituiasinterfa esexistentes de formaaimitaras ara terísti ase omportamento
de um outro sistema omputa ional.
Éimportanteressaltarque,dentrodo ontexto de virtualização,existe uma
lassi a-ção para ossistemas omputa ionais quanto aos re ursos forne idos/utilizados. Sob esta
óti a, um ambientede máquinavirtual possui três partes distintas:
1. o sistema omputa ionalque forne e osre ursos aserem virtualizados denominado
sistema real, nativo,hospedeiro ouainda host system;
2. a amadade virtualização que onstróias interfa es virtuais apartir das interfa es
reais,efetuandoa onversãodeinstruçõesquandone essário,denominadahipervisor
oumonitor de máquina virtual (Virtual Ma hine Monitor - VMM);
3. o sistema omputa ional que utiliza os re ursos no ambiente virtualizado
denomi-nado sistema onvidado, hóspede ou aindaguest system.
A guraII.4 ilustra astrês partesdessa lassi ação:
Existemdiversas té ni asde virtualização, onformeédetalhadonopróximo apítulo,
e os re ursos virtualizados dependem de qual ponto que a virtualização será inserida
FiguraII.4: Camadas de um ambiente om Máquina Virtual.
Paragerarumamáquinavirtual apazdesuportarum sistemaopera ional, por
exem-plo, é ne essário virtualizar o onjunto de instruções de máquina do pro essador. O
sistema opera ionalé feito espe ialmente para utilizar a system ISA e user ISA de uma
plataformaespe í adehardware, omoporexemplo,aIntel IA-32(x86). Porisso,a
má-quina virtual que forne er a ISA aosistema opera ional onvidado deverá disponibilizar
a ISA do pro essador físi o tomando o uidado de lidar om as requisições de a esso ao
hardware queutilizem re ursos ompartilhadospelos sistemas onvidados e pelomonitor
de máquinavirtual.
Um outro ponto da arquitetura de um sistema omputa ionalque é interessante
vir-tualizar é o topo de um sistema opera ional, que forne e às apli ações as interfa es de
programação apli ativa (Appli ation Programming Interfa e - API) e hamadas de
sis-tema. Um exemplo de ferramentade virtualização queutiliza esta abordagemé o Wine,
que permite exe utar apli açõesfeitaspara Windows no ambiente Linux.
Osdois exemplos de pontos da arquitetura de um sistema omputa ionalonde
pode-se inserir uma amada de virtualização servem só para demonstrar algumasdas diversas
Té ni as de Virtualização
III.1 Introdução às Té ni as de Virtualização
Dependendode ondeseen ontradentrodaarquitetura dosistema omputa ional,um
software pre isa de distintas interfa es para seu orreto fun ionamento. Em de orrên ia
dessesdiversospontosdaarquiteturaondeosoftware podeestarlo alizadoedasinterfa es
disponíveis nesses pontos, existem diferentes té ni as de virtualização de forma a suprir
os re ursos esperados.
Umsistemaopera ionalédesenvolvidoparaumadeterminadaplataformadehardware,
omo Intel IA-32 (x86) ou Intel IA-64. Dessa forma, para seu orreto fun ionamento, o
sistema opera ionalpre isa utilizaro onjuntode instruções de máquina (privilegiadase
não-privilegiadas)paraoqualfoidesenvolvido. Porisso,quandoavirtualizaçãoéapli ada
entre ohardware e o sistemaopera ional, a máquina virtual deve proveras interfa es da
plataforma de hardware esperadas pelo sistemaopera ional.
As té ni as de virtualização podem ser apli adas para parti ionar o hardware físi o
em diversos hardwares lógi os, para emular um hardware diferente do verdadeiro, omo
disponibilizar um ARM virtual sobre uma plataforma x86 por exemplo, ou abstrair o
de programaçãoJava e C#.
III.2 Tipos de Máquinas Virtuais
Existem diversas amadas nos sistemas omputa ionais, o que gera diversas
possibi-lidades de implementação de máquinas virtuais om ara terísti as individuais de
iso-lamento, e iên ia, robustez, et . As máquinas virtuais possuem diversas lassi ações
propostas,fatojusti adopelos numerosos aspe tosrelevantes dasmáquinasvirtuais que
podem ser utilizados omo parâmetro de lassi ação. Dependendo da omplexidade
dos sistemas onvidados suportados, as máquinas virtuais podem ser divididas em dois
grupos[3℄:
•
Máquinas Virtuais de Apli ação (Pro ess Virtual Ma hines: são ambientes de má-quinas virtuais feitos para suportar apenas pro essos ouapli ações hóspedesespe- í os. A máquina virtual Java(Java Virtual Ma hine - JVM), apaz de exe utar
somente apli açõesJava, éum exemplo desse tipo de máquina virtual;
•
Máquinas Virtuais de Sistema (System Virtual Ma hines): são ambientes de má-quinas virtuais feitospara suportar sistemasopera ionais hóspedes ompletos, omapli ações hóspedes rodando sobre elas. A máquina virtual da ferramenta
Virtual-Box, apazdesuportar,entreoutros,osistemaopera ionalWindows,éum exemplo
deste tipo de máquina virtual.
As gurasIII.1 eIII.2 exempli am osgruposdesta lassi ação.
Outra lassi ação que pode ser efetuada para máquinas virtuais utiliza omo
parâ-metro de lassi ação o grau de semelhança entre o onjunto de instruções de máquina
(ISA) do sistemahóspede e dosistema hospedeiro[3℄:
•
interfa es equivalentes: o onjuntode instruções de máquina virtualizadoofere ido aoambientehóspede reproduz o onjuntodeinstruçõesdemáquinadosistemareal,Figura III.1: Exemplo de máquina virtual de apli ação.
tornando possívelque ossoftwares desenvolvidos para oambienterealsejam
exe u-tadosdentrodoambientevirtual. Comograndepartedasinstruçõesdemáquinado
sistema hóspede pode ser diretamente exe utada sobre pro essador real, o
desem-penho atingidopelas apli ações hóspedes pode hegar muito perto dodesempenho
atingido ao exe utar as mesmas apli ações diretamente sobre o sistema real. As
instruções que não podem ser exe utadas diretamente são as instruções sensíveis,
quepre isam ser monitoradasetratadaspelohipervisor paraquenão o orram
pro-blemasde usode re ursosalo adosparaoutramáquinavirtual ou,até mesmo,para
o própriohipervisor;
•
Interfa es distintas: o onjunto de instruções de máquina virtualizadoofere ido ao ambiente hóspede não possui relação om o onjunto de instruções de máquina dosistema real, ou seja, o onjunto de instruções de máquina virtualizado deve ser
interpretado pelo monitor de máquina virtual e onvertido em instruções para a
plataforma real. Essa interpretação e onversão de instruções por parte do
hiper-visor possibilitam, por exemplo, exe utar programas para uma plataforma ARM,
FiguraIII.2: Exemplo de duas máquinasvirtuais de sistemasobreum mesmohipervisor,
uma hospedandoWindows e outra hospedando Linux.
dohipervisor impa tandono desempenho dosistema hóspede.
A gura III.3 exempli a a estrutura dos sistemas omputa ionais dos dois grupos
desta lassi ação.
Figura III.3: Exemplo de máquinas virtuais om interfa es equivalentes e om interfa es
distintas.
Segundo Rosenblum[8℄, avirtualização pode ser lassi ada omo:
•
Virtualização do Hardware: quando o sistema físi o é exportado pela amada de virtualização omohardware abstratoesemelhanteaalgumreal. Qualquersoftwarees rito para aarquitetura real fun ionano sistema onvidado;
•
Virtualização do Sistema Opera ional: quando o sistema opera ional é exportado pela amada de virtualização omo um sistema opera ional abstrato semelhante aalgum real. Amáquina virtual exe uta apli açõesouum onjuntode apli açõesde
•
Virtualização de Linguagens de Programação: quando a amada de virtualização está lo alizadanotopodosistemaopera ional. As máquinasvirtuaisdessetiposãofeitaspara simular omputadores tí ios queservempara um propósito espe í o.
Nessa abordagem,a amadadevirtualizaçãoforne e asinterfa esdesse omputador
tí io para quesoftwares es ritos para elepossamser exe utados.
Otrabalhode NandaeChiueh[9 ℄ apresentamaisuma lassi açãopara virtualização:
•
Abstração da ISA: quando a virtualização é implementada através da emulação ompleta daISA.Oemuladorexe utaasinstruçõesdesejadas pelosistemahóspedetraduzindo as instruções da ISA virtual em instruções que possam ser exe utadas
sobre o pro essador real. Esta modalidade de virtualização possibilita o uso de
softwares em plataformas de hardware diferentes daquela para qual o software foi
desenvolvido mas, apresenta baixa e iên ia devido ao usto de tradução das
ins-truçõesembutido peloemulador;
•
Hardware Abstra tion Layer (HAL): quando o hipervisor disponibiliza uma arqui-tetura ompleta para o sistema hóspede, que a redita estar exe utando sobre umaplataformade hardware real;
•
OS Level: quando virtualização é obtida através de uma hamada de sistema es-pe í a. A prin ipalvantagem desta té ni a é obter uma amada para isolamentode pro essos, virtualizando ada sistema om IP e re ursos de hardware próprios,
mesmo que limitados. O isolamento o orre a partir de um diretório ou sistema de
arquivos separados e previamentepreparados para este uso;
•
Nívelde apli açãoouvirtualização de linguagens de programação: esse tipo de vir-tualização é feito por meio de uma abstração: a amada de exe ução. Apli açõesfazemuso dessa amadaparaexe utarasinstruçõesdesejadas. Este tipode solução
garante a exe ução da apli ação independente da plataforma de software ou
hard-ware,bastandosimplesmentequehajaapresençadeumamáquinavirtual,espe í a
•
UserLevelLibraryInterfa e: grandepartedasapli açõesdeumsistema omputa i-onalées ritaparautilizarum onjuntodeAPIsforne idaspelosistemaopera ional.A virtualização desta ategoria é obtida através da abstração do topo do sistema
opera ional, sendo que amáquina virtual forne e asinterfa es das APIs esperadas
à apli açãohóspede.
Nas duas subseções a seguir são formalizados os on eitos de máquinas virtuais de
apli açãoe máquinas virtuais de sistema.
III.2.1 Máquinas Virtuais de Apli ação
Umamáquinavirtualdeapli ação,também onhe ida omoPro essVirtual Ma hine,
tem a apa idade de exe utar um pro esso ou apli ação individualmente. Este tipo de
máquina virtual é riado sob demanda, no momentoque a apli açãohóspede é ini iada,
e é destruído no momento que a apli ação onvidada é terminada. Dentro do sistema
hospedeiro,a amadade virtualização(hipervisor)juntamente omaapli ação onvidada
são vistos omo um úni o pro esso, tratado da mesma maneira que os outros pro essos
do sistemahospedeiro esob asmesmas restriçõesimpostas aos outrospro essos.
Asmáquinas virtuais de apli ação ostumam ser implementadasporhipervisores que
permitem interações entre a apli ação hóspede e os outros pro essos do sistema
hospe-deiro. Além disso, não é in omum que este tipode hipervisor permita que as apli ações
onvidadas a essem o sistema de arquivos e outros re ursos do sistema hospedeiro. Este
tipo de hipervisor geralmente disponibiliza a mesma ISA do hardware real, permitindo
quea apli açãohóspedeexe ute instruçõesnãosensíveisdiretamentesobreopro essador
real, há também, entretanto, os hipervisores que disponibilizam uma ISA diferente da
ISAnativa,traduzindoasinstruçõesofere idasparainstruçõesnativas. Alguns exemplos
de máquinas virtuais de apli ação que disponibilizam a mesma ISA do sistema real são
os sistemas opera ionais multi-tarefas, os tradutores dinâmi os e alguns depuradores de
As máquinas virtuais de apli ação mais omuns atualmente são as que ofere em à
apli ação uma interfa e binária de apli ação ( Apli ation Binary Interfa e - ABI, ou
seja, a soma da user ISA e hamadas de sistema) diferente da utilizada pelo sistema
real. Um exemplo de ferramentaque forne e esse tipode máquinavirtual éo Wine, que
permite exe utar apli ações desenvolvidas para Windows de forma transparente sobre o
Linux (utilizando, in lusive,re ursos omo a GPU, Graphi s Pro essing Unit). Como o
Wine ofere e amesma API do Windows mas reimplementada,em ertas ir unstân ias,
o desempenho de apli ações exe utadas emLinux sobre o Wine hega a ser superior ao
desempenho obtido nativamente noWindows [10℄.
Também são omuns hoje as máquinas virtuais de apli açãoque forne em uma ABI
quenão orrespondeanenhumsistemareal. Esteéo asodaJVM (JavaVirtualMa hine)
que forne e a ABI de um sistema omputa ional tí io om o intuito de uniformizar a
ompilação de ódigo das apli ações es ritas em Java, favore endo assim sua
portabili-dade. O ódigo de máquina tí iogerado pelalinguagemJava édenominadobyte ode e
pode ser exe utado emqualquer plataforma que possua uma JVM implementada apaz
de traduzir as instruções da ABI deste sistema omputa ional tí io em instruções e
hamadasde sistemadosistema omputa ionalreal. Emboradopontode vistade
porta-bilidade esta abordagempossa pare er ex elente, do ponto de vista de desempenho esta
abordagemintroduz grandesobre argadevidoàne essidade de interpretaçãodobyte ode
e tradução para instruções e hamadas de sistema dosistema omputa ionalreal.
III.2.2 Máquinas Virtuais de Sistema
Máquinasvirtuais de sistema são ambientes ompletos om apa idade para suportar
um ou mais sistemasopera ionais ompletos om suas apli ações. Cada sistema
opera i-onal onvidado possui a impressão de estar exe utando sozinho sobre a máquina virtual
e ada um deles está isolado dos outros, rodando de formaindependente.
O isolamento entre as máquinas virtuais desse tipo é tão forte que, normalmente, os
utilizados para omuni ação entre omputadores físi os distintos, omo os me anismos
de rede. Alguns sistemas de virtualização, omo o VirtualBox e VMWare, entretanto,
possuemme anismospara ompartilhamento ontroladode determinadosre ursos, omo,
por exemplo, um diretóriovirtual.
Esse tipo de máquina virtual era utilizado na dé ada de 70 para o parti ionamento
dos mainframes em ambientes virtuais individuais para ada usuário. Hoje, este tipo
de virtualização volta a ter importân ia para situações omo onsolidação de servidores
quando há apa idadede pro essamento o iosa dos servidoresfísi os.
As lassi açõesdessetipode máquinas virtuaislevamem ontao graude
virtualiza-ção do hardware ea arquitetura das máquinas virtuais.
Quanto àarquitetura dos hipervisores,as lassi ações são:
•
HipervisoresNativos(oudetipoI):quandoohipervisorexe utadiretamentesobreo hardware real. Nesse aso, suafunçãoémultiplexarosre ursosde hardware paraasdiversasmáquinasvirtuaisqueseen ontram sobreele. Cadamáquinavirtual tema
impressão depossuirre ursospróprioseex lusivosde hardware,quandonaverdade
possui um ontrole sobre um onjunto de hardwares virtuais gerados a partir do
parti ionamento de re ursos dohardware verdadeiro. Este é o tipo mais antigo de
virtualização, era en ontrada nos mainframes dos anos 70. VMWare e Xen são
alguns dos que implementam esta té ni a;
•
HipervisoresConvidados (oude tipoII):nessa ategoria,ohipervisorexe uta omo um pro esso omum dentrode um sistemaopera ional. Osre ursos utilizadospelohipervisorsãoprovidose ontroladospelosistemaopera ionalsubja ente. Exemplos
de ferramentasque utilizamessa abordagemsão o VirtualBox e QEMU.
Quanto aonível de virtualização, as lassi ações são:
•
Virtualizaçãode re ursos: quandoauser ISAémantidaepodeser a essada direta-mentepelo sistema onvidado. A system ISAe osre ursos omo dis o e periféri ossão virtualizados. Estaéaté ni aquepermitedesempenhomaispróximoaoobtido
exe utando-se o sistema onvidado diretamentesobre o hardware real. VirtualBox,
Xen e VMWare perten em a esta ategoria;
•
Virtualização ompleta: nessa ategoria toda a interfa e de hardware é virtuali-zada, podendo, in lusive, haver emulação de uma plataforma de hardware distintadisponibilizadapara as máquinas virtuais. Esta té ni a de virtualização apresenta
pior desempenho devido ao usto de pro essamento introduzido pelatradução das
instruções virtuais disponibilizadas em instruções da plataforma real. O QEMU é
um exemplo dessa ategoria.
III.3 Té ni as de Virtualização
Nesta seção serão denidas as té ni as utilizadas atualmente para a implementação
de ferramentas de virtualização. A primeira té ni a apresentada é a para-virtualização,
utilizada na ferramenta de virtualização Xen. A segunda té ni a, virtualização total, é
utilizadaporgrande partedas ferramentas de virtualização, omo porexemplo VMWare
e VirtualBox.
III.3.1 Para-Virtualização
Esta té ni a de virtualização onsiste na modi ação dos sistemas opera ionais
on-vidados de forma que eles tenham " ons iên ia"de estarem virtualizados. Este grau de
" ons iên ia"é obtido através da modi ação do a esso às instruções da system ISA de
forma que ao querer exe utar uma instrução sensível, o sistema opera ional onvidado
efetua uma hamadaao hipervisorrequisitando a operação desejada.
Dessa forma,a sobre arga do hipervisor monitorara exe ução das máquinas virtuais
embus a de instruçõessensíveisé eliminada,resultandoemgrandesganhos de
ser modi ado, o que limita a portabilidade dos sistemas opera ionais para ambientes
virtuais que implementem esta té ni a.
Exemplosde ferramentas que utilizamesta abordagemsão o Denali e o Xen.
III.3.2 Virtualização Total
Esta té ni a de virtualização onsiste na riação de um ambiente virtual que provê
todas asinterfa esdisponibilizadasporumhardware real. Asinterfa esvirtuaisforne em
desde uma ISA virtual até dispositivosperiféri os virtuais, todos similaresa dispositivos
reis. Oambientedemáquinavirtual riadoporestaté ni asuportasistemasopera ionais
onvidados ompletos sem que estes sofram nenhuma modi ação, visto que todas as
interfa es esperadas são providas pelamáquina virtual.
Essa transparên ia do ambiente virtual ofere ida aos sistemas onvidados traz alto
usto de desempenho. Por não saberem que estão em um ambiente virtualizado, as
apli ações e sistema opera ional hóspedes exe utam instruções sensíveis omo se todo
o hardware perten esse ao sistema onvidado. Para não ausar problemas de uso dos
mesmos re ursos por máquinas virtuais diferentes, o hipervisor é sobre arregado om a
tarefa de monitorar a o orrên ia destas instruções sensíveis e tratá-las de forma que o
sistema onvidado a redite que sua requisição foi efetuada e que ao mesmo tempo não
ause onitos em a esso aohardware.
Estaté ni adevirtualizaçãoéamaisutilizadaeéimplementadapordiversassoluções
de virtualização, omo VMWare,VirtualBox e VirtualPC.
III.4 Suporte de Hardware à Virtualização
Com a re ente volta de interesse pelas té ni as de virtualização, os fabri antes de
hardware vem desenvolvendo te nologias in orporadas aos omputadores para melhorar
Por volta de 2005, os fabri antes de hardware Intel e AMD passaram a in luir em
seus pro essadores suporte bási o à virtualização [3℄. A Intel desenvolveu a IVT (Intel
VirtualizationTe hnology)eaAMD desenvolveu aAMD-V(AMDVirtualization),ambas
om a idéia prin ipal de riar dois modos de operação no pro essador: o modo root e o
modonon-root.
Omodoroot foi feito para uso dohipervisor e éequivalenteao fun ionamentode um
pro essador onven ional. O modonon-root foi feitopara uso das máquinasvirtuais. Os
dois modos possuem osquatro rings de proteção dos pro essadores normais.
Osrings de privilégiodos pro essadores servem para evitar que ódigo mali ioso
exe- utadoporum usuário onsigaa essardiretamentetodos osre ursos de hardware. Dessa
maneira, quando um ódigo estiver sendo exe utado om um nível de privilégio baixo e
tentarexe utaruma instrução querequer nível de privilégiomaisalto, opro essador não
exe uta ainstrução e lançauma ex eção, tratadanormalmentepelosistemaopera ional.
Ossistemasopera ionaisrodamsuastarefasdonú leo omprivilégiomáximo(noring
0) e exe utam as tarefas do usuário no nível de privilégiomais baixo (no ring 3). Dessa
maneira,astarefasdonú leo dosistemaopera ional onseguema essartodos osre ursos
sem problemas e, as apli ações do usuário, por rodar em nível de privilégio mais baixo,
podem a essar a maioria dos re ursos de hardware somente por intermédio do sistema
opera ional, atravésdas hamadasde sistema.
Quandoavirtualizaçãodeumsistemaopera ionaléfeita,ohipervisordevemonitorar
o ódigo exe utado pelo sistema opera ional onvidado, prevenindo que exe ute ódigo
sensível ea esse diretamente osre ursos de hardware.
Entretanto,quandoosuporteIVT estápresenteeosistemaopera ional onvidadoestá
exe utando emmodonon-root,aresponsabilidade de monitoraraexe ução de instruções
sensíveispassaparaopro essador. Todavezqueosistemaopera ional onvidadoexe uta
ódigoprivilegiado,opro essadorautomati amentegerauma hamadaaohipervisorpara
que eletrate a instrução sensível.
on-vidado graças a este suporte de virtualização, o desempenho dos hipervisores aumentou
Ferramentas de Virtualização
IV.1 Xen
O Xen nas eu omo projeto de pesquisa na Universidade de Cambridge, sendo em
seguida a base para a fundação da empresa XenSour e. Em 2003, a primeira versão foi
liberadaexperimentando rápidaa eitação nomer ado de virtualizaçãoe, omoresultado
deseusu esso, em2007aXenSour e foi ompradapelaCitrixSystems,quenomesmoano
tornoupúbli aa riaçãodaXen AB,Xen Proje tAdvisory Board, omposta pordiversas
grandesempresasde te nologia,tais omoIBM, Intel,Hewlett-Pa kard, Novell, RedHat,
Sun Mi rosystems, Ora le e a própria Citrix. Entre os objetivos desta organização, está
o geren iamentodate nologia ea promoção de formaqueesta atinjao maiornúmerode
plataformas de hardware. O ódigo doXen, sob a li ença GLP2, GNU Publi Li ense 2,
é aberto, oque promoveu onas imento de uma omunidade engajada àsua volta. [12℄
Xen é uma ferramenta de virtualização om hipervisor espe í o para a arquitetura
x86[13℄. A ferramenta de virtualização Xen difere em vários aspe tos das demais
ferra-mentas existentes. Em primeiro lugar, o Xen utiliza o on eitos de domínios, que são,
basi amente, diferentes implementaçõesde suas máquinas virtuais. O hipervisor do Xen
Para o Xen, existem dois tipos de domínios que diferem, prin ipalmente, no grau de
privilégio que possuem:
•
Domínio0(Zero): domínioúni o omposto porum sistema opera ionalLinux mo-di ado omoXen,possuiosdriversdedispositivosdamáquinafísi aedoisdriversespe iaisutilizadosparaatender àsrequisiçõesdea esso àredeeaodis o efetuados
pelas máquinas virtuais do domínio U. O domínio 0 é privilegiado e possui a esso
total aos re ursos de hardware. Alémdisso, o domínio0 tambémé responsável por
riar, ini ializare nalizarasmáquinas virtuais dos domínios dotipoU;
•
Domínio U(User): domínio não privilegiado que suporta um sistema opera ional hóspede. O domínio do tipo U possui drivers virtuais que se omuni am om odomínio0parater a essoaohardware real. Existem doistiposde domínioU,otipo
U-PV e otipoU-HVM.
Osdomínios do tipoU-PV (User Para-Virtualized) re onhe em sua natureza
virtua-lizada, bem omo aexistên iade outrasmáquinasvirtuais, olaborando omohipervisor
para atingirmelhordesempenho. Estes domíniostêm plena ons iên ia quenãopossuem
a essodiretoaohardware real epossuemsistemasopera ionaishóspedesmodi ados que
efetuam hamadas ao hipervisor toda vez que uma instrução sensível seria exe utada.
Esta té ni adevirtualização, denominadapara-virtualização,gera grandesganhosde
de-sempenho, uma vez que a sobre arga do hipervisor monitorar a exe ução dos sistemas
hóspedes em bus a de instruçõessensíveis éretirada.
A uma gura IV.1 mostra a arquitetura do Xen, enfatizando a relação entre o
hiper-visor, odomínio 0e osdomínios U.
Osdomínios do tipo U-HVM (User Hardware Virtual Ma hine) não re onhe em sua
natureza virtualizada e são implementados usando a té ni a de virtualização total,
po-dendo utilizarsistemas opera ionaishóspedes eapli açõeses ritaspara aplataformax86
real. Para que se possa utilizar este tipo de domínio, é ne essário o uso de
pro essa-dor om suporte às te nologias de virtualização via hardware IVT - Intel Virtualization
FiguraIV.1: Arquitetura doXen.
Os hóspedes que estão em domínios do tipo U-PV possuem drivers espe í os de
a esso à rede e ao dis o que interagem om o domínio 0. No aso dos que estão em
domíniosdotipo U-HVM,asrequisiçõesde dis oe rede são feitasatravés de umdaemon
doQEMU vin uladoa adainstân iade domíniodotipoU-HMV.Ohardware disponível
a ada máquina virtual de um domínio U-HVM é o ofere idopeloQEMU.
Atualmente, om a inserçãode re ursos de otimização de virtualização nos
pro essa-dores,adiferençadedesempenhoentreapara-virtualizaçãodoXen eavirtualizaçãototal
diminuiu onsideravelmente, hegando in lusiveasermaisrápidaavirtualizaçãototalem
alguns asos.
A versão mais nova do Xen é a 3.3 que foi lançada em agosto de 2008. Segundo o
site o ial do Xen [13℄, o fato do hipervisor ter menos de 150.000 linhas de ódigo e o
nú leo do hipervisorter menosde 50.000 linhas de ódigo torna fá ila análisedeste pela
omunidade, tornando-o extremamente seguro e fazendo om que a sobre arga ausada
pelohipervisor seja minimizada.
IV.2 VMWare
Fundada em 1998, a VMWare, empresa que empresta seu nome aos seus produtos,
emrelaçãoaosseus on orrenteséoextenso onjuntodehardwares virtualizadosque
pos-sui, adquiridosao longodos váriosanos de existên ia,permitindoassim que asmáquinas
virtuais hóspedestenham omo referên iaprati amenteos mesmosre ursos de hardware.
Na práti a, isso fa ilita que estas máquinas virtuais sejam opiadas de um hospedeiro
para outro de forma ompletamentetransparente.
Os produtos da VMware, na maioria dos asos, usam a CPU para exe utar ódigo
diretamente. Entretanto, quando isso não é possível, nos asos de real-mode ode, por
exemplo, osprodutos daVMWare rees revemdinami amenteo ódigo aser exe utado
pro esso hamadodeBinaryTranslation. O ódigorees ritoéalo adoentãoemmemória,
tipi amente no nal do espaço de endereços, onde os me anismos de segmentação os
protegem. Este pro esso, segundo dados forne idos pela própria VMWare, permite que
seus produtos operem signi ativamente mais rápidos do que emuladores até 80% de
ganho de desempenho[1 ℄.
A VMWare possui uma ompleta gama de apli ações om o objetivo de explorar as
mais diversas oportunidades quea virtualização ofere e. Entre osprodutos disponíveis e
suas respe tivas funções estão:
•
VMware ESX Server 3: virtualiza os re ursos de hardware, tais omo, pro es-sador, memória,dis os e rede, permitindo que um servidor físi o seja parti ionadoem váriasmáquinasvirtuaiseque adaumasejavista omouma máquinafísi aem
uma infra-estrutura de rede onven ional. É a solução de maior porte daVMWare
e é muito utilizada omer iale a ademi amente;
•
VMware ESX Server 3i: apesar de possuir as mesmasfun ionalidades do ESX Server,diferedesteemsuaarquiteturainternaenaforma omoalgunspro edimen-tos de geren iamento são exe utados;
•
VMware Virtual SMP: permite que uma úni a máquina virtual utilize mais de umpro essadorfísi osimultaneamente. Naatualversão,umamáquinavirtualpode•
VMware VMFS:Sistemade arquivosdesenvolvidode modoquediversas máqui-nas a essem on orrentementeo mesmo meio físi ode armazenamento;•
VMware Server: versão gratuita dos produtos ESX Server, ujo objetivo é per-mitir o teste de uso por parte dos possíveis usuários. Porém, omo ferramentade garantia omer ial, a VMWare disponibiliza apenas imagens pré- onguradas,
hamadas applian es, om objetivos espe í os. Assim, dispõem-se para teste dos
usuários,máquinas virtuais para servidores web, e-mail, DNS, et ;
•
VMware Workstation: ambiente no qual, efetivamente, se riam as máquinas virtuais. Isso signi a que é possível arregar um sistema opera ional qualquernessa máquina virtual e a sua onguração é feita através de ferramenta espe í a
que éparte integrantedesse produto.
•
VMware Fusion: para o sistema opera ionalMa OS X, é o produto equivalente ao VMware Workstation;•
VMware Player: é a versão gratuita do produto VMware Workstation. Assim omo o orria na versão Server, o objetivo é permitir que usuários testem o uso davirtualizaçãoenão épossíveldenir( riar)osistemahóspede namáquinavirtual a
partirdozero. Novamente,emseusite,aVMware distribuiumasériedeapplian es,
imagens de sistemas hóspedes, que ontemplam diferentes distribuiçõesde Linux e
Windows Server 2003.
Os produtos da VMWare utilizam a té ni a de virtualização total e, om o advento
do suporte à virtualização por parte das CPUs modernas, a e iên ia destes produtos
aumentou, obtendo até desempenho próximo aonativo dependendo daapli ação.
IV.3 VirtualBox
VirtualBox éumafamíliadeprodutosdevirtualizaçãoparaaplataformax86que
édesenvolvidapelaempresa Sun Mi rosystems queforne eaplataformalivrementesob a
li ença GPL,GNU Puli Li ense. VirtualBox possui diversas versões para rodar sobre os
sistemashospedeirosWindows, Linux, Ma intosh eOpenSolaris forne endo suportepara
vários sistemas opera ionais hóspedes omo Windows NT 4.0, Windows 2000, Windows
XP, WindowsServer 2003, WindowsVista,Windows3.x, Linux (kernel versões2.4e2.6
), Solaris, OpenSolaris eOpenBSD.
Assim omo oXen, VirtualBox édesenvolvidoem onjuntoporuma empresa privada
(no asoSunMi rosystems)eporuma omunidadeoquefaz omquesejaumaferramenta
que se desenvolva om grande velo idade, graças ao esforço da omunidade, ao mesmo
tempoem queé renada para uso omer ial, devidoao esforço da empresa privada.
OprojetodoVirtualBox utiliza omobaseparaalgunsde seus omponentes oprojeto
QEMU. Alguns dos dispositivos de hardware virtual do QEMU foram utilizados omo
ponto ini ial de desenvolvimento para os do VirtualBox. Além disso, o me anismo de
tradução dinâmi a do QEMU é utilizado omo re urso de ontingên ia do VirtualBox
para os asos em o geren iador de máquinas virtuais próprio não fun iona orretamente,
omo por exemplo nas situações emque oprograma hóspede exe uta emmodo real.
Atualmente o VirtualBox suporta as te nologias de virtualização da Intel ( omo a
Intel VT-x)e daAMD ( omo aAMD SVM).
VirtualBox é um produto de virtualização total. Isso signi a que ele permite que
a instalação dos sistemas opera ionais hóspedes e suas apli ações sejam feitas em uma
máquinavirtual sobreosistemahospedeirosem quehajaane essidadede modi arseus
ódigos-fonte. Por se tratarem de máquinas virtuais de plataformas x86 que exe utam
sobreumsistemarealx86,asmáquinasvirtuaisdoVirtualBox permitemquegrandeparte
do ódigo exe utado no sistema hóspede rode sobre o sistema hospedeiro diretamente,
sem ne essidade de tradução. Entretanto, as instruções que afetam outras máquinas
virtuais ou o sistema hospedeiro são monitoradas e, quando o orrem, são tratadas pelo
hipervisor do VirtualBox de maneira que o sistema hóspede a redite que sua requisição
situaçãodes rita anteriormente, pode-se pensar noa essoao dis oporparte damáquina
virtual. Enquantoosistemaopera ionalhóspede fazuma esso aodis ovirtual pensando
que está a essando o hardware verdadeiro, o hipervisor do VirtualBox inter epta esse
a esso e efetua a operação desejada no dis o virtual sobre o arquivo utilizado por ele
para armazenar a máquina virtual. Dessa forma,o sistema opera ionalhóspede tem sua
requisição atendida e não há onitos nouso do hardware.
Segundo o site o ial do VirtualBox [11℄, existem diversos enários que tornam a
virtualização interessante sendo osprin ipais:
1. forne ersuportede sistemasopera ionais. Utilizarumaferramentade virtualização
omo VirtualBox possibilita rodar uma apli açãodesenvolvida para outro sistema
opera ional (apli ação para Ma intosh sobre Windows ou apli ação para Solaris
sobre Linux,por exemplo)sem ane essidade de reini iaro omputador. Esta
utili-zação éextremamentepráti apara desenvolvedores, poisfrequentemente, ao testar
um sistema, são ne essários elementos que rodam em plataformas diferentes da
utilizada pela apli açãoem desenvolvimento e o uso de máquinas virtuais para
es-tabele er o ambiente ompleto onde a apli ação fun iona traz grande e onomia de
tempoe re ursos de hardware.
2. Consolidaçãode Infra-estrutura. Comohojeé omumasubutilizaçãoda apa idade
de pro essamento dos omputadores, torna-se interessante unir diversos
omputa-dores lógi os em pou os omputadores físi os, obtendo assim grande e onomia de
dinheiroe energia.
3. Teste de apli ações instáveis e re uperação em aso de desastres. Com o uso do
re ursode snapshots,ba kup doestadode umamáquinavirtual emum determinado
momento,épossívelrestabele errapidamenteumamáquinavirtualparaum estado
prévio asoalgode erradoa onteça, tornandosegurootestede apli açõesinstáveis.
•
Controlador USB virtual: um driver virtual USB que permite que dispositivos USB sejamutilizadosnosistema onvidado sem quehajaa ne essidade de instalaro driver espe í opara o dispositivo dentro dosistema hospedeiro;
•
Remote Desktop Proto ol (RDP): o VirtualBox implementa este proto olo padrão de maneira que quando a máquina virtual for ongurada para rodar um servidorRDP, esta pode ser a essada remotamente usando qualquer thin lient que seja
ompatível om este proto olo.
•
USB over RDP: este re urso permite que dispositivos USB one tados no liente remoto possam ser utilizadose a essados pela máquinavirtual.OVirtualBox é uma ferramenta bastantemadura de virtualização que está em
ons-tante desenvolvimento e quea ada diaa umuladiversos novos re ursos.
IV.4 User-Mode Linux
User-Mode Linux é uma ferramenta de virtualização open-sour e baseada na
adap-tação do kernel do Linux. Desenvolvida e mantida prin ipalmente por Je Dike, esta
ferramenta permite instan iar diversas versões do Linux sobre ela, forne endo uma
má-quina virtual ujodis o virtual é um úni o arquivo dentrodamáquina físi a.
Assim omonoVMWare eXen,noUser-ModeLinux épossível onguraroa essoao
hardware desejadoqueamáquinavirtualpossua,dessaforma, ongurando-seamáquina
virtual om os limites de a esso ao hardware apropriados, é possível proteger a máquina
real e o software nela presente.
O User-Mode Linux é bastante utilizado pela omunidade Linux, fazendo parte da
árvore de desenvolvimento dokernel.
Umdos seus usos éo de testar novas versões dokernel oudistribuiçõesLinux. Dessa
virtualdoUser-ModeLinux durantealgumtempoantesdeatualizarokernel,
erti ando-se que a nova versão não tenha sofrido mudanças que gerem instabilidade em elementos
frequentemente utilizadosno sistema orrente.
Um outro uso desta ferramenta de virtualização é o desenvolvimento ou modi ação
do kernel. O uso de uma máquina virtual do User-Mode Linux onstitui um ex elente
laboratórioparatestarumkernel re ompiladopois,em asodeinstabilidade,bastafe har
a máquinavirtual evoltar aodesenvolvimento, oquee onomizadagrande quantidadede
tempoquando omparado aopro esso tradi ional de testar okernel re ompiladosobre a
própria máquinafísi a.
IV.5 QEMU
QEMU é uma ferramenta genéri a de virtualização e de emulação desenvolvida por
Fabri e Bellarde om ódigo open-sour e.
Quando o QEMU é utilizado om a opção de emulação ativada, é possível exe utar
sistemas opera ionais e programas sobre ele que foramdesenvolvidos para outras
plata-formas, omoporexemplo programas para plataforma ARM em uma plataformaPC. A
emulaçãode plataformas omputa ionaisdistintaséobtidaatravésde traduçãodinâmi a
e hega a atingirníveisde desempenho muito bons [15℄.
Quando utilizado omo ferramenta de virtualização, o QEMU atinge desempenho
próximo ao nativo por onseguir exe utar ódigo (instruções não-sensíveis) diretamente
no pro essador. Esse modode operação requer que tanto osistema hospedeiro quanto o
sistema hóspede usem um pro essador ompatível om a plataformax86.
OQEMU foiutilizado omopontoini ialparaodesenvolvimentodoVirtualBox,que,
IV.6 Mi rosoft VirtualP
OVirtualPC éasolução de VirtualizaçãodaMi rosoft. A versão atual doVirtualPC
é o VirtualPC2007,que édistribuído gratuitamentepelaMi rosoft.
Segundoa ompanhia[16℄, adistribuiçãogratuitadaferramentasejusti apelavisão
da empresa de que o valor da virtualização não está nas ferramentas que possibilitam a
virtualização, mas sim nas ferramentas de gestão dos ambientes virtuais e nos sistemas
opera ionais onvidados.
A estratégia de virtualização utilizada por esta ferramenta é a virtualização total.
A ferramenta provê ambientes virtuais ompletos para suportar sistemas opera ionais
Comparação de Desempenho das
Ferramentas de Virtualização
V.1 Testes de Desempenho de Ferramentas de
Virtua-lização
Nessa sessão serão apresentadas algumas omparações de desempenho entre as
prin- ipais ferramentas de virtualização. Essas omparações irão analisar o desempenho de
algumas dessas ferramentas entre sie emrelação aodesempenho nativo.
No iní io de 2007, em uma nota divulgada pela VMWare [1℄, é realizado um estudo
de desempenho omparando o produto ESX daVMWare om o XEN e om os mesmos
pro essos rodando nativamente no servidor. Os testes, mostrados na gura V.1, foram
realizados utilizandoferramentas usadasnodia-a-dia,tais omo o ompiladorde C/C++
g ,e os programasde ompressão de dados gzip e bzip2.
Nesta gura, pode-se notar que a perda de desempenho introduzida pelo VMWare é
de, em média, 3%, enquanto que o Xen introduz 6% de perda. No entanto, esses testes
usam métodos tradi ionais de medição de tempo, que podem dar resultados impre isos
on-Figura V.1: Comparação de desempenho entre VMWare, Xen eexe ução nativa[1℄.
guração padrão,diferentementede omoa onte eemservidoresreais, ondeohipervisor
é ongurado de a ordo om as ara terísti asda máquinahospedeira.
Emoutroestudo,Camargosetal. [2℄ omparam adesempenhoentre diferentes
méto-dos de virtualização, in luindosistemas ompletamentevirtualizados, para-virtualizados,
evirtualização aníveldesistemaopera ional. Ostestesrealizados exploramosdiferentes
aspe tos de ada método de virtualização. A gura V.2 mostra o desempenho em duas
tarefas: naesquerdaa ompilaçãodonú leodoLinux enadireitaatarefa de ompressão
daimagemde umCD.Emambososgrá os, 1.0édenido omoodesempenhodatarefa
sendo exe utada no Linux hospedeiro.
Atarefade ompilação,mostradanapartedaesquerdadaguraV.2,demandamuita
CPU e muito a esso a dis o. Nessa gura a laro que as soluções de virtualização
total sofrem uma onsiderável perda de desempenho. O Linux-VServer e o OpenVZ
são soluções de virtualização a nível de sistema opera ionale am respe tivamente em
e Soluções
Figura V.2: Comparação entre té ni as de virtualização [2℄. Na esquerda, odesempenho
rela ionado à ompilação do nú leo do Linux. Na direita, a ompressão de
aproximada-mente700MB de dados om o bzip2.
em segundo lugar. A tarefa de ompressão om o bzip2, mostrada na parte da direita
da mesma gura, demanda muita memória e pro essamento, mas pou o a esso a dis o.
Nesse aso, a diferença entre o VirtualBox, que faz virtualização ompleta, e as té ni as
de para-virtualização e virtualização a nível de sistema opera ional é bem menor. Isso
se deve ao fato de que o hipervisor, que roda omo um pro esso do sistema opera ional
hospedeiro, não ne essita fazer muitas inter eptações de IO, e o ódigo onvidado roda
nativamente naCPU real.
V.2 Problemas de Testes de Desempenho para F
erra-mentas de Virtualização e Soluções
Efetuartestesdedesempenhoemambientesvirtualizadosnãoéumatarefatãosimples.
A a urá ia dos métodos tradi ionais de medição de desempenho, baseados nos números
de i los de lo k ne essários para efetuaruma tarefa,pode nãoser tão altaquandoesses
métodos são apli adosa ambientes virtualizados. A distorção nos resultados o orre pelo
fato das ferramentas tradi ionais não avaliarem a sobre arga imposta pela presença da
e Soluções
Nãoexiste, noentanto,umaferramentadeben hmark impar ialparaavaliaro
desem-penho de hipervisores. Isso levou a Intel a denir a metodologia vConsolidate [17℄ para
avaliação de desempenho de sistemas virtualizados. Essa metodologia onsiste em uma
bateria de testes efetuados om simuladoresde servidores omuns de empresas omo
ser-vidor de web oue-mail,todos eles operandoem alta arga. A pontuação de desempenho
é medidatanto om servidores nativosquanto om servidores virtualizados. Comoo uso
tradi ional de i los de lo k para medir desempenho, utilizadanos ben hmarks
tradi i-onais, não é válido para o aso de apli ações virtualizadas, a metodologia vConsolidate
medeodesempenhopelouxo desaída dedadosde várias máquinasexe utando ostestes
on orrentemente, ao invésde medir otempoque ada uma leva em ada tarefa.
Nos próximos anos é bastante provável que um ben hmark impar ial para
virtuali-zação seja implementado utilizando a metodologia do vConsolidate. Por enquanto, as
ferramentas de ben hmark para virtualização são onsideradas tenden iosas, explorando
pontosespe í osdas arquiteturasdossistemasquedesejamfavore er, omoporexemplo