Virtualizacao de Servidores: Um comparativo entre VMware e Xen
1. Centro Universitário de Maringá
ALAN BRUMATE
VIRTUALIZAÇÃO DE SERVIDORES: UM COMPARATIVO ENTRE
VMWARE E XEN
Maringá
2010
2. 2
ALAN BRUMATE
VIRTUALIZAÇÃO DE SERVIDORES
Monografia apresentada ao Curso de
graduação em Redes de Computadores, do
Centro Universitário de Maringá, como
requisito parcial para a obtenção do título de
Tecnólogo, sob orientação do professor José
Valderlei da Silva.
Maringá
2010
3. 3
Aos meus pais, Vanda e Adelcino, pelo
amor e dedicação em toda a minha vida,
responsáveis diretos pela realização
desse objetivo.
4. 4
AGRADECIMENTOS
Aos professores por todo conhecimento passado durante a graduação, em
especial ao Luiz Artur, pela orientação na primeira metade do trabalho, ao Ludisleno,
pelas dicas iniciais, no momento que estava definindo qual seria o tema da
pesquisa, e em especial ao Vander (Jesus), que assumiu a orientação já na reta final
e contribuiu de forma decisiva para que esse trabalho fosse concluído.
Aos colegas da graduação pelos anos de boa convivência, em especial a
Eliezer Oliveira, companheiro e parceiro durante os desafios da graduação. Às
pessoas que fazem parte da minha vida, meu irmão Adevan e à Rubia Pimenta por
todo amor, dedicação e paciência nesse período de tantos desafios da minha vida.
5. 5
“O segredo do sucesso é a constância do
propósito”.
Benjamin Disraeli
6. 6
RESUMO
A virtualização no âmbito da informática visa utilizar uma máquina física para
executar diversos sistemas operacionais. Esta pesquisa tem o objetivo de
demonstrar as diversas formas e técnicas de virtualização, percorrer sua história e
sua evolução no cenário da tecnologia da informação e demonstrar na prática como
é possível reduzir custos e ganhar desempenho. Para isso foram comparadas duas
tecnologias disponíveis no mercado: o VMware e o Xen. Foi realizado um estudo
sobre todas as práticas usuais de virtualização e as atuais versões das duas
ferramentas citadas acima. Foram utilizados critérios de desempenho, custos, entre
outros, para avaliar o comparativo entre as ferramentas. Os principais resultados
obtidos foram que a virtualização é uma importante alternativa para as empresas
melhorar o aproveitamento dos seus recursos, e que cada vez mais as empresas de
virtualização estão disponibilizando mais facilidades e opções para a implantação da
virtualização.
Palavras-Chave: Virtualização, VMware, Xen
7. 7
LISTA DE FIGURAS
Figura 1 - Virtualização de Desktop .......................................................................... 19
Figura 2 - Evolução Histórica da Virtualização .......................................................... 23
Figura 3 - Alguns Sistemas Existentes ...................................................................... 24
Figura 4 - Sistemas Incompatíveis ............................................................................ 25
Figura 5 - A Camada de Compatibilidade ................................................................. 25
Figura 6 - Máquina Virtual Tipo I ............................................................................... 28
Figura 7 - Máquina Virtual Tipo II .............................................................................. 29
Figura 8 - Abordagem Híbrida do Tipo I .................................................................... 30
Figura 9 - Abordagem Híbrida Para o Tipo II ............................................................ 31
Figura 10 - Representação da Virtualização Total .................................................... 32
Figura 11 - Representação da Paravirtualização ...................................................... 33
Figura 12 - Alocação de Memória na Virtualização Total .......................................... 35
Figura 13 - Virtualização do Sistema Operacional .................................................... 36
Figura 14 - Virtualização de Linguagens de Programação ........................................ 37
Figura 15 - Ambiente de Desenvolvimento Virtualizado ............................................ 38
Figura 16 - Virtualização de Hardware ...................................................................... 39
Figura 17 - Virtualização de Aplicação ...................................................................... 40
Figura 18 - Virtualização de Apresentação ............................................................... 40
Figura 19 - Virtualização de Desktop ........................................................................ 42
Figura 20 - Comparativo Entre Algumas Ferramentas .............................................. 47
Figura 21 - Versões do XenServer ............................................................................ 50
Figura 22 - Comparativo entre VMware Server e ESXi ............................................ 55
Figura 23 - Virtual Server .......................................................................................... 56
Figura 24 – KVM ....................................................................................................... 60
Figura 25 - Configuração do VMware Server ............................................................ 67
Figura 26 - XenServer ............................................................................................... 68
Figura 27 - Tela de Login do VMware Server ............................................................ 69
Figura 28 - Tela Principal do VMware Server ............................................................ 70
Figura 29 - XenCenter ............................................................................................... 71
Figura 30 - Servidor Conectado no XenCenter ......................................................... 71
8. 8
Figura 31 - Tela de Revisão das Configurações do VMware Server ......................... 73
Figura 32 - SO's Executando no XenServer.............................................................. 74
Figura 33 - Teste 1 - Ping .......................................................................................... 76
Figura 34 - Teste 2 - Recovery .................................................................................. 76
Figura 35 - Teste 3 - Vacuum .................................................................................... 77
Figura 36 - Teste 4 – Conversão de Video ................................................................ 77
10. 10
LISTA DE SIGLAS
AMD Advanced Micro Devices
API Application Programming Interface
BIOS Basic Input/Output System
BSD Bekerley Software Distribuition
CD-ROM Compact Disk Read Only Memory
CP Control Program
CPD Centro de Processamento de Dados
CPU Central Processing Unit
DLL Dynamic-Link Library
DVD Digital Video Disk
GB Giga-Byte
GPL General Public License
GRUB Grand Unified Bootloader
IBM International Business Machines
I/O Input/Output
JVM Java Virtual Machine
KVM Kernel-based Virtual Machine
MB Mega-Byte
MVP Mobile Virtualization Platform
PC Personal Computer
PowerPC Power Optimization Enhanced Risc
RAM Random Access Memory
RMVB Real Media Variable Bitrate
SAN Storage Area Networks
SMP Symmetric Multi-Processing
SO Sistema Operacional
TI Tecnologia da Informação
UML User-Mode Linux
USB Universal Serial Bus
VM Virtual Machine
VMM Virtual Machine Monitor
12. 12
SUMÁRIO
INTRODUÇÃO .......................................................................................................... 14
1.1 MOTIVAÇÃO ....................................................................................................... 15
1.2 OBJETIVOS ........................................................................................................ 15
1.3 ORGANIZAÇÃO DA MONOGRAFIA .................................................................. 16
2 CONCEITOS DE VIRTUALIZAÇÃO ...................................................................... 17
2.1 DEFINIÇÃO DE MÁQUINAS VIRTUAIS ............................................................. 18
2.2 HISTÓRICO DA VIRTUALIZAÇÃO ..................................................................... 20
2.3 UTILIZAÇÃO DE MÁQUINAS VIRTUAIS ............................................................ 23
2.3.1 Monitor de Máquina Virtual ........................................................................... 26
2.3.2 Emuladores e Máquinas Virtuais .................................................................. 26
2.3.3 Tipos de Emuladores ..................................................................................... 27
2.3.4 Tipos de Máquinas Virtuais ........................................................................... 27
2.3.4.1 Máquinas Virtuais - Tipo I ............................................................................... 28
2.3.4.2 Máquinas Virtuais - Tipo II .............................................................................. 28
2.3.4.3 Abordagens Híbridas ........................................................................................ 29
2.4 TÉCNICAS DE VIRTUALIZAÇÃO ....................................................................... 31
2.4.1 Virtualização Total .......................................................................................... 31
2.4.2 Paravirtualização ............................................................................................ 32
2.4.3 Relação entre Virtualização Completa e Paravirtualização ........................ 34
2.4.4 Recompilação Dinâmica ................................................................................ 35
2.5 FORMAS DE VIRTUALIZAÇÃO.......................................................................... 36
2.5.1 Virtualização de Sistema Operacional .......................................................... 36
2.5.2 Virtualização de Linguagem de Programação ............................................. 37
2.5.3 Virtualização de Hardware ............................................................................. 38
2.5.4 Virtualização de Aplicação ............................................................................ 39
2.5.5 Virtualização da Apresentação ..................................................................... 40
2.5.6 Virtualização da Estação de Trabalho .......................................................... 41
2.5.7 Virtualização de Armazenamento ................................................................. 42
2.6 BENEFÍCIOS E DIFICULDADES DA VIRTUALIZAÇÃO ..................................... 43
2.6.1 Benefícios da Virtualização ........................................................................... 43
2.6.2 Dificuldades da Virtualização ........................................................................ 45
13. 13
3 TECNOLOGIAS ATUAIS DE VIRTUALIZAÇÃO ................................................... 47
3.1 XEN ..................................................................................................................... 47
3.1.1 Histórico do Xen ............................................................................................. 48
3.1.2 Xen Source 4.0 ................................................................................................ 49
3.1.3 XenServer 5.6.................................................................................................. 50
3.1.4 Outros Produtos Xen ..................................................................................... 51
3.1.5 Algumas Características Relevantes do Xen ............................................... 51
3.2 VMWARE ............................................................................................................ 52
3.2.1. VMware Player ............................................................................................... 52
3.2.2 Workstation..................................................................................................... 53
3.2.3 VSphere ESX................................................................................................... 53
3.2.4 VSphere Hypervisor (ESXi)............................................................................ 53
3.2.5 VMware Server ................................................................................................ 54
3.3 OUTRAS TECNOLOGIAS DISPONÍVEIS PARA VIRTUALIZAÇÃO ................... 55
3.3.1 VirtualBox ....................................................................................................... 55
3.3.2 Virtual Server .................................................................................................. 56
3.3.3 Virtual PC ........................................................................................................ 57
3.3.4 Hyper-V............................................................................................................ 57
3.3.5 QEMU............................................................................................................... 58
3.3.6 Kernel-based Virtual Machine ....................................................................... 59
3.3.7 User-Mode Linux (UML) ................................................................................. 60
4 FERRAMENTAS E CENÁRIOS UTILIZADOS ...................................................... 62
4.1 AMBIENTE DE REALIZAÇÃO DOS TESTES ..................................................... 62
4.2 DESCRIÇÃO DOS TESTES ............................................................................... 63
4.3 COMPARAÇÕES ................................................................................................ 63
CONCLUSÕES ......................................................................................................... 79
REFERÊNCIAS ......................................................................................................... 81
14. 14
INTRODUÇÃO
Buscando soluções para aumentar a agilidade dos negócios e redução de
custos, as empresas começaram a considerar a virtualização como a solução de
seus problemas com infra-estrutura. (MANARA, 2007).
Para Favacho, Miranda e Souza (2008, p.13) “no decorrer dos anos muitos
serviços foram informatizados exigindo que as empresas investissem na capacidade
ocupacional”.
A tecnologia aumenta a capacidade de trabalho, fazendo com que um
computador faça o serviço de muitos, sem que seja necessário investir mais em
recursos físicos, aliviando, assim, a demanda de espaço, custos com energia elétrica
e futura reposição de hardware. Conforme Carmona et al (2008, p.23)
“computadores virtuais economizam a aquisição de periféricos físicos e necessitam
ao mesmo tempo de menos espaço, energia elétrica e resfriamento”. As empresas
passaram a encarar os custos com a energia elétrica e o impacto do consumo
excessivo sobre o meio ambiente como algo mais do que preocupações triviais
(CARMONA, 2008). Ou seja, aumentar a capacidade de trabalho, com
equipamentos que estão disponíveis, de forma econômica e funcional.
No início, o processo de virtualização era viável apenas para grandes
empresas. Devido à crescente pesquisa de novas tecnologias, tornou-se acessível
para pequenas e médias empresas. Segundo Laureano (2006, p.15) “a utilização de
máquinas virtuais está se tornando uma alternativa para vários sistemas de
computação pelas vantagens em custos e portabilidade, inclusive em sistemas de
segurança”.
Embora a virtualização seja relativamente nova em pequenas e médias
empresas, seus benefícios têm sido vistos com bons olhos pelas organizações. O
Gartner Inc. (instituto de pesquisa de tecnologia de informação) prevê que até 2012
a maioria das empresas de porte médio considerará a virtualização de 100% de seus
servidores, impulsionadas, sobretudo, pela economia gerada na consolidação destes
equipamentos (NEIVA, 2010).
Entretanto, o processo de virtualização demanda planejamento e estratégia.
Uma mudança na estrutura de TI deve ser muito bem analisada, pois não se pode
15. 15
deixar levar-se por tendências, sem que elas agreguem resultados positivos.
Segundo Carmona et al (2006, p. 29). “Juntar-se cegamente ao boom não é uma
boa estratégia, mas em vez disso, vale calcular os possíveis benefícios”.
1.1 MOTIVAÇÃO
Devido à adoção crescente de virtualização por parte das empresas, essa
pesquisa tem como motivação principal discutir essa técnica e trazer algumas
conclusões para aqueles que buscam implantar soluções e conhecer algumas
ferramentas utilizadas na atualidade.
O Xen desponta como uma boa opção para aqueles que são adeptos de
software livre. Carmona (2008, p.42) diz que ”... suportado por uma grande
comunidade de usuários, a atual alta instância para soluções de virtualização é, em
geral, e certamente a mais famosa alternativa de código aberto para este fim, o Xen
se esforça para ser aceito no mundo Linux”. O movimento de código aberto participa
ativamente da criação de ferramentas para o setor de virtualização: basta ver que o
Xen é sinônimo de virtualização de alto desempenho em servidores desde o início
de 2006. (CARMONA, 2008).
Por outro lado, o VMware, de código proprietário, é uma das opções mais
aderidas para virtualizar ambientes. O VMware é hoje a máquina virtual para
plataforma x86 de uso mais difundido. (LAUREANO, 2006).
Tendo em vista a grande possibilidade de uso desses fabricantes, o trabalho
busca pesquisar as soluções disponibilizadas pelos dois sistemas citados
anteriormente e trazer seus benefícios, pontos negativos e particularidades.
1.2 OBJETIVOS
Esta pesquisa tem como objetivo discutir e apresentar ferramentas para a
virtualização de servidores, analisando duas das principais opções no mercado
atualmente. No final serão apresentadas algumas conclusões. Para isso seguiremos
as seguintes metodologias:
16. 16
o Realizar estudo sobre a história da virtualização, bem como a evolução
do seu uso comercial, por meio de pesquisa bibliográfica, materiais
disponibilizados pelos fabricantes dos sistemas abordados e sites
específicos, traçando sua evolução no mercado em todos esses anos.
o Instalar o Citrix XenServer e o VMware em uma máquina de testes,
com o intuito de analisar as características de cada um. Fazer um
comparativo entre os dois verificando custos, benefícios, limitações,
requisitos necessários para instalação e desempenho por meio de
testes reais.
1.3 ORGANIZAÇÃO DA MONOGRAFIA
Essa pesquisa é composta por seis capítulos, cuja estrutura encontra-se
segmentada da seguinte forma: o capítulo dois mostra a fundamentação teórica de
sistemas de virtualização, bem como suas vantagens, desvantagens, história,
conceitos de máquinas virtuais, emuladores e suas diferenças. Ainda demonstra os
tipos e técnicas de virtualização, as principais dificuldades e etapas do processo de
virtualização e o cenário atual.
O capítulo três expõe as principais tecnologias presentes no mercado e suas
características mais marcantes, dando ênfase para os sistemas chaves desse
trabalho, o VMware e o Xen. Também serão abordadas outras opções disponíveis
no mercado e sua importância no tema.
No capítulo quatro é apresentado o ambiente proposto, a solução, a
demonstração prática e os resultados obtidos nos testes.
Finalmente o capítulo cinco traz conclusões a respeito do trabalho
desenvolvido e propõe sugestões para trabalhos futuros.
17. 2 CONCEITOS DE VIRTUALIZAÇÃO
De acordo com o dicionário online Aurélio (2010), virtual é: “Que não se
realizou, mas é suscetível de realizar-se; potencial”, e ainda de acordo com o
mesmo dicionário, “realidade virtual é simulação de um ambiente real por meio de
imagens de síntese tridimensionais”.
O termo “virtualização”, usado nessa pesquisa, trata de uma forma mais
específica de elementos virtuais. Aqui trataremos de virtualização de máquinas,
sistemas operacionais e aplicativos (em especial de servidores de sistemas
operacionais), de que forma a indústria da tecnologia da informação se desenvolveu
ao longo da história para apresentar ferramentas cada vez mais capazes de
gerenciar um sistema como se fosse real, e como surgiu essa necessidade.
Não é raro presenciarmos Centro de Processamento de Dados (CPD) super
lotados de máquinas, periféricos, monitores, entre outros. Todo esse equipamento
demanda estrutura elétrica e de resfriamento, e quanto mais equipamentos, maior a
necessidade de manutenção.
“A virtualização vem também ao encontro das premissas de
sustentabilidade expressas na “TI verde”, movimento que busca dotar as
organizações de ações voltadas para o meio ambiente, com foco no uso
consciente de recursos.” (PRODEMGE, 2009, p.20)
Com a virtualização, as organizações se deram conta que é possível reduzir
custos e espaço sem perder poder de processamento. A virtualização surgiu e
rapidamente ganhou notoriedade nas empresas pelo fato de trazer tantos benefícios,
alta disponibilidade, diminuição de cabeamento e consumo de energia, ganho de
espaço, entre outras vantagens, com pouco investimento.
No artigo para o site Decision Report, Daniel Neiva, Diretor de Vendas para
Pequenas e Médias Empresas da Dell América Latina, afirma que “... a virtualização
é uma das mais interessantes tecnologias surgidas nos últimos anos. No mundo
empresarial, é a última palavra em faça mais com menos” (NEIVA, 2010). Devido à
possibilidade de aumentar a capacidade instalada, sem adquirir novos
equipamentos.
A máquina virtual pode possuir seu próprio sistema operacional, memória
virtual, espaço de armazenamento e seus periféricos. Davis (1990, p.445) afirma que
18. 18
“para o usuário, a máquina virtual é o computador, os aspectos relativos à máquina
real são transparentes, ocultos pelos recursos do sistema operacional real”. Dessa
forma, a máquina virtual é para o usuário uma máquina real, mas por trás estão
inúmeros recursos que podem ser explorados pelos seus administradores.
2.1 DEFINIÇÃO DE MÁQUINAS VIRTUAIS
A máquina virtual funciona como uma cópia exata de uma máquina real,
incluindo seus recursos de hardware, com a diferença que trabalha com esses
recursos de forma isolada. Laureano (2006, p.17) define máquina virtual (virtual
machine – VM) como sendo “uma duplicata eficiente e isolada de uma máquina real
[...] a IBM (International Business Machines) definiu a máquina virtual como uma
cópia isolada de um sistema físico”.
[...] “na virtualização, informamos a processadores e outros recursos,
presentes fisicamente em uma única máquina virtual de que eles podem
fazer parte de outras máquinas, cada qual com um sistema operacional e
configurações diversas. (CARMONA et al, 2008, p.16).
Mesmo sendo dependente de outro sistema operacional, que faz essa
máquina virtual funcionar, a máquina virtual opera como se fosse independente, com
seu próprio drive de CD-ROM (Compact Disk Read Only Memory), sua própria
entrada USB (Universal Serial Bus), sua própria memória e etc. Cada máquina
virtual tem seu próprio sistema operacional virtual e seus próprios periféricos virtuais
(DAVIS, 1990).
O sistema operacional real trabalha fazendo a comunicação com os
componentes do hardware, e qualquer outro dispositivo móvel por meio de seu
kernel. Para Alves (2006, p.16), “O kernel é responsável pelo gerenciamento básico
das funções do sistema operacional, que supre todas as funções necessárias à
utilização do hardware”.
Da mesma forma acontece com sistemas virtualizados, que identificam
qualquer entrada como sendo uma entrada física. Isso significa que ao colocarmos
um dispositivo USB no gabinete, o conteúdo dele estará disponível para os dois
SO’s virtualizados, além do SO físico.
19. 19
A virtualização pode ser definida como a tecnologia capaz de simular
ambientes totalmente autônomos em uma mesma máquina física, permitindo,
inclusive, a convivência independente de aplicações em diferentes sistemas
operacionais. (PRODEMGE, 2009).
As máquinas virtuais são vistas pelos usuários e funcionam como se fossem
computadores físicos, e são facilmente transportáveis de máquinas reais. Assim,
confirma Tanenbaum (2007, p. 50), “as máquinas virtuais promovem maior
desacoplamento entre hardware e software o que permite um ambiente completo ser
movido de uma máquina para outra”.
A figura 1 mostra a imagem que o usuário tem em uma virtualização do
desktop. Neste exemplo temos o sistema operacional Windows XP e o monitor de
máquina virtual virtualizando outro Windows XP e o Ubuntu Linux. Um monitor de
máquina virtual instalado em um sistema operacional possibilita o uso de outros
sistemas operacionais.
Figura - Virtualização de Desktop
(MANARA, 2007)
20. 20
2.2 HISTÓRICO DA VIRTUALIZAÇÃO
Os primeiros pesquisadores em computação estavam interessados no
aumento da robustez e estabilidade oferecidas pelo hipervisores (MATHEWS, 2008).
De acordo com Laureano (2006, p.13) “o termo virtualização vem sendo usado
desde os primórdios da computação, na década de 1950, quando pesquisadores da
Universidade de Manchester, na Inglaterra, desenvolveram o conceito de máquina
virtual”.
A IBM foi a pioneira no uso de máquinas virtuais. No início dos anos 1960, a
empresa sentiu a necessidade de simplificar a operação nos mainframes
(computadores de grande porte), pois o sistema operacional estava perdendo
mercado, e sentia-se a necessidade de agregar outros sistemas nos hardwares
fabricados pela corporação. Uma das razões para introduzir a virtualização foi
permitir que o software herdado fosse executado em caros hardwares de mainframe.
(TANEMBAUM, 2007).
Segundo Laureano (2006, p.15) “as origens do conceito de máquina virtual
remetem ao início da história dos computadores, no final dos anos 1950 e início de
1960. As máquinas virtuais foram originalmente desenvolvidas para centralizar os
sistemas de computador utilizados no ambiente VM/370 da IBM”.
No inicio dos anos 1960, o principal sistema operacional da IBM era o OS,
porém o DOS já era bastante popular, em conseqüência a IBM viu-se com
um problema nas mãos. Era evidente a necessidade de um novo sistema
operacional. A manutenção da compatibilidade entre dois sistemas
incompatíveis em essência, DOS e OS, foi considerada fundamental, e o
VM surgiu como solução. (DAVIS, 1990, p. 447).
De acordo com Davis (1990, p.447) “na Virtual Machine (VM) da IBM os
recursos do computador real são gerenciados por um sistema operacional de alto
nível chamado programa de controle (CP) [...] os sistemas operacionais são
gerenciados pelo programa de controle, e as rotinas aplicativas são executadas sob
os sistemas operacionais virtuais”. Na prática, o CP simula um computador real em
cada máquina virtual, o que o coloca como primeiro software a possibilitar a
virtualização de sistemas.
A virtualização foi desenvolvida na década de 1960 para particionar
hardwares grandes de mainframe, a fim de aproveitá-los melhor. (VMware. 2010).
21. 21
Essas partições permitiam que os mainframes assumissem múltiplas tarefas, ou
seja, que executassem vários aplicativos e processos ao mesmo tempo. Como os
mainframes eram recursos caros na época, foram desenvolvidos sistemas para
serem particionados de forma a aproveitar completamente o investimento. Mathews
(2008, p.15) afirma que “O sistema 370 da IBM foi o primeiro computador disponível
comercialmente projetado para virtualização”.
[...] nos anos de 1960, pesquisadores da IBM desenvolveram o sistema
CP67, que trazia consigo o conceito de máquina virtual. “... uma camada de
virtualização de hardware permitia particionar o hardware da máquina em
unidades lógicas menores e autônomas [...] permitindo inclusive executar
várias instâncias do sistema operacional ao mesmo tempo”. (LAUREANO,
2006, p. 13).
Foi na década de 1990 que o conceito de máquina virtual começou a ser
popularizado, data em que os computadores passaram a ser mais acessíveis por
pequenas e médias empresas, além de usuários domésticos. De acordo com
Laureano (2006, p.13) “o conceito de máquina virtual permaneceu pouco conhecido
durante décadas, até seu renascimento nos Computadores Pessoais (PC) de
plataforma Intel, na metade dos anos 1990”.
No início dos anos de 1990, um grupo de alunos da faculdade de Stanford
(Estados Unidos) usou máquinas virtuais no sistema operacional IRIX, da Silicon
Graphics, que foi projetado para executar em um hardware sem suporte a
virtualização. Os desenvolvedores do projeto introduziram modificações específicas
no sistema operacional, modificando e recompilando o IRIX para permitir a
virtualização. Essa técnica, mais tarde, seria conhecida como paravirtualização.
Então a equipe voltou sua atenção para modificar outra plataforma não voltada para
virtualização, o x86. Isso teve uma influencia direta na fundação da VMware, e a
introdução do primeiro produto comercial de virtualização dessa plataforma,
conseguindo executar arquivos binários sem alterações no Windows. (MATHEWS,
2008).
Tanenbaum (2007, p.48) destaca duas razões principais para a virtualização
voltar a ficar em evidência no final dos anos 90. “... estamos enfrentando uma
situação em que o software herdado não pode ser mantido no mesmo passo que as
plataformas de que depende. [...] A diversidade de plataformas e máquinas podem
ser reduzidas deixando que cada aplicação execute em sua própria máquina virtual.”
22. 22
[...] É justamente esse panorama criado pela evolução – oferta de
máquinas, espaços lógicos ociosos, espaços físicos escassos, volume de
sistemas legados, custos altos de operação e manutenção – que promoveu
o retorno da virtualização de servidores à pauta dos executivos de TI, mais
de 40 anos depois, totalmente repaginada, com novos conceitos,
configurações, objetivos e recursos. Os benefícios e as facilidades da
virtualização estenderam naturalmente seu uso para aplicação em desktop,
sistemas operacionais e linguagens de programação. (PRODEMGE, 2009,
p. 20).
Mathews et al (2008, p.16) afirma que “...desde 2005, fabricantes de
processadores como a Intel e a AMD aumentaram o suporte via hardware em suas
linhas de produtos”.
[...] A evolução da indústria da tecnologia para os servidores de menor porte
e baixo preço desviou, então, a tendência da computação centralizada para
sua descentralização, principalmente na forma da tecnologia
cliente/servidor. Aliada a essa tendência, o advento da internet e a
disseminação das redes de computadores consolidaram o modelo das
plataformas baixas. (PRODEMGE, 2009, p. 20).
Hoje diversas empresas estão competindo no mercado da virtualização. A
VMware vem aumentando as opções para as variadas usabilidades, a Microsoft,
entrou no mercado somente nessa década, e já lançou o Hyper-V, nativo do
Windows 2008 Server R2, além de muitas opções de software-livre, tanto para
Windows quanto para Linux, e também para instalação direta no hardware.
A figura 2 mostra a evolução da virtualização, desde o nascimento da
virtualização, na década de 1950, até a atualidade. Nota-se o contínuo uso em
máquinas de grande porte, e o começo da aplicação em computadores pessoais no
fim da década de 1990. Somente no fim dos anos 1990 que a tecnologia passou a
ser mais difundida, com o surgimento do VMware Workstation. Na década de 2000,
podemos notar o surgimento de muitas tecnologias, com destaque para o
lançamento do Xen, em 2003, e o KVM, em 2006. Há pouco mais de três anos a
criação para celulares e palms traz boas perspectivas de que o mercado de
virtualização não pára de evoluir.
23. 23
Figura - Evolução Histórica da Virtualização
(PRODEMGE, 2009)
2.3 UTILIZAÇÃO DE MÁQUINAS VIRTUAIS
Máquina virtual (Virtual Machine – VM) refere-se à instância de um hardware
e um sistema operacional também virtualizado sob forma de simulação. (FAVACHO;
MIRANDA; OLIVEIRA, 2008).
O computador é constituído de hardware, sistema operacional e aplicações
(CARMONA, 2008). Devido aos diferentes fabricantes, pode acontecer de uma
24. 24
determinada aplicação não ser compatível com um sistema operacional. Por vezes,
os fabricantes desenvolvem seu aplicativo baseado em determinada arquitetura de
hardware, e nem sempre temos disponível a mesma arquitetura pra usar seu
aplicativo. Laureano (2006, p.16) afirma que “... o papel do hardware é executar as
operações solicitadas pelas aplicações. O sistema operacional recebe as
solicitações das operações [...] e controla o acesso ao hardware”.
Esse tipo de problema pode ser evitado com a virtualização, pois esta insere
uma camada entre o hardware e o sistema operacional, que possibilita a utilização
de aplicações que não foram projetadas para um determinado hardware.
De acordo com Tanenbaum (2003, p.44) “como cada máquina virtual é uma
cópia exata do hardware, cada uma delas pode executar qualquer sistema
operacional, capaz de ser executado diretamente sobre o hardware.”
A figura 3 ilustra alguns sistemas operacionais existentes, seu hardware
compatível, aplicações e compatibilidades.
Figura - Alguns Sistemas Existentes
(LAUREANO, 2006)
Sistemas operacionais MacOS são incompatíveis com hardware projetados
para Windows e suas aplicações. Da mesma forma ocorre com sistemas
operacionais Linux e Windows, conforme ilustra a figura 4.
25. 25
Figura - Sistemas Incompatíveis
(LAUREANO, 2006)
No momento em que encontramos o problema da dependência de hardware,
sistemas e aplicativos de um mesmo fabricante, a virtualização pode ser a solução
para esse impasse. Laureano (2006, p.16) afirma que “... a máquina virtual cria uma
“camada” para compatibilizar diferentes plataformas [...] essa camada é chamada de
virtualização”. A figura 5 ilustra a camada de compatibilidade disponibilizada pela
máquina virtual.
Figura - A Camada de Compatibilidade
(LAUREANO, 2006)
A idéia de máquina virtual é freqüentemente usada nos computadores
pessoais. Tanenbaum (2003, p.44) explica que:
[...] A idéia de máquina virtual é bastante usada hoje em dia em um contexto
diferente: a execução de velhos programas do MS-DOS. Quando o Pentium
e seus softwares estavam sendo projetados, a Intel e a Microsoft
perceberam que haveria uma grande demanda para executar softwares
antigos em hardwares novos. Por isso, a Intel disponibilizou um modo virtual
8086 no Pentium. Nesse modo de funcionamento, a máquina age como se
26. 26
fosse um 8086 (que é idêntico a um 8088 do ponto de vista de software),
inclusive com o endereçamento de 16 bits e com limite de 1 MB(Mega-byte).
2.3.1 Monitor de Máquina Virtual
O monitor (também chamado de hypervisor, VMM, ou Virtual Machine
Monitor) é um dos principais conceitos envolvidos no estudo de máquinas virtuais.
(FAVACHO; MIRANDA; OLIVEIRA, 2008). O monitor pode criar uma ou mais
máquinas virtuais em uma única máquina real (LAUREANO, 2006).
O hypersivor é, portanto, o elemento fundamental da virtualização, uma vez
que fornecerá recursos da máquina física para as estações virtuais residentes em
determinado ambiente, fazendo com que cada uma delas funcione de forma
independente, como se fossem máquinas físicas. (PRODEMGE, 2009, p. 21).
Exemplos típicos dessa abordagem são VMware( TANENBAUM, 2007 apud
SUNGERMAN et al., 2001) e Xen ( TANENBAUM, 2007 apud BARHAN et al., 2003)
2.3.2 Emuladores e Máquinas Virtuais
Emulador é um tipo de sistema que a primeira vista se confunde com
virtualização. Laureano (2006, P.18) explica que “... um emulador engana o sistema,
fazendo com que todas as operações da máquina real sejam implementadas em um
software [...] ocorre à interpretação de um código desenvolvido para outra
plataforma”.
Ao emular um sistema, estamos enganando um sistema ou aplicativo,
“afirmando” a esse sistema ou aplicativo que suas instâncias estão localizadas numa
máquina ou SO base diversos de sua localização real. (CARMONA 2008).
A emulação reflete todos os estados internos do ambiente ao mesmo tempo
(FAVACHO; MIRANDA; OLIVEIRA, 2008). Por exemplo, um aplicativo desenvolvido
para a plataforma Windows rodando no Linux, ou um game do Playstation podendo
ser jogado diretamente no computador.
Um emulador apresenta algumas desvantagens em relação à virtualização.
Laureano (2006, p.18) salienta que “... emuladores são muito complexos, pois
necessitam simular quase todas as instruções do processador e demais
características do hardware que os circundam”.
27. 27
Emulação é um tipo de virtualização mais complexa, devido o fato de ter
que emular de maneira precisa o comportamento de um hardware. [...] Um
ponto importante que deve ser lembrado é que este tipo de virtualização se
torna útil para os desenvolvedores de firmware e de hardware, uma vez que
a funcionabilidade de uma solução pode ser validada sem a necessidade de
hardware real. (OLIVEIRA, 2007, p. 5).
Laureano (2006, p.21) ressalta as diferenças entre emuladores e máquinas
virtuais ao afirmar que “... Enquanto o emulador fornece uma abstração completa
entre o sistema em execução e o hardware, o monitor de máquina virtual fornece
uma interface idêntica ao hardware”.
2.3.3 Tipos de Emuladores
• Firmware: Programação em hardware ou dados de computador que são
armazenados permanentemente em um chip de memória de hardware.
Laureano (2006, p.21) afirma que “é a mais rápida tecnologia de emulação,
mas também a mais complexa de implementar e manter a compatibilidade
com versões anteriores”.
• Software: O emulador reconfigura a máquina em uso para aplicação que se
deseja emular, considerada a forma mais fácil de implementar e portar para
outras plataformas. Laureano (2006).
• Emulação Combinada: Composto de hardware e software. O software faz o
papel principal, e o hardware fornece partes chaves do processo, e oferece
grande flexibilidade em termos de projeto. Laureano (2006).
2.3.4 Tipos de Máquinas Virtuais
Com a evolução da virtualização surgiram diferentes práticas para atender
diferentes necessidades. Carmona et al (2008, p.32) afirma que “... é essencial saber
se a camada de virtualização atua tanto sobre o aplicativo como sobre o SO do
hóspede, situação em que estamos falando de virtualização do sistema”. Esse que é
o tema principal dessa pesquisa pode ser ainda divida em duas categorias,
28. 28
máquinas virtuais tipo I e tipo II. Outros tipos de virtualização, como de aplicações,
hardware entre outros, serão abordados posteriormente.
2.3.4.1 Máquinas Virtuais - Tipo I
Hypervisors Clássicos: Sistema em que o monitor é implementado entre o
hardware e os sistemas convidados. Segundo Favacho, Miranda e Oliveira (2008 p.
18) “o tipo I é aquele que é executado diretamente no hardware da máquina, como
se fosse um sistema operacional”.
Exemplos desse tipo de virtualização são o Xen e VMWARE ESXi . Laureano
(2006, p.21) explica que “... o monitor tem o controle do hardware e cria um
ambiente de VM’s. Cada uma delas se comporta como uma máquina física completa
que pode executar seu próprio SO”.
A Figura 6 ilustra esse conceito, o monitor (VMM) representa o software que
vai gerenciar a comunicação entre hardware e sistemas operacionais, os SO’s
trabalham de forma independente.
Figura - Máquina Virtual Tipo I
(LAUREANO, 2006)
2.3.4.2 Máquinas Virtuais - Tipo II
O tipo 2 é aquele que é executado sobre um sistema operacional existente
em uma segunda camada.(FAVACHO; MIRANDA; OLIVEIRA 2008, p.18).
Conforme ilustra a figura 7, um sistema operacional hospeda um monitor de
máquina virtual, que opera junto com as aplicações do SO. Um ou mais sistemas
operacionais rodam no VMM e podem oferecer as suas aplicações. Esse modelo é
29. 29
mais usado em máquinas virtualizadas em desktop, e também em servidores, como
o Hyper-V e o VMware Server.
Figura - Máquina Virtual Tipo II
(LAUREANO, 2006.)
Laureano (2006, p.22) explica que “... o monitor do tipo II funciona de forma
análoga ao de tipo I, sendo a sua maior diferença a existência de um sistema abaixo
desse. Nesse modelo, o monitor simula todas as operações que o sistema anfitrião
controlaria”. Carmona et al (2008, p.35) confirma, “... A camada de virtualização [...]
interpreta as informações privilegiadas do sistema operacional hóspede. É
necessário porque os hóspedes não sabem que eles não têm propriedade exclusiva
sobre o hardware conforme esperado, mas precisam dividi-lo”.
2.3.4.3 Abordagens Híbridas
Otimizações nas arquiteturas de máquinas virtuais podem modificar o modo
como as máquinas virtuais, hardware e sistema anfitrião trabalham. Laureano (2006,
24) define essas modificações como abordagens híbridas.
Na prática é comum aplicar técnicas para aperfeiçoar o desempenho das
arquiteturas de máquinas virtuais. Laureano (2006, p.22) define quatro otimizações:
Em monitores do Tipo I (Figura 8):
O sistema convidado acessa diretamente o hardware. Laureano (2006, p.23)
explica que “... essa forma de acesso se dá pela implementação de modificações no
30. 30
núcleo do sistema convidado e no monitor. Essa otimização ocorre no subsistema de
gerência de memória do ambiente XEN”.
Figura - Abordagem Híbrida do Tipo I
(LAUREANO, 2006)
Em monitores do tipo II (Figura 9):
1. O sistema convidado acessa diretamente o sistema anfitrião. Laureano
(2006, p.23) diz que “... essa otimização é implementada pelo monitor,
oferecendo partes da Interface de API (Interface de Programação de
Aplicações) do sistema anfitrião ao sistema convidado. Um exemplo
dessa técnica ocorre no sistema de arquivos do VMware, onde o
sistema convidado faz uso da implementação de sistema de arquivos
nativos existentes no sistema anfitrião. (LAUREANO 2006)
2. O sistema convidado acessa diretamente o hardware. Nesse caso a
implementação é feita parcialmente pelo monitor, e parcialmente pelo
sistema anfitrião. Laureano (2006, P.23) afirma que o VMware usa
essa otimização no acesso direto a dispositivos físicos, como interface
de rede, por exemplo.
3. O monitor acessa diretamente o hardware. Nesse caso o driver é
instalado no sistema anfitrião, oferecendo ao monitor uma interface de
baixo nível para acesso ao hardware. Essa abordagem é usada por
sistemas VMware.( LAUREANO, 2006).
31. 31
Figura - Abordagem Híbrida Para o Tipo II
(LAUREANO, 2006)
2.4 TÉCNICAS DE VIRTUALIZAÇÃO
Existem várias técnicas usadas na virtualização. Favacho, Miranda e Oliveira
(2008) afirmam que as principais são a virtualização total, paravirtualização e
recompilação dinâmica. Vamos a seguir tratar dessas técnicas.
2.4.1 Virtualização Total
Na virtualização total, também chamada de virtualização completa ou nativa,
uma estrutura completa de hardware é virtualizada, e o sistema virtualizado não
precisa ser alterado (Laureano, 2006). Para Favacho, Miranda e Oliveira (2008,
p.20) “...a técnica de virtualização total utiliza uma simulação completa do hardware,
de modo que qualquer sistema operacional possa ser executado”.
Entre os benefícios e dificuldades desta técnica, Laureano (2006) cita o fato
da virtualização total não sofrer alteração, mas com o agravo do sistema convidado
ser executado de forma mais lenta.
Outro problema é que o sistema convidado precisa implementar alternativas
para que certas operações possam ser executadas em processadores que não
suportam a virtualização nativamente, o Intel 32 bits por exemplo. (Laureano, 2006).
A Figura 10 ilustra a representação da virtualização total descrita por
Laureano.
32. 32
Mathews et al (2008, p.7) afirma que “ ...neste caso, o hypervisor vigia o
acesso ao hardware subjacente e dá a cada sistema operacional hóspede a ilusão
de ter sua própria cópia desse hardware”.
Figura - Representação da Virtualização Total
(LAUREANO, 2006)
O VMware Workstation e VMware Server trabalham nessa técnica de
virtualização, e o Xen suporta virtualização completa em arquiteturas básicas com o
suporte de hardware para a virtualização total ( MATHEWS, 2008).
2.4.2 Paravirtualização
Paravirtualização é uma técnica que apresenta uma API para as máquinas
virtuais. Essa API é similar, mas não idêntica ao hardware real (OLIVEIRA 2007,
p.7). Laureano (2006, p.30) diz que “o sistema a ser virtualizado sofre alterações
para que a interação com o monitor de máquinas virtuais seja mais eficiente”. Esse
cenário é ilustrado pela Figura 11.
33. 33
Figura - Representação da Paravirtualização
( LAUREANO, 2006)
[...] Já a paravirtualização ou virtualização parcial é uma alternativa à
virtualização total. Somente permite a execução de sistemas operacionais
parcialmente adaptados e não virtualiza todos os recursos computacionais.
As adaptações exigidas nos sistemas hóspedes são para que eles sempre
passem o controle para o VMM quando forem executar uma instrução que
altere o estado do sistema. (Lopes; Ribeiro, 2009, p. 96).
Na paravirtualização é necessário que os sistemas sejam adaptados
especificamente para essa técnica. Carmona (2008, p.235) explica que “... um
sistema Linux, precisa de um kernel especialmente modificado para ser executado
nessa instância (paravirtualização)”.
Basicamente o hypervisor exporta uma versão modificada do hardware físico
subjacente. As modificações são introduzidas para facilitar e acelerar o suporte a
múltiplos sistemas operacionais hóspedes, sendo necessárias apenas pequenas
mudanças nos SO’s hóspedes. São exemplos dessa técnica o User-mode Linux e o
Xen (MATHEWS, 2008).
A paravirtualização reduz a complexidade do desenvolvimento das máquinas
virtuais, já que historicamente os processadores não suportam a virtualização nativa
A principal razão para utilizar a paravirtualização é o desempenho obtido, uma vez
que ela compensa as modificações que serão implementadas nos sistemas
convidados. (Laureano, 2006).
34. 34
Mathews et al (2008, p.9) afirma que “ a escolha da paravirtualização para o
Xen tem mostrado que consegue obter maior desempenho de isolamento mesmo
em um hardware de computador pessoal típico”.
2.4.3 Relação entre Virtualização Completa e Paravirtualização
Na virtualização completa, a máquina real aloca um espaço físico da memória
para a máquina virtual, e a máquina virtual interpreta como se estivesse usando o
início da memória. De acordo com Laureano (2006, p.31), “... a máquina real tem um
endereçamento iniciado em 0000 até FFFF. O monitor reserva o espaço de memória
compreendido entre 000F e 00FF, mas o sistema convidado enxerga esse espaço
como sua memória total e, portanto, iniciando em 0000 e finalizando em 000F”.
Conforme ilustra a Figura 12.
Na paravirtualização isso não ocorre, pois a máquina virtual é informada pelo
monitor qual o espaço de memória poderá ser utilizado, e o sistema convidado
acessa diretamente a memória sem interferência do monitor de máquinas virtuais
(LAUREANO, 2006).
Na paravirtualização é preciso que os sistemas sejam adaptados, já na
virtualização total os sistemas podem ser instalados exatamente como uma máquina
convencional. (CARMONA 2008).
Para Oliveira (2007, p.9) “a paravirtualização possui melhor desempenho que
a virtualização total. Isso se deve ao fato de os drivers de dispositivos executados
nas máquinas paravirtualizadas serem os drivers reais para os dispositivos físicos,
diferentemente dos drivers emulados na virtualização completa”.
O mesmo processo ocorre para o acesso ao disco. Laureano (2006, P.31)
afirma que “... no processo de virtualização total o sistema enxerga o disco como seu
para uso exclusivo, na paravirtualização o sistema sabe que o disco é virtualizado”.
35. 35
Figura - Alocação de Memória na Virtualização Total
(LAUREANO, 2006)
2.4.4 Recompilação Dinâmica
A recompilação dinâmica é uma técnica usada para aumentar o desempenho
de aplicativos e sistemas.
Segundo Laureano (2006, p.32), “com a compilação, durante a execução, o
sistema pode adequar o código gerado de forma a refletir o ambiente original do
programa. [...] Em outros casos, um sistema pode empregar a recompilação como
forma de adaptação, para executar uma representação portátil do sistema, tal como
bytecodes de Java”.
Laureano (2006, p.32) classifica a recompilação dinâmica em sete passos.
1. Agrupamento de bits: Um emulador ou máquina virtual pode usar o
conhecimento sobre o formato de um executável compilado, e pelo uso de
técnicas heurísticas, ou seja, por aproximação do objetivo, recuperar os
conjuntos de bits do executável e reordená-los.
2. Desmontagem: Os bits são desmontados e transformados em um conjunto
de instruções e operadores ordenados em partes.
3. Geração intermediária do código: As instruções são transformadas para
uma representação de máquina independente.
4. Decompilação: A representação gerada é transformada em uma linguagem
de alto nível (por exemplo o “C”)
36. 36
5. Compilação: O Código gerado é novamente compilado para a nova
plataforma.
6. Montagem: Os códigos-objeto gerados pela compilação são novamente
montados, preparando a criação de um novo executável.
7. Armazenagem dos bits: Os bits são agrupados de forma a gerar o novo
executável.
2.5 Formas de Virtualização
Segundo Laureano (2006, p.24) “... os softwares podem ser utilizados
para fazer os recursos parecerem diferentes do que realmente são, e essa
capacidade é chamada de virtualização”. Além das técnicas de virtualização
citadas nas seções anteriores, existem diversas formas de virtualizar
diferentes recursos.
2.5.1 Virtualização de Sistema Operacional
Nesta forma, a virtualização exporta um sistema operacional como
abstração de um sistema específico, como acontece com o FreeDSD
(Laureano, 2006). A Figura 13 demonstra a arquitetura dessa forma de
virtualização.
Figura - Virtualização do Sistema Operacional
(LAUREANO, 2006)
37. 37
Mathews et al (2008, p.11) afirma que “...nessa técnica não existe
monitor de máquina virtual, em vez disso tudo é feito inteiramente com uma
única imagem tradicional de sistema operacional”.
Essa técnica pode ser mais adequada em um ambiente onde cada
hóspede deseja executar o mesmo sistema operacional (MATHEWS, 2008).
2.5.2 Virtualização de Linguagem de Programação
Neste caso é criada uma máquina virtual para a execução de programas
específicos. A camada de virtualização exporta uma abstração para a execução de
programas escritos para essa virtualização. Java e Smalltalk são exemplos desse
tipo de máquina virtual (LAUREANO, 2006). A Figura 14 ilustra o conceito de
virtualização de linguagem de programação.
Figura - Virtualização de Linguagens de Programação
(LAUREANO, 2006)
Essa forma de virtualização pode fornecer recursos como variáveis de
ambientes, bibliotecas de interface com usuários e objetos que auxiliam na
programação de aplicativos (MATHEWS, 2008).
Além da abstração de uma máquina virtual para rodar aplicativos específicos,
a virtualização tem um importante auxilio na construção de softwares. O
programador pode ter em sua máquina todos os ambientes para desenvolver e fazer
os testes unitários necessários, e dispor de sistemas operacionais distintos, bem
como suas versões mais antigas, prevenindo problemas com incompatibilidade. O
programador também terá acesso a um repositório de controle de códigos-fonte,
servidor de banco de dados, arquivos, componentes e etc. (Microsoft, 2007). Assim
como ilustra a Figura 15.
38. 38
Figura - Ambiente de Desenvolvimento Virtualizado
(MICROSOFT, 2007)
[...] Quando a Sun Microsystens inventou a linguagem de programação
Java, inventou também uma máquina virtual, denominada JVM (Java Virtual
Machine). O compilador produz código para a JVM que é executado por um
programa interpretador da JVM. A vantagem é que o código pode ser
enviado pela internet a qualquer computador que tenha um interpretador
JVM e ser executado. (TANENBAUM, 2003 p.45).
2.5.3 Virtualização de Hardware
A virtualização exporta o sistema físico como se fosse parte real do sistema, e
possibilita o funcionamento de softwares sem sofrer incompatibilidade. Por exemplo,
um aplicativo escrito para arquitetura x86 sendo executado em um MAC. Segundo
Laureano (2006, p. 24), “esse foi o modelo adotado na década de 1960 para o
39. 39
VM/370 nos mainframes IBM e é a tecnologia utilizada pela VMware na plataforma
x86”. O modelo é ilustrado pela Figura 16.
Figura - Virtualização de Hardware
(LAUREANO, 2006)
2.5.4 Virtualização de Aplicação
Virtualização de aplicação surge da necessidade de resolver problemas de
incompatibilidade entre aplicações no mesmo sistema operacional. Por exemplo,
uma aplicação pode exigir uma DLL (Dynamic-link library) de versão diferente que
outra aplicação vai precisar. É nesse cenário que se torna viável a virtualização de
aplicação.
[...] A virtualização de aplicativos resolve esse problema [incompatibilidade]
criando cópias específicas para a aplicação de todos os recursos
compartilhados. As configurações que uma aplicação pode compartilhar
com outras em seu sistema -- entradas de registro, DLLs específicas, e mais
-- são, em vez disso, empacotadas com ele e executadas no cache da
máquina, criando uma aplicação virtual. Quando uma aplicação virtual é
implantada, usa sua própria cópia desses recursos compartilhados.
(MICROSOFT, 2009).
A Figura 17 ilustra a independência das aplicações em uma arquitetura de
virtualização de aplicações. No primeiro quadro as aplicações estão de forma
independente do sistema operacional para ilustrar o conceito de independência de
40. 40
arquivos de configuração, no segundo quadro todos os aplicativos compartilham os
mesmo arquivos de configuração.
Figura - Virtualização de Aplicação
(MICROSOFT, 2009)
2.5.5 Virtualização da Apresentação
A virtualização da apresentação é a forma de apresentar ao usuário uma
interface configurada, que é executada em outra máquina, conforme mostra a Figura
18. A virtualização de apresentação cria seções virtuais em que as aplicações em
execução projetam suas interfaces de usuário remotamente (MICROSOFT, 2009).
Um exemplo é Terminal Server da Microsoft.
Figura - Virtualização de Apresentação
(MICROSOFT, 2009)
41. 41
Segundo a Microsoft (2009), executar virtualização de apresentação pode
gerar alguns benefícios:
• Dados centralizados;
• Redução de custos. Se uma aplicação precisa ser atualizada,
nesse caso, só será necessário atualizar a estação do servidor,
pois todos os usuários acessam a mesma base;
• Elimina problema de incompatibilidade de sistema operacional;
• Melhoria de Desempenho. Em caso de máquinas mais antigas,
por exemplo, ao invés dessas máquinas executarem toda
aplicação e comunicação com o banco de dados localmente,
esse procedimento será realizado no servidor que disponibilizará
a apresentação.
2.5.6 Virtualização da Estação de Trabalho
A virtualização da estação de trabalho possibilita a usuários executarem em
seus computadores aplicativos não compatíveis e/ou legados, muito usados também
para criar uma máquina de testes para estudos ou mesmo para instalação de
aplicativos. Com isso, evita-se que esses aplicativos comprometam o funcionamento
normal da máquina. Usando a máquina virtual, os testes são isolados do sistema
principal. São exemplos dessa tecnologia o Microsoft Virtual PC e o VirtualBox da
Oracle. Na Figura 19 consta um exemplo de arquitetura de virtualização da estação
de trabalho.
[...] A virtualização de estações de trabalho hospedada por cliente cria um
ambiente de SO separado na estação de trabalho, permitindo que
aplicações de legado ou empresariais não-compatíveis operem dentro de
seu ambiente nativo em um sistema operacional de estação de trabalho
mais atual ou permitindo que dois ambientes de TI (por exemplo, particular e
corporativo) sejam executados simultaneamente no mesmo dispositivo
físico. (MICROSOFT, 2009).
42. 42
Figura - Virtualização de Desktop
(MICROSOFT, 2009)
2.5.7 Virtualização de Armazenamento
A virtualização de armazenamento é a forma de armazenar dados, de
maneira centralizada, sem que o usuário se preocupe de onde está acessando os
dados.
Um armazenamento virtualizado permite que o armazenamento físico de um
ambiente seja compartilhado em vários servidores de aplicações, e que dispositivos
físicos por trás da camada de virtualização sejam exibidos e gerenciados sem limites
físicos (MICROSOFT, 2009).
[...] A virtualização de armazenamento é o processo de consolidar vários
dispositivos físicos de diversos fabricantes e reorganizá-los em
agrupamentos virtuais e lógicos, ou em unidades de armazenamento. [...] A
virtualização de armazenamento não é novidade, tanto no conceito quanto
na prática. Definida a quase 20 anos na computações em mainframes, a
tecnologia está descobrindo uma nova oportunidade e importância com a
emergência das redes SAN’s (Storage Area Network). (NEXTG, 2009).
Um exemplo bastante simples é o redirecionamento de pastas no Windows,
que permite que as informações em uma pasta sejam armazenadas em qualquer
unidade de disco acessível pela rede (MICROSOFT, 2009).
43. 43
2.6 BENEFÍCIOS E DIFICULDADES DA VIRTUALIZAÇÃO
Apesar dos inúmeros benefícios viabilizados pela virtualização, existem os
pontos negativos. Aqui abordaremos as vantagens dessa tecnologia, bem como as
dificuldades e requisitos para implementação e o custo da virtualização.
2.6.1 Benefícios da Virtualização
A possibilidade de aumentar a capacidade instalada sem a necessidade de
adquirir novos equipamentos, com melhor aproveitamento da estrutura disponível, é
umas das principais vantagens da virtualização, por estar relacionada diretamente à
parte econômica. Outra vantagem é a possibilidade de manutenção de sistemas
legados. A virtualização contribui para aumentar a utilização do poder computacional
dos servidores, enquanto diminui o número de plataformas físicas necessárias
(OLIVEIRA, 2008 apud WILIAMS & GARCIA, 2007).
A virtualização aumenta a produtividade da infraestrutura, a segurança,
melhora o gerenciamento, diminui manutenção, além de economizar em recursos
humanos, físicos e consequentemente financeiros (MANARA, 2007).
Os investimentos inerentes à implementação de uma nova solução são
rapidamente compensados pelos ganhos em economia, com a redução de consumo
de energia, espaço e equipamentos (PRODEMGE, 2009, p. 21).
[...] A virtualização tem aplicação eficaz em diversas frentes nas
organizações. A tecnologia reduz custos de aquisição de servidores físicos
e agrega economia significativa nos custos operacionais, especialmente de
consumo de energia elétrica e manutenção, ao consolidar e particionar
sistemas [...] cabe ressaltar ainda a rápida disponibilidade de servidores, um
fator que pode ser considerado crítico, especialmente nas empresas
públicas, sujeitas à legislação específica para compras. O aspecto
relacionado à continuidade do negócio da empresa também se beneficia de
forma expressiva com a adoção da virtualização. (PRODEMGE, 2009).
Laureano (2006, p.35) destaca os principais benefícios ao utilizar máquinas
virtuais.
• Facilitar o aperfeiçoamento e testes de novos sistemas operacionais.
44. 44
• Auxiliar no ensino prático de sistemas operacionais e programação, ao
permitir a execução de vários sistemas para comparação no mesmo
equipamento.
• Executar diferentes sistemas operacionais sobre o mesmo hardware
simultaneamente.
• Simular configurações e situações, como por exemplo, a presença de
outros dispositivos de Entrada/Saída.
• Simular alterações e falhas no hardware.
• Garantir a portabilidade de aplicações legadas.
• Desenvolvimento de novas aplicações para diversas plataformas.
• Diminuição de custos com Hardware.
• Facilidade no gerenciamento, migração e replicação de computadores,
aplicações ou sistemas operacionais.
• Prover um serviço dedicado a um cliente específico com segurança e
confiabilidade.
Podemos destacar também a possibilidade de estudar efeitos de vírus e
outras pragas virtuais sem afetar o sistema hospedeiro, testes de atualizações ou
softwares experimentais, antes de aplicá-lo ao sistema em produção.
A virtualização oferece alta disponibilidade, realocando hóspedes quando
uma máquina servidora se torna indisponível. A virtualização permite um melhor
aproveitamento também do hardware, em máquinas com múltiplos processadores ou
múltiplos núcleos.
Com relação a custos com licenças de sistema operacional, a virtualização
também apresenta vantagens, uma vez que a Microsoft oferece licenças gratuitas
para máquinas virtualizadas Windows na versão Enterprise do Windows 2008, e dá
direito a quatro licenças de máquinas virtuais. Já a versão Windows 2008 Datacenter
oferece licenças ilimitadas para máquinas hóspedes virtuais (MCLEAN; THOMAS,
2010).
45. 45
2.6.2 Dificuldades da Virtualização
Criar uma máquina virtual é dedicar recursos de uma máquina física para a
execução da máquina virtual e suas aplicações. Dependendo da carga esperada em
cada máquina virtual, é necessário avaliar se a queda estimada no desempenho não
terá efeitos adversos sobre as aplicações que serão executadas (MICROSOFT,
2007).
McLean e Thomas (2010, p.324) afirmam que “... servidores com alto requisito
de I/O (Input/Output) ou alto requisito de processamento não são bons candidatos
para a virtualização”. Não adianta usar uma máquina virtual para executar uma
aplicação perto do limite de hardware da máquina física, afinal, junto com essa
aplicação terá a carga de processamento da máquina virtual, o sistema hóspede e o
sistema convidado.
Outro fator importante é que as máquinas virtuais trabalham de forma
independente do sistema hospedeiro, então é necessário um maior gerenciamento
dos sistemas. As atualizações e licenças devem ser administradas de forma
independente, ou seja, cada máquina virtual necessita de uma licença, em caso de
softwares proprietários, e também suas aplicações. É fundamental que os seus
fornecedores de software sejam consultados antecipadamente para verificar as
políticas de licenciamento e suporte de seus produtos em ambientes virtuais
(MICROSOFT, 2007).
O hardware hospedeiro das máquinas virtuais precisará de memória,
processamento e armazenamento suficiente para executar todos os sistemas
operacionais e seus aplicativos simultaneamente.
Laureano (2006, p. 36) destaca algumas dificuldades de utilização da
tecnologia de virtualização em alguns casos:
• Processador não virtualizado: A arquitetura de processadores Intel
32 bits não permite nativamente a virtualização.
• Diversidade de equipamentos: pela grande quantidade de
equipamentos existentes, torna-se difícil os desenvolvedores de monitores de
máquinas virtuais estarem sempre acompanhando as novidades do mercado.
• Preexistência de softwares: os desktops normalmente vêm com um
sistema operacional instalado e configurado. Nesses casos é importante
46. 46
permitir que um usuário possa utilizar a tecnologia de máquinas virtuais sem
perder a facilidade de continuar utilizando seu sistema operacional padrão.
Segundo Laureano (2006), a principal desvantagem é o custo adicional
de execução de processos em comparação com a máquina real, em razão de
processadores sem suporte à virtualização. Esse problema não existe em hardwares
com suporte à virtualização, como os mainframes.
Deve-se tomar atenção especial com os processadores antes de implementar
métodos de virtualização em uma máquina. Carmona et al (2008, p.37) afirma que:
[...] Há pouco tempo os fabricantes de processadores do modulo x86, Intel e
AMD também começaram a suportar nativamente a virtualização. A Intel
com sua Intel Virtualization Technology (VT, codename Vanderpool) e a
AMD com sua AMD I/O Virtualization Technology (codename Pacífica). A
solução da AMD implementa funções de processador especiais, que
suportam o hypervisor na transferência de endereços e, além disso, pode
controlar em seu nome se determinados acessos de um sistema hóspede a
dispositivos podem ser permitido.
47. 47
3 TECNOLOGIAS ATUAIS DE VIRTUALIZAÇÃO
Nos últimos anos a indústria da tecnologia de informação está crescendo e
evoluindo muito na área de virtualização. Basta ver a Figura 2 (capítulo 2), que
mostra uma grande quantidade de fabricantes de software, lançando produtos no
mercado, cada qual com sua particularidade.
Hoje o mercado é disputado por uma diversidade de tecnologias e produtos
de solução de virtualização e prevalece certa confusão de conceitos (CARMONA et
al 2008).
Esse capítulo busca descrever tais particularidades, e apresentar as principais
ferramentas disponíveis no mercado atualmente. A figura 20 faz uma comparação
dos cinco sistemas de virtualização mais relevantes para esta pesquisa.
Figura - Comparativo Entre Algumas Ferramentas
(SILVA et al, 2008)
3.1 XEN
O Xen é um monitor de máquina virtual do tipo I para a plataforma x86, ou
seja, aquele em que o monitor de máquina virtual é instalado diretamente no
hardware, sem que haja um sistema operacional hospedeiro. Suporta vários
48. 48
sistemas convidados simultaneamente com bom desempenho e isolamento, é
gratuito e de código aberto. (LAUREANO, 2006).
O Xen é um hypervisor que trabalha tanto em modo de paravirtualização,
como em modo de virtualização completa (SILVA et al, 2008). O objetivo do Xen é
suportar aplicações sem a necessidade de modificações. Ele possui acesso direto
ao hardware, e os sistemas convidados o utilizam como ponte para acessar os
recursos do hardware. Segundo Laureano (2006, p. 101) “no Xen a memória é
separada em blocos pelo monitor de máquinas virtuais e o sistema convidado pode
utilizar como quiser esses blocos, tornando o acesso à memória mais direto e
eficiente”. Os discos rígidos também são separados, tornando o acesso a ele mais
eficiente.
O ambiente XEN suporta os sistemas Windows XP, Linux e Unix. Atualmente
várias distribuições Linux (Suse, Ubuntu, Debian) possuem suporte nativo à máquina
virtual Xen (LAUREANO, 2006). Seu código-fonte está liberado sob a licença GNU
General Public License 2 (GPL2).
3.1.1 Histórico do Xen
O Xen nasceu na Universidade de Cambridge, em 2001, e desde então tem
evoluído de forma significativa no cenário mundial dos monitores de máquinas
virtuais (MATHEWS et al, 2008).
O Xen foi divulgado para o grande público pela primeira vez em 2003, em um
artigo acadêmico para o Simpósio de Princípios em Sistemas Operacionais, na
mesma universidade onde foi criado. A afirmação de ter uma solução para virtualizar
máquinas em plataformas x86 foi muito bem recebida no meio acadêmico
(MATHEWS et al 2008).
Em 2004 foi criada a XenSource, empresa que tinha o objetivo de estimular
pesquisas e desenvolvimento. No Fim de 2004, o Xen 2.0 é lançado conseguindo
grande eficiência nas configurações de dispositivos virtuais de Entrada/Saída dos
sistemas operacionais hóspedes. Nessa versão já era possível aos usuários
configurarem regras de firewall, roteamento, pontes de interfaces de hóspedes
virtuais de rede e o live migration, que permite que uma instância do sistema
49. 49
operacional em execução seja movida entre hardwares conectados na rede sem
interrupção do serviço.
Em 2005 cresce o interesse pelo sistema no meio acadêmico e empresarial,
tanto que no ano seguinte o Xen já havia conseguido uma participação significativa
nas virtualizações em uso. Nesse mesmo ano é lançada a versão 3.0, onde o Xen
apresentou uma camada de abstração para tecnologias de virtualização de
hardware, oferecidas pelos novos processadores da Intel e AMD, que tinham as
tecnologias de virtualização nativa (Vandepool e Pacifica respectivamente)
(MATHEWS et al, 2008). Em 2007, a Citrix compra o Xen e lança a versão 3.1,
trazendo a possibilidade de ferramentas de gerenciamento de terceiros.
Existem várias possibilidades de instalação do Xen e alguns aplicativos
adicionais, que serão mostrados na seções a seguir:
3.1.2 Xen Source 4.0
O hypervisor Xen 4.0 é um código-fonte aberto que insere uma fina camada
de software entre o sistema operacional e o hardware (XEN.ORG). Para a instalação
do hypervisor Xen é necessário ter algum sistema operacional instalado na máquina,
pois o sistema pede que sejam atualizados alguns pacotes essenciais utilizando o
comando apt-get. Em seguida é necessário obter os pacotes do Xen com o mesmo
comando, e depois recompilar o kernel, e reconfigurar o GRUB, para que o Xen
utilize a estrutura do sistema operacional para ser tornar o sistema anfitrião. Na
próxima reinicialização, o XEN aparece no menu de boot, bem como o sistema
operacional anterior sem as modificações, podendo o usuário acessar tanto o Xen
como o sistema original.
O Xen também dispõe do XenSource na forma de liveCD, onde é fornecida
uma imagem que pode ser gravada em um CD-ROM. Com o liveCD, é possível
testar o Xen sem qualquer modificação no sistema. Segundo Mathews et al (2008,
p.30) “o liveCD executa completamente direto da memória RAM e não exige
instalação no disco rígido. Pode ser usado para testar compatibilidade de hardware
e se familiarizar com os comandos básicos do Xen”.
50. 50
3.1.3 XenServer 5.6
O XenServer é um software da Citrix que oferece gerenciamento centralizado
de máquinas virtuais com inúmeros recursos, ferramentas de migração e conversão
de máquinas virtuais (CITRIX, 2010).
A Citrix oferece treinamentos online em sua página na internet, alguns deles
gratuitos, e também suporte ao Windows e Linux. Atualmente conta com quatro
versões, sendo uma gratuita (CITRIX, 2010). A Figura 21 especifica as diferenças
entre as versões.
O XenServer é instalado diretamente no hardware, com o arquivo
disponibilizado em formato de imagem ISO, sendo necessário ser gravado em uma
mídia de CD-ROM. O XenServer pode ser gerenciado por outra máquina que tenha
instalado o XenCenter. Mais detalhes então no capitulo 4 dessa pesquisa.
Figura - Versões do XenServer
(CITRIX, 2010)
51. 51
3.1.4 Outros Produtos Xen
XenDesktop:
O XenDesktop é um aplicativo da Citrix que tem a função de entrega de área
de trabalho virtualizada e possibilita aos usuários acessarem sua área de trabalho
de qualquer lugar (CITRIX, 2010). O XenDesktop funciona centralizando todas as
estações de trabalho em um servidor, com apenas uma imagem, e disponibiliza para
o usuário como se fosse a máquina física, salvando sua configurações para usos
futuros.
XenApp:
O XenApp é um serviço de entrega de aplicativos por demanda aos usuários.
Cada aplicação fica centralizada no servidor, é virtualizada e entregue para o
usuário em qualquer local, como se fosse executada no sistema operacional local.
Possibilita o acesso de inúmeros dispositivos, computadores, thinclient’s, Palmtop’s
e aparelhos de telefone móvel.
3.1.5 Algumas Características Relevantes do Xen
Algumas características importantes que o Xen implementou a cada nova
versão:
• Agendador Xen: Divide o tempo do processamento entre processos
que são executados em paralelo. O agendador do Xen atribui recursos
para máquinas virtuais por tempo limitado (CARMONA 2008).
• Live Migration: Segundo Carmona (2008, p.44) “o Xen torna possível
transferir hóspedes ativos de um host para o outro, sem que eles
precisem interromper seu trabalho nesse meio tempo”.
• Discos Rígidos Virtuais: A partir da versão 3.0, o Xen oferece
diferentes opções para fornecer um armazenamento virtual para
sistemas hóspedes.
• Acelerador de Inicialização: O tempo necessário para uma
reinicializarão é reduzido e o procedimento normal de inicialização
(BIOS, GRUB) é evitado.
52. 52
• Padronização: Os fabricantes mais renomados de monitores de
máquinas virtuais demonstram o desejo de uma padronização quanto
ao gerenciamento e configurações de máquinas virtuais. Assim
confirma Carmona (2008, p.43): “o estreito trabalho conjunto entre
desenvolvedores do VMware e do Xen levou a que, em julho de 2006,
tivéssemos o plano de uma interface padrão unificada para
hypervisors”.
• Alta Disponibilidade: Essa é uma preocupação tanto em máquinas
virtuais como em reais. O Xen oferece ferramentas que coordena todas
as atividades em um cluster e facilita a administração de recursos.
3.2 VMware
Fundada em 1998, foi a primeira empresa a oferecer softwares para o
ambiente x86. Atualmente possui extensa linha de produtos de virtualização para
servidores e máquinas pessoais (MATHEWS et al, 2008).
A VMware é uma empresa sinônimo de virtualização, e desde a sua fundação
apresenta soluções para a evolução das técnicas de virtualização. De acordo com
Silva et al (2008, p. 33) “O VMware instala drivers adicionais no sistema operacional
convidado e hospedeiro para otimizar o acesso dos recursos nas máquinas físicas e
virtuais”. Isso significa que o VMware já vem projetado para suprir muitas possíveis
dificuldades encontradas na implementação da máquina virtual, por exemplo, um
driver de vídeo, entre outros. A VMware disponibiliza em sua página na internet
várias máquinas virtuais prontas para serem usadas em seus softwares.
Existem muitas versões do VMware, e para atender a cada segmento
especificamente, abaixo listamos algumas delas:
3.2.1. VMware Player
Versão mais simples da máquina virtual, indicada para aplicações leves ou
testes. É uma máquina virtual do tipo II, aquela em que o monitor de máquina virtual
é instalado sobre um sistema hospedeiro, disponível para o sistema Windows e
Linux (LAUREANO 2006). O VMware Player está atualmente na versão 3.12 e pode
ser baixado gratuitamente na página do fabricante na internet. A versão atual traz
53. 53
suporte ao Windows 7, Chrome OS e às últimas versões do Linux, além de suporte
para múltiplos monitores, download automático de atualizações e a possibilidade de
impressão a partir da máquina virtual, sem a necessidade de instalação dos drivers
da impressora (VMWARE, 2010).
3.2.2 Workstation
Versão um pouco mais robusta que o VMware Player. O Workstation dispõe
de opções de configurações a mais, que não existem no VMware Player. Ele é
executado em 32 ou 64 bits, e a versão atual conta com suporte ao Windows 7, tem
função Flip 3D, que mostra miniaturas das máquinas virtuais em execução , além de
ter a função de arrastar e soltar arquivos da máquina física para a virtual (
VMWARE, 2010). É uma máquina virtual de tipo II, não gratuita, e está atualmente
na versão 7.1.2. De acordo com a página do fabricante na internet, pode ser usado
por 30 dias gratuitamente. A versão completa custa U$ 189.00 (WMWARE, 2010)
3.2.3 VSphere ESX
Versão do VMware indicada para aplicações profissionais em larga escala. É
uma máquina virtual do tipo I, e executada diretamente no hardware (LAUREANO,
2006). Segundo Silva et al (2008, p.34) “é um sistema baseado no kernel do Linux e
cria uma camada de abstração para acesso aos recursos do sistema por máquinas
virtuais”. Disponível em várias versões, atende necessidades de pequenas, médias e
grandes empresas. A versão de testes expira em 60 dias, e o valor varia conforme o
pacote, do standard, de U$ 1.318,00 até o enterprise plus, que custa U$ 4.369,00
(WMWARE, 2010).
3.2.4 VSphere Hypervisor (ESXi)
A VMware criou a versão VSphere Hypervisor (ESXi) totalmente gratuita. É
uma edição livre da linha VSphere, e não possui os recursos como live migration,
presente na versão comercial (SILVA et al, 2008), mas pode ser comprado
separadamente e adicionado ao ESXi. O suporte e treinamento é oferecido pela
VMware, porém são cobrados.
54. 54
Utilizando a ferramenta VMware Converter, vendido separadamente, é
possível utilizar máquinas virtuais criadas por outros softwares como Virtual Server e
Virtual PC da Microsoft, e também do VMware Server.
3.2.5 VMware Server
O VMware Server é uma plataforma de virtualização que trabalha como uma
aplicação em qualquer hardware e particiona um servidor físico em várias máquinas
virtuais ( VMWARE, 2010), portanto é uma máquina virtual do tipo II, e distribuída de
forma gratuita. A VMware recomenda a utilização do VMware Server para avaliação
de virtualização de servidores pela primeira vez, avaliar softwares em máquinas
virtuais e também testes e desenvolvimento de softwares em diferentes ambientes
de TI.
Algumas características destacadas pela VMware sobre esse produto
(VMWARE, 2010):
• Instala como uma aplicação, instalação simples, orientada por um
assistente.
• Interface web de gestão
• Funciona em qualquer hardware x86
• Funciona sobre uma ampla variedade de sistemas Linux e Windows
como hospedeiro e convidado.
• Permite que uma única máquina virtual abranja até dois processadores
A Figura 22 destaca as principais diferenças entre as duas opções gratuitas
da VMware para servidores, o VMware Server e o ESXi.
55. 55
Figura - Comparativo entre VMware Server e ESXi
(VMWARE, 2010)
3.3 Outras Tecnologias disponíveis para Virtualização
As maiores empresas da área de TI estão cada vez mais investindo em
softwares de virtualização, e as comunidades de software livre não ficam atrás, na
atualidade temos inúmeras opções para cada caso especifico. Nessa seção serão
abordados alguns dos demais softwares disponíveis no mercado.
3.3.1 VirtualBox
O VirtualBox é um software da Oracle, de código aberto, sob os termos da
GPL (General Public License), pode ser instalado em Windows, Linux, Solaris e
Macintosh, e tem suporte a um grande número de sistemas convidados
(VIRTUALBOX.ORG, 2010).
56. 56
Segundo Silva et al (2008, p.35), “o VirtualBox utiliza partes de outros
sistemas virtualizadores, como o QEMU e o BOCHS, para base de seu
funcionamento”.
O sistema pode ser adquirido gratuitamente no site do fabricante e atualmente
está na versão 3.2.10. De interface simplificada, oferece uma boa opção para quem
está iniciando nos processos de virtualização, pois é equivalente ao VMware
Workstation.
3.3.2 Virtual Server
Virtual Server é a ferramenta da Microsoft para competir no mercado de
virtualização de servidores. É uma máquina virtual do tipo II e precisa ser instalada
em algum sistema operacional da família Server, da Microsoft (Windows 2000,
Windows 2003) (LAUREANO, 2006).
O Virtual Server é um software gratuito e encontrado em duas versões: o
Virtual Server 2005 Enterprise (até 32 processadores físicos) e o Virtual Server 2005
Standard (até quatro processadores) (MICROSOFT, 2010). A Figura 23 demonstra o
modelo de arquitetura do Virtual Server. Neste exemplo, o Virtual Server é
executado sobre o Windows Server 2003, com duas máquinas virtuais e suas
aplicações.
Figura - Virtual Server
(MICROSOFT, 2009)
57. 57
3.3.3 Virtual PC
O VirtualPc é um software da Microsoft, lançado em 2003, que suporta o
sistema operacional Windows sobre os Computadores Macintosh. O Virtual PC é
uma máquina virtual do tipo II e precisa de um sistema hospedeiro (LAUREANO
2006).
Atualmente o VirtualPc suporta todas as versões do Windows, MS-DOS,
Linux, OS/2, entre outros (FAVACHO;MIRANDA;OLIVEIRA, 2008). É distribuído de
forma gratuita pela Microsoft, porém a versão para Macintosh está disponível
comercialmente (MATHEWS, 2008).
3.3.4 Hyper-V
O Hyper-V é um sistema de virtualização nativo do Windows 2008 Server, que
permite executar computadores virtualizados sob as versões x64, e é considerado
uma evolução do Virtual Server 2005. Contudo, ele teve uma importante modificação
em relação ao Virtual Server, com a incorporação direta do Hyper-V no sistema
operacional, e não no hardware, como é o caso do Virtual Server (MCLEAN;
THOMAS, 2010).
O Hyper-V é a aposta da Microsoft para o cenário da virtualização, e dispõe
de diversas características interessantes, como o snapshot, que permite reverter
uma instância anterior de um sistema operacional bem mais rapidamente do que
seria se tivesse que reinstalar o sistema. Conta também com a tecnologia Live
Migration, possibilitando a migração de uma máquina virtual, sem que o usuário
conectado perca seus dados. O Hyper-V usa o mesmo formato de arquivos de
máquinas virtuais do Virtual Server 2005, o VHD, ou seja, pode-se migrar uma
máquina virtual de um servidor antigo para o Hyper-V tranquilamente. (MICROSOFT,
2010).
Junto com o Hyper-V a Microsoft dispõe o Virtual Server Migration Toolkit,
uma ferramenta capaz de fazer a migração de um sistema operacional instalado
fisicamente no modo tradicional, para uma máquina virtual, trazendo todas as suas
configurações e aplicativos, sem quaisquer mudanças, salvas em arquivos XML.
58. 58
Para servidores de grande porte, a Microsoft dispõe do System Center Virtual
Machine Manager, que oferece mais segurança e confiabilidade em relação ao
Virtual Server Migration Toolkit. Essa ferramenta necessita alto investimento em
infraestrutura e um banco de dados SQL Server, para armazenar os dados e
configurações das máquinas a serem migradas. As duas ferramentas de migração
da Microsoft são compatíveis com Hyper-V e Virtual Server 2005 (MCLEAN;
THOMAS, 2010).
O Hyper-V possui um console de gerenciamento que possibilita gerenciar
redes virtuais, editar e inspecionar discos, criar, reverter e excluir Snapshots ,editar
as configurações de máquinas virtuais individualmente e configurar balanceamento
de processador. Neste caso é possível determinar a carga de processamento para
cada máquina virtual ou atribuir um peso relativo, onde o Hyper-V calcula quanto de
processamento a máquina virtual necessita e aloca essa quantidade, economizando
recursos. (MCLEAN; THOMAS, 2010).
3.3.5 QEMU
O QEMU é dos virtualizadores mais complexos hoje existentes, mas que
suporta várias maneiras de execução (SILVA et al, 2008). Laureano (2006, p.108)
afirma que “o QEMU é um emulador de processador [...] o emulador converte partes
do código para que o processador execute o conjunto de instruções”. Isso torna o
QEMU bastante dependente do processador.
O QEMU pode trabalhar em dois modos de operação: emulação total e no
modo usuário. Na emulação total se processa o sistema completo, incluindo o
processador, e pode ser utilizada para executar vários sistemas operacionais. Na
emulação no modo usuário, disponível apenas para Linux, é possível executar
programas Linux para outra plataforma, como o PowerPC, por exemplo,
(LAUREANO, 2006).
O QEMU é uma ótima opção para executar aplicativos dos Windows no Linux,
pois é um software livre e gratuito. Sua desvantagem se diz respeito à velocidade,
uma vez que por ser um emulador, ele fornece ao sistema convidado todas as
instruções necessárias, deixando os processos mais lentos do que em máquinas
virtuais em geral (LAUREANO, 2006).
59. 59
3.3.6 Kernel-based Virtual Machine
O KVM é um software de virtualização livre e gratuito para Linux, projetado
para permitir emulação de hardware completa, na medida necessária para inicializar
muitos sistemas operacionais de computadores na forma não modificada. (IBM,
2010).
Segundo Mathews et al (2008, p.22), “a KVM é uma modificação do núcleo do
Linux que efetivamente o transforma em um hypervisor quando se acrescenta um
módulo adicional”.
Cada hóspede é executado no espaço do usuário do sistema hospedeiro, por
essa razão cada instância hóspede parece como um processo normal para o kernel
hospedeiro, causando um isolamento mais fraco da máquina virtual, em relação às
outras tecnologias já abordadas (MATHEWS, 2008).
Usando KVM, é possível executar várias máquinas virtuais com imagens do
Linux, Windows ou Mac. Cada máquina virtual tem hardware virtualizado particular,
como placa de rede, disco, placa de vídeo e etc. (IBM, 2010).
[...] Um processo normal, executando em Linux, possui dois modos de
execução: Kernel Mode (modo kernel) e User Mode (modo usuário). Porém,
por uma máquina virtual precisa de mais prioridade do que um processo
normal, e por ser, também, bem mais complexa que um aplicativo comum, é
adicionado um terceiro modo de execução: o guest mode (modo
Convidado). (SILVA et al, 2008, p. 31).
Silva et al (2008, p. 30) afirma que “integrado ao kernel, o KVM suporta
automaticamente todos os dispositivos de hardware que funcionam com Linux”.
O KVM é integrado ao kernel e não abaixo dele, fazendo com que cada
máquina virtual seja um processo normal no sistema operacional. A Figura 24 ilustra
a arquitetura do KVM. Na terminologia do KVM, os guest são máquinas virtuais
comuns e o privileged-guest é a máquina destinada ao gerenciamento (SILVA et al,
2008). O KVM utiliza o QEMU para promover a abstração de hardware na máquina
virtual
[...] O modulo KVM emprega um controlador de dispositivo com novas
características para expor hardware virtual para as instâncias hóspedes
através da entrada /dev/kvm no sistema de arquivos do hypervisor. Os
hóspedes KVM então acessam o hardware virtual via um processo QEMU
ligeiramente modificado. (MATHEWS et al, 2008, p. 24).