• Nenhum resultado encontrado

ÍÆÁÎ ÊËÁ Ê Ä Ç ÊÁÇ Â Æ ÁÊÇ Ë ÇÄ ÈÇÄÁÌ ÆÁ È ÊÌ Å ÆÌÇ Ä ÌÊ ÆÁ ÇÅÈÍÌ Ç ØÙ Ó ÓÑÔ Ö Ø ÚÓ Ì Ò Î ÖØÙ Ð Þ Ó ÙØÓÖ ÖÐÓ Ö Ò ÇÖ ÒØ ÓÖ ÈÖÓ º ÇØØÓ ÖÐÓ ÅÙÒ Þ Ò Ö Ù Ö

N/A
N/A
Protected

Academic year: 2021

Share "ÍÆÁÎ ÊËÁ Ê Ä Ç ÊÁÇ Â Æ ÁÊÇ Ë ÇÄ ÈÇÄÁÌ ÆÁ È ÊÌ Å ÆÌÇ Ä ÌÊ ÆÁ ÇÅÈÍÌ Ç ØÙ Ó ÓÑÔ Ö Ø ÚÓ Ì Ò Î ÖØÙ Ð Þ Ó ÙØÓÖ ÖÐÓ Ö Ò ÇÖ ÒØ ÓÖ ÈÖÓ º ÇØØÓ ÖÐÓ ÅÙÒ Þ Ò Ö Ù Ö"

Copied!
60
0
0

Texto

(1)

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

(2)
(3)

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

(4)

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

(5)

lização,um estudo de desempenhode algumasdas ferramentasexistentes e as on lusões

(6)

Virtualização

SistemasOpera ionais

Máquinas Virtuais

Hipervisores

(7)

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;

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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.

(15)

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

(16)

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,

(17)

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

(18)

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

(19)

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,

(20)

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:

(21)

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

(22)

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

(23)

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.

(24)

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

(25)

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

(26)

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

(27)

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óspedes

espe- í 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, om

apli 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,

(28)

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 do

sistema 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,

(29)

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. Qualquersoftware

es 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 a

algum real. Amáquina virtual exe uta apli açõesouum onjuntode apli açõesde

(30)

Virtualização de Linguagens de Programação: quando a amada de virtualização está lo alizadanotopodosistemaopera ional. As máquinasvirtuaisdessetiposão

feitaspara 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óspede

traduzindo 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 uma

plataformade 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 isolamento

de 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ções

fazemuso 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

(31)

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

(32)

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

(33)

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 paraas

diversasmá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 utilizadospelo

hipervisorsã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 os

(34)

sã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 distinta

disponibilizadapara 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

(35)

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

(36)

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.

(37)

on-vidado graças a este suporte de virtualização, o desempenho dos hipervisores aumentou

(38)

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

(39)

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 aedoisdrivers

espe 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 o

domí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

(40)

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,

(41)

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 ionado

em 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 omoalguns

pro 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

(42)

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 ferramenta

de 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 qualquer

nessa 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 da

virtualizaçã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

(43)

é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

(44)

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.

(45)

Controlador USB virtual: um driver virtual USB que permite que dispositivos USB sejamutilizadosnosistema onvidado sem quehajaa ne essidade de instalar

o 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 servidor

RDP, 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

(46)

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,

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

Referências

Documentos relacionados

Quando esta opção está desativada, o SmartControl Lite não inicializa ou aparece barra de tarefa.. A única forma de iniciar o SmartControl Lite é a partir do atalho existente

As variáveis estudadas foram idade e raça da mulher (branca e não branca); escolaridade (<8 anos e >8 anos de estudo formal); renda familiar <2 salários mínimos (SM), de 2 a

Graduado em Ciências Contábeis pela Universidade São Judas Tadeu, Especialista em Auditoria Contábil pela Universidade Mackenzie, Especialista em Direito Previ- denciário pela EPD

Jas mislam deka familijata koja mo`e sekoga{ da se smee mora da e sre}na i, da go citiram Osnova~ot Nikjo Nivano, kako {to e objaveno vo izdanieto za Juni 2016 na mese~noto

os meanismos ofereidos para programação de apliações no modelo D&C , am de.. melhor aproveitar as vantagens e minimizar as desvantagens

A Sociedade Goiana de Ginecologia e Obstetrícia (SGGO), enquanto entidade represen- tativa dos médicos ginecologistas e obstetras de Goiás, possui o dever de informar sobre

para sistemas l ogios quanto algor tmios, a ei^ enia de planejamento n~ ao dep ende.. ap enas da p ol tia de prote ~ ao de submetas adotada em ada um deles, mas

fases, o omportamento iniial da função de Wigner ρ W se aproxima do omportamento iniial da distribuição lássia ρ à medida que N aumenta e que aparentemente é possível obter