UNIVERSIDADE CANDIDO MENDES
PÓS-GRADUAÇÃO “LATO SENSU”
FACULDADE INTEGRADA AVM
OTIMIZAÇÃO DE RECURSOS EM TI UTILIZANDO
VIRTUALIZAÇÃO
Por: Anderson de Souza Campos
Orientador
Prof. Nelsom Magalhães
Rio de Janeiro
2011
2
UNIVERSIDADE CANDIDO MENDES
PÓS-GRADUAÇÃO “LATO SENSU”
FACULDADE INTEGRADA AVM
OTIMIZAÇÃO DE RECURSOS EM TI UTILIZANDO
VIRTUALIZAÇÃO
Apresentação
Candido
de
Mendes
monografia
como
à
requisito
Universidade
parcial
para
obtenção do grau de especialista em Gestão de
Projetos.
Por: Anderson de Souza Campos
3
AGRADECIMENTOS
A Deus que sempre iluminou a minha
caminhada.
Aos Colegas de curso pelo incentivo e
troca de experiências durante todos
esses meses letivos.
A todos os meus familiares e amigos
pelo apoio e colaboração.
4
DEDICATÓRIA
Aos familiares, professores e amigos que
acreditaram, auxiliaram e incentivaram
para vencer mais essa jornada.
5
RESUMO
A capacidade de processamento computacional nos últimos anos
tem aumentado de forma significativa, mas, isso não se traduz no total
aproveitamento desses recursos na maior parte do tempo de execução dos
sistemas
computacionais.
Desta
forma,
a
utilização
de
sistemas
computacionais virtualizados, tem se tornado interessante pela redução de
custo, rapidez de instalações e atualizações da infra-estrutura e portabilidade
que as máquinas virtuais oferecem.
Este trabalho tem como objetivo explanar a tecnologia da
virtualização de maneira a enfatizar seus pontos positivos e negativos através
dos principais conceitos e técnicas. Apresentar as principais ferramentas que
podem auxiliar na virtualização de sistemas, através de produtos disponíveis no
mercado. E expor a revolução desta tecnologia no presente cenário de TI nas
empresas, como uma vantagem competitiva.
6
LISTA DE ILUSTRAÇÕES
Figura 1 - Monitor de Máquinas Virtuais do Tipo I............................................ 14
Figura 2 - Monitor de Máquinas Virtuais do Tipo II........................................... 15
Figura 3 - Virtualização de Hardware ............................................................... 17
Figura 4 - Virtualização do Sistema Operacional ............................................. 18
Figura 5 - Virtualização de Linguagens de Programação ................................ 18
Figura 6 - Estrutura da Emulação .................................................................... 20
Figura 7 - Estrutura da Virtualização ................................................................ 21
Figura 8 - Estrutura da Paravirtualização ......................................................... 22
7
LISTA DE TABELAS
Tabela 1 – Resumo sobre técnicas de Virtualização ....................................... 23
Tabela 2 – Comparação entre os softwares de Virtualização .......................... 35
Tabela 3 – Comparação entre honeypots de alta e baixa interatividade.......... 43
8
LISTA DE ABREVIATURAS E SIGLAS
CPD
Centro de Processamento de Dados
CPU
Central Processing Unit
IDS
Intrusion Detection System
PC
Personal Computer
SO
Sistema Operacional
TI
Tecnologia da Informação
UML
User Mode Linux
VM
Virtual Machine
VMM
Virtual Machine Monitor
VT
Virtualization Technology
9
METODOLOGIA
A metodologia da pesquisa foi desenvolvida de forma descritiva com
um minucioso planejamento de pesquisa obtidos de diferentes fontes,
buscando visualizar as principais ferramentas de virtualização no mercado e
suas vantagens através da análise e reflexão detalhada, tendo como base
bibliografias de estudiosos sobre o tema, pesquisa na internet e artigos de
revistas especializadas para o tema que tem sido atualmente destaque no
mundo da tecnologia da informação.
De acordo com Pecorari (2011, p. 1):
Presente cada vez mais no mundo de TI e solicitado por
pequenas, médias e grandes empresas, sem distinção, a
virtualização é tema de interesse crescente no mundo
corporativo no decorrer dos anos. O número de adeptos vem
crescendo de acordo com a demanda de mercado e,
principalmente, com os serviços oferecidos pelas consultorias
de tecnologia que disponibilizam o serviço de gestão da
infraestrutura das empresas.
O intuito foi demonstrar que as organizações que adotarem a
virtualização, podem alcançar excelência na utilização de recursos, otimizando
processos e administração, economizando energia elétrica com impacto sobre
a natureza e o meio ambiente.
10
SUMÁRIO
INTRODUÇÃO
11
CAPÍTULO I - CONCEITOS EM VIRTUALIZAÇÃO
13
CAPÍTULO II - BENEFÍCIOS E APLICAÇÕES DA VIRTUALIZAÇÃO
24
CAPÍTULO III – FERRAMENTAS PARA VIRTUALIZAÇÃO
29
CAPÍTULO IV – IMPLEMENTAÇÃO EM AMBIENTE PROFISSIONAL
36
CONCLUSÃO
47
BIBLIOGRAFIA CONSULTADA
48
ÍNDICE
51
11
INTRODUÇÃO
No mundo da tecnologia da informação, a virtualização é um assunto
que tem ganhando um enorme destaque, apesar de não ser exatamente uma
novidade.
No inicio da era da informação, os recursos dos computadores eram
centralizados, equipados com CPU, memória, recursos de armazenamento, e
normalmente localizado em um CPD. Esse arranjo permitia um gerenciamento
relativamente simples, cuidando somente do sistema central. Com o processo
de globalização, houve um espetacular avanço tecnológico nas diversas áreas
e um crescente aumento do comércio mundial de servidores e estações de
trabalho. Causando aumento dos custos de gerenciamento destes sistemas,
consequentemente aumento do consumo de energia elétrica, complexidade do
ambiente, custos com mão de obra e aumento de chances de ocorrerem
falhas.
Uma das grandes preocupações, segundo CAPPUCCIO (2007, p.
82), “está associada à redução do consumo de energia elétrica, na manutenção
dos servidores, pois em pouco tempo não terá energia suficiente para suportar
o grande número de equipamentos de alta densidade que hospedam”.
A solução desse problema é a consolidação de servidores através
da virtualização, reduzindo o acúmulo de servidores físicos, permitindo suporte
total a seus negócios com menos hardware, menos consumo de energia e
refrigeração de servidores e em necessidade de menos espaço físico.
Desta maneira, a virtualização proporciona um alto grau de
portabilidade e de flexibilidade permitindo que várias aplicações de sistemas
operacionais diferentes, executem em um mesmo hardware. Tornando
12
interessante também o uso da virtualização em desktop1, que pode ser usada
para definir ambientes experimentais sem comprometer o sistema operacional
original da máquina.
1
Computador pessoal, estação de trabalho, terminal, ou outro dispositivo usado por um ou vários
indivíduos em horários variados para executar diferentes funções computacionais, entrada de dados, etc.
13
CAPÍTULO I
CONCEITOS EM VIRTUALIZAÇÃO
A virtualização é uma técnica que combina ou divide recursos
computacionais para prover um ou mais ambientes operacionais de execução,
segundo Nanda e Chiueh (2005).
A virtualização tem como meta principal permitir que múltiplos
sistemas operacionais e aplicativos rodem simultaneamente em um mesmo
item de hardware, permitindo que seja exibido um único sistema, muito embora
haja vários. A divisão de recursos computacionais em múltiplas execuções
criando múltiplas partições, isoladas umas das outras, chamadas máquinas
virtuais ou servidores virtuais privados, unidos em um único servidor físico
recebe o nome de virtualização. A utilização da virtualização possibilita um
ambiente mais dinâmico e flexível, executando cargas de trabalho em um
número menor de sistemas físicos, facilitando suporte e manutenção.
Os ambientes criados através dessa técnica são chamados
máquinas virtuais. Dentre os conceitos envolvidos no estudo de máquinas
virtuais, o de VMM é um dos principais.
O conceito de Virtual Machine Monitor (VMM), ou seja, Monitor de
Máquina Virtual, também conhecido por hypervisor é um componente de
software que hospeda as máquinas virtuais, responsável pela virtualização e
controle dos recursos compartilhados pelas máquinas virtuais, tais como,
processadores, dispositivos de entrada e saída, memória, armazenagem,
escalonamento de qual máquina virtual vai executar a cada momento.
Classicamente, os monitores de máquinas virtuais (VMM - Virtual
Machine Monitor) rodam no modo mais privilegiado do sistema operacional,
enquanto seus sistemas convidados rodam com privilégios reduzidos, onde o
14
VMM pode interceptar e emular todas as ações dos sistemas convidados que
normalmente tenham que acessar ou manipular recursos de hardware.
Segundo (LAUREANO, MAZIERO e JAMHOUR, 2004, p. 3) existem
duas arquiteturas clássicas para a construção de sistemas de máquinas
virtuais:
•
Tipo I (Figura 1), o monitor é implementado entre o hardware e os
sistemas operacionais convidados;
Figura 1 – Monitor de Máquinas Virtuais do Tipo I
Fonte: (LAUREANO, 2006, p. 22)
•
Tipo II, (Figura 2), o monitor é implementado como um processo de
um sistema operacional convencional subjacente, denominado
sistema hospedeiro (host2 operating system).
2
Nome dado ao computador principal (anfitrião) de uma rede que comanda e controla as ações de outros
computadores.
15
Figura 2 – Monitor de Máquinas Virtuais do Tipo II
Fonte: (LAUREANO, 2006, p. 22)
Porém, em termos de desempenho, a arquitetura do Tipo I leva uma
grande vantagem sobre a do Tipo II, pois a sua camada de virtualização
proporciona acesso direto ao hardware.
1.1
Visão Histórica
O conceito de virtualização é antigo, data os anos 60, com o uso
mais precoce realizado no antigo IBM 7044 CTSS (Compatible Time-Share
System), no qual foi utilizado um mainframe3 IBM 704 M44/44X com
implementação de chamadas supervisoras. O sistema operacional deste
mainframe, na época chamado "Supervisor", executava duas máquinas
virtuais, uma para o sistema e uma para execução de programas, servindo de
base para outros computadores que viriam após ele.
Com base nesta tecnologia, em 1966 foi lançado o mainframe IBM
System/360 modelo 67, onde o hardware do equipamento era inteiramente
acessado através de uma interface chamada VMM (Virtual Machine Monitor)
3
Computador de grande porte, dedicado normalmente ao processamento de um volume grande de
dados, informações.
16
que funcionava diretamente no hardware básico do equipamento, permitindo
então a execução de máquinas virtuais.
Com essa funcionalidade, o antigo termo Supervisor foi então
denominado hypervisor. Sendo um software que provê ambiente de
virtualização para o sistema operacional rodando acima dele (CANDIDO, 2007,
p.1-1).
No início da década de 70 a IBM anunciou a série de mainframes
System/370, onde cada máquina virtual era uma cópia exata de uma máquina
real, porém com uma capacidade de memória reduzida, podendo um
computador ser dividido em várias máquinas virtuais leves, utilizando recursos
tanto quanto o original. Em 1972 anunciou o sistema operacional VM/370, que
permitia a criação de múltiplas máquinas virtuais para os mainframes desta
série. Estas foram as primeiras tentativas de virtualização.
1.2
Formas de Virtualização
Segundo LAUREANO (2006, p. 24):
A virtualização é a interposição do software (máquina virtual)
em várias camadas do sistema. É uma forma de dividir os
recursos de um computador em múltiplos ambientes de
execução. Existem três formas de virtualização: virtualização
do hardware, virtualização do sistema operacional e
virtualização de linguagens de programação.
1.2.1 Virtualização do Hardware
Nesta forma de virtualização, o sistema físico é exportado como uma
abstração do hardware (Figura 3). Em seu livro, LAUREANO (2006, p. 24)
afirma que nesse modelo, qualquer software escrito para a arquitetura (x86, por
17
exemplo) irá funcionar. Esse foi o modelo adotado na década de 1960 para o
VM/370 nos mainframes IBM.
Figura 3 – Virtualização de Hardware
Fonte: (LAUREANO, 2006, p. 25)
1.2.2 Virtualização do sistema operacional
Segundo LAUREANO (2006, p. 25), “a virtualização exporta um
sistema operacional como abstração de um sistema específico” (Figura 4). A
máquina virtual roda aplicações, ou um conjunto de aplicações, de um sistema
operacional específico.
18
Figura 4 – Virtualização do Sistema Operacional
Fonte: (LAUREANO, 2006, p. 25)
1.2.3 Virtualização de linguagens de programação
Neste tipo de virtualização, é cria uma aplicação no topo do sistema
operacional (Figura 5).
LAUREANO (2006, p. 26) diz que “na prática, as máquinas virtuais
são desenvolvidas para computadores fictícios projetados para uma finalidade
específica. A camada exporta uma abstração para a execução de programas
escritos para essa virtualização”.
Figura 5 – Virtualização de Linguagens de Programação
Fonte: (LAUREANO, 2006, p. 26)
19
1.3
Técnicas de Virtualização
Em seu livro, SMITH e NAIR (2005, p. 38) afirmam que:
A virtualização está sendo utilizada nas mais diversas áreas, e
dependendo do hardware ou da necessidade do software que
deve ser utilizado, as técnicas de virtualização podem variar.
Portanto, existem similaridades entre as técnicas de
virtualização, onde a diferença entre elas está no nível de
abstração e nos métodos usados para a virtualização.
As técnicas de virtualização se diferem na complexidade da
implementação, suporte ao sistema operacional, nível de acesso aos recursos
comuns e desempenho. Sendo emulação, virtualização e paravirtualização as
três técnicas utilizadas.
1.3.1 Emulação
A emulação é realizada por meio de um software que simula um
computador real, criado essencialmente para transcrever instruções de um
processador alvo para o processador no qual ele está rodando, utilizando os
recursos reais quando necessários, da máquina que roda a máquina virtual.
Segundo LAUREANO (2006, p. 18), a técnica de emulação
“implementa todas as instruções realizadas pela máquina real em um ambiente
abstrato de software, possibilitando executar um aplicativo de uma plataforma
em outra”. Normalmente um emulador permite executar um SO sem a
necessidade de modificações, pois o SO não está ciente que não está rodando
em um hardware real.
Podemos notar (Figura 6) que o emulador provê uma camada virtual
que simula o hardware necessário para as aplicações e abstrai das aplicações
o hardware real. As camadas de emulação e de hardware virtual fazem parte
20
de uma mesma camada, separadas apenas por suas características e rodando
sobre o sistema operacional, formando uma camada base às aplicações.
Figura 6 – Estrutura da Emulação
Fonte: (LAUREANO, 2006, p. 26)
1.3.2 Virtualização Total
A virtualização total é feita em nível de sistema operacional. Onde
uma estrutura de hardware completa é virtualizado. De acordo com
LAUREANO (2006, p.29):
O sistema a ser virtualizado não sofre qualquer tipo de
alteração, o que proporciona uma maior segurança de acesso
entre máquinas virtuais, provendo isolamento das requisições e
segurança para rodar múltiplas aplicações ou cópias do mesmo
sistema operacional, no mesmo servidor. Em compensação, o
sistema virtualizado é executado de forma mais lenta.
21
Figura 7 – Estrutura da Virtualização
Fonte: (LAUREANO, 2006, p.29)
Na Figura 7, vemos que embora a virtualização também seja uma
camada de abstração como a emulação, é executada juntamente com o SO, e
repassa instruções para o hardware real. Acima dessa camada rodam as
máquinas virtuais (VM1, VM2) que suportam os sistemas operacionais
convidados (SO1, SO2) independentes um do outro e que por sua vez também
suportam aplicações independentes.
1.3.3 Paravirtualização
Conforme LAUREANO (2006, p. 30), na paravirtualização, o sistema
a ser virtualizado (sistema convidado) sofre modificações para que a interação
com o monitor de máquinas virtuais seja mais eficiente.
A paravirtualização também permite rodar diferentes sistemas
operacionais em um único servidor.
Na paravirtualização, é o próprio sistema operacional modificado que
dá suporte à virtualização (camada de paravirtualização). Como podemos
observar na Figura 8, o hypervisor é a camada de monitoração que roda em
22
conjunto à camada de paravirtualização, atuando como interface da
comunicação entre as máquinas virtuais e o hardware.
Figura 8 – Estrutura da Paravirtualização
Fonte: (LAUREANO, 2006, p.30)
1.3.4 Relação entre a virtualização total e a paravirtualização
A técnica de paravirtualização não simula um novo hardware para as
aplicações, porém através de modificações no kernel4 possibilitam que as
chamadas de sistema que se relacionam com o hardware sejam controladas
pelo hypervisor.
Na técnica de virtualização existe uma camada que controla a
comunicação entre as máquinas virtuais e o sistema operacional, enquanto na
paravirtualização, essa camada de virtualização é o próprio sistema
operacional modificado para hospedar máquinas virtuais.
4
Responsável por fazer a interação entre as camadas de hardware e software, gerência os recursos do
sistema e permite que os programas façam uso deles.
23
Segue uma visão geral dos tipos de virtualização em um resumo
sobre as técnicas de virtualização já discutidas na tabela 1.
Tipo
Virtualização
Emuladores
Completa
Para
Descrição
Vantagens
Desvantagens
O hypervisor fornece uma
máquina virtual completa
permitindo que aplicativos
de outras arquiteturas
executem no ambiente
virtualizado.
Simula hardware que não está
disponível fisicamente.
Baixa desempenho e
densidade.
O hypervisor fornece uma
máquina virtual completa
permitindo que hóspedes
executem isoladamente.
Flexibilidade. Executa
diferentes versões de
múltiplos sistemas
operacionais de diversas
origens.
O SO hóspede não sabe que
está sendo virtualizado. Pode
ser causa de diminuição
perceptível de desempenho
em um hardware comum,
particularmente para
aplicativo com intensas
operações de E/S.
O hypervisor fornece uma
máquina virtual completa,
mas especializada para cada
hóspede, que precisa ser
modificado e executado em
isolamento.
Leve e rápida, desempenho
próxima da nativa.
Exige que os SO sejam
alterados para utilizar hiperchamadas em vez de alguns
comandos críticos.
Permite que o SO coopere
com o hypervisor – melhora as
E/S e alocação de recursos.
Permite arquiteturas de
virtualização que não
suportam a forma completa.
A maior limitação da
paravirtualização é o fato que
o SO hóspede precisa ser
personalizado para executar
sobre o monitor da máquina
virtual (VMM), que é o
programa hospedeiro que
permite que um único
computador suporte diversos
ambientes de execução
idênticos. Isso tem impacto
especialmente para SO antigos
com códigos fechados que
ainda não tem implementadas
extensões para virtualização.
Tabela 1 - Resumo Sobre Técnicas de Virtualização
Fonte: (LAUREANO, 2006, p.31)
24
CAPÍTULO II
BENEFÍCIOS E APLICAÇÕES DA VIRTUALIZAÇÃO
A área de virtualização está chamando a atenção de grandes
empresas da TI. Sendo demonstrado pelo grande número de empresas que
surgem com soluções de gerência de ambientes virtualizados e pelo aumento
nos investimento na área na busca de soluções de virtualização e
aperfeiçoamento de técnicas já existentes para melhorar o desempenho das
aplicações
tradicionais,
para
que
sejam
executadas
em
ambientes
virtualizados.
Para SIQUEIRA (2007, p. 4):
A primeira e mais óbvia vantagem da virtualização é a redução
de custos. Com apenas uma máquina que possua os recursos
suficientes é possível montar uma estrutura com vários
servidores virtuais, dispensando a aquisição de várias
máquinas. Operacionalmente também há vantagens, pois a
administração se torna centralizada e o tempo total de
manutenção é inevitavelmente reduzido.
Embora existam diferentes níveis de virtualização, a maioria delas
converge
para
um
conjunto
comum
de
aplicabilidade,
vantagens
e
desvantagens. Permitindo as empresas alcançarem uma eficiência significativa
em sua estrutura.
2.1
Aplicabilidade
A virtualização pode ser usada em muitos cenários práticos,
segundo Nanda e Chiueh (2005):
a) Consolidação de servidores: centraliza múltiplos servidores em um único
host físico com desempenho e isolação de falhas, aumentando a
25
eficiência, reduzindo os custos de manutenção e facilitando o
gerenciamento dos recursos no ambiente operacional de TI. Outro ponto
a ser levantado é que a consolidação permite ocupar menos espaço
físico com servidores, propiciando menos gastos com eletricidade e com
manutenção de máquinas.
b) Consolidação de aplicações: permite que aplicações e sistemas
operacionais executem em sistemas heterogêneos com máquinas de
características diferentes, virtualizando o hardware.
c) Configurações de múltiplos sistemas operacionais: executar múltiplos
sistemas operacionais simultaneamente, fazendo que um número maior
de aplicações possa ser executado ao mesmo tempo, tornando-se muito
útil para realizar o desenvolvimento e testes de novas aplicações.
d) Desenvolvimento de kernel: no kernel de uma máquina virtual podem ser
feitos testes e modificações, obtendo ganhos de tempo e agilidade, sem
a necessidade de uma máquina separada para testes.
e) Ensino e aprendizagem: a virtualização pode ser usada no ensino de
diversos SO, também na aprendizagem do funcionamento deles, pois
pode ser facilmente recuperado caso ocorra algum erro durante o uso.
f)
Migração de software: facilita a migração de software e aumenta a
mobilidade de softwares.
g) Suporte de hardware para sistemas operacionais customizados:
desenvolvimento de novos sistemas operacionais beneficiando-se do
suporte ao hardware variado de existentes sistemas operacionais.
h) Sandboxing: máquinas virtuais podem prover um ambiente seguro e
isolado para a execução de aplicações não confiáveis, ou de fontes não
seguras.
26
i)
Honeypots e Honeynets: um honeypot é um sistema colocado em uma
rede com o objetivo de ser comprometido. Uma honeynet é uma rede
formada por vários honeypots. A grande vantagem de se utilizar
virtualização em uma honeynet é não comprometer a rede real, sendo
os ataques confinados às honeynets. Assim, quando um dos honeypots
é comprometido, pode ser substituído por outro de forma mais fácil.
2.2
Benefícios
A virtualização deixou de ser uma tendência e se tornou uma
realidade no mundo corporativo, trazendo inúmeras vantagens a todos, já que
pela economia de recursos e equipamentos também se trata de uma tecnologia
verde (BR LINK, 2011, p.1-1):
a) Redução de custos com hardware: é possível de ser alcançada com a
consolidação de pequenos servidores em outros mais poderosos. Pois
nos servidores físicos, em média, 80% do hardware se mantém ocioso,
portanto somente 20% do hardware são realmente utilizados para as
aplicações. Com a virtualização, o uso de hardware cresce para 70% em
média, tornando mais eficiente o consumo do hardware para os
servidores virtuais.
b) Economia de espaço e energia: são utilizados muito menos servidores
físicos, ganhando em espaço em sua estrutura física. Além disso, menos
servidores ligados significam também menos consumo de energia e
quanto menos máquinas ligadas, menor a necessidade de refrigeração.
c) Alta disponibilidade: a virtualização de servidores permite agregar
funcionalidades à estrutura da empresa, uma vez que o servidor virtual
não depende mais de um servidor físico específico para funcionar,
podendo "flutuar" para um servidor ativo, sem comprometer os serviços.
27
d) Encapsulamento: usado para manipular e controlar a execução do
software na máquina virtual garantindo sua compatibilidade. Garante
também que um completo ambiente de VM seja salvo em um simples
arquivo, facilitando a realização de backup, mover e copiar.
e) Disaster Recovery: a implantação de um programa de recuperação de
desastres é uma realidade efetivamente possível e prática, com
estruturação de serviços para replicação em sites remotos.
f)
Compatibilidade de software: a virtualização provê uma abstração de
forma que todo o software escrito para ela será executado. A abstração
de máquina virtual pode mascarar diferenças no hardware e software
nas camadas abaixo da máquina virtual. Um exemplo é o slogan do
Java “write once, run anywhere” (escreva uma vez, rode em qualquer
lugar).
g) Segurança: a abstração isola completamente a máquina hospedeira e
outras máquinas virtuais existentes. Se uma máquina virtual tem
problemas, todas as outras não são afetadas, executando o isolamento
de dados e de desempenho.
2.3
Dificuldades
A virtualização não traz apenas maravilhas, existem dificuldades que
surgem com o processo de virtualização. Além do custo do processo de
virtualização em si, existem outras dificuldades para a ampla utilização de
máquinas virtuais em ambientes de produção (LAUREANO, 2006, p.35):
a) Processador que não pode ser virtualizado: com exceção das novas
tecnologias de virtualização da Intel e AMD, conhecidas respectivamente
por Intel VT e AMD-V, a arquitetura dos processadores 32 bits não
permite naturalmente o uso da virtualização pelo fato de não ter sido
28
concebida para executar múltiplos sistemas operacionais ao mesmo
tempo.
b) Diversidade de hardware: o desenvolvimento de equipamentos com as
mais variadas características e hardware é uma das dificuldades. Sendo
necessário um esforço de programação enorme para que o VMM
reconheça a gigantesca variedade de hardware com drivers5 diferentes.
c) Persistência de softwares: ao contrário de mainframes, que são
configurados e controlados por administradores de sistema, os desktops
e Workstations já vêm com um SO instalado e configurado. Nesse
ambiente, é muito importante permitir que um usuário possa utilizar a
tecnologia da virtualização sem perder a facilidade de continuar
utilizando seu SO padrão e aplicativos.
d) Custo de execução dos processos: dependendo do hardware que se
está utilizando, o VMM pode haver um overhead6 gerado pela camada
de virtualização. Ambientes com suporte a virtualização tendem a
apresentar um overhead muito menor pelo fato de possuírem instruções
específicas para interagir com as máquinas virtuais, desonerando assim
o software monitor de VM.
e) A principal desvantagem do uso de máquinas virtuais é o custo adicional
de execução dos processos em comparação com a máquina real. Esse
custo é muito variável, podendo chegar a 50% ou mais em plataformas
sem suporte de hardware à virtualização, como os PCs de plataforma
Intel. Esse problema inexiste em ambientes de hardware com suporte à
virtualização, como é o caso de mainframes.
5
6
Pequenos programas que fazem a comunicação entre o S.O. de sua máquina e o Hardware.
Custos adicionais em processamento ou armazenamento que reduz de forma significativa e indesejável,
o desempenho dos sistemas de computação.
29
CAPÍTULO III
FERRAMENTAS PARA VIRTUALIZAÇÃO
Devido ao crescimento da área de virtualização, cada vez mais
surgem ferramentas que fornecem à sua maneira, ambientes virtualizados para
as mais diversas aplicações e sistemas. Existem soluções livres ou
proprietárias, que concorrem pelo mercado de virtualização das grandes
empresas que estão cada vez mais adotando dessa tecnologia.
Para suprir essas necessidades, a cada dia surgem novos sistemas
que dão suporte a utilização de máquinas virtuais, que lutam por uma fatia do
mercado empresarial de tecnologia da informação.
Atualmente as ferramentas para esse tipo de trabalho são inúmeras,
dentre elas as mais utilizadas pelo mercado serão apresentadas.
3.1
VMWare
O VMWare é uma opção de hypervisor, criado em 1998 pela
VMware Inc. que é uma subsidiária da EMC Corporation, sendo um dos
primeiros emuladores de sistemas operacionais baseados na arquitetura x86.
Atualmente, o VMware está posicionado como líder em virtualização
de servidores em plataformas x86 e tem como objetivo trazer tecnologia de
máquinas virtuais desde ambientes desktop a ambientes de datacenter7
(VMware, 2011).
7
Edificação desenvolvida ou adaptada para hospedagem de sistemas de informação com características
de última geração na segurança.
30
Em seu livro, Laureano e Maziero (2008, p.176) dizem que o
VMware “é um software de virtualização total com licença proprietária, que
provê uma camada de virtualização que suporta vários sistemas operacionais
sobre um hardware”. Portanto, permite a emulação de vários sistemas
operacionais ao mesmo tempo sobre um sistema virtualizado onde cada
máquina virtual funciona como um computador pessoal completo, contendo
processador, memória, disco, vídeo, som, unidades de disco.
3.2
Virtual PC
O Virtual PC é um software de virtualização total com licença
proprietária da Microsoft, lançado em dezembro de 2003 para virtualizar
sistemas operacionais Windows ou emulá-los em sistemas baseados no
PowerPC (Macintosh). O programa foi originalmente escrito em 1997 pela
empresa Connectix que foi adquirida pela Microsoft posteriormente. Em julho
de 2006, tornou-se freeware para desktops e usuários comuns.
Foi projetado para fazer uso das vantagens da tecnologia nova de
Intel chamada Intel Virtualization, assim aumentando o desempenho do
sistema convidado e sendo de fácil instalação e rápida reconfiguração dos
equipamentos.
O Virtual PC tem como desvantagem o suporte ao Linux. Pois sua
instalação suporta apenas no Windows XP e Windows 7 e como convidado
apenas os sistema operacionais Windows XP, Windows Vista e Windows 7
(MICROSOFT, 2011).
31
3.3
Xen
O Xen foi desenvolvido pelo Systems Research Group da
Universidade de Cambridge, e é parte de um projeto maior chamado
XenoServers, e depois adquirida pela Citrix Systems.
É um software livre que proporciona maior integração com outras
tecnologias, licenciado pela GPL8. Segundo Macagnani (2011, p.1), o Xen
utiliza
técnicas
de
paravirtualização
para
emular
a
arquitetura
de
processadores das famílias X86, X86-64, IA-64 e Power PC.
Caracteriza-se por ter como base o Linux e permite compartilhar
uma simples máquina para vários clientes rodando sistemas operacionais e
seus respectivos programas. Provê uma camada chamada hypervisor que tem
privilégios totais aos recursos, executando múltiplas máquinas virtuais com
segurança em uma única máquina física, com desempenho próxima à nativa,
ficando a seu cargo, a alocação de memória dos domínios virtuais, controlando
os recursos de comunicação e de processamento das máquinas virtuais,
gerenciando todo o acesso à memória e dispositivos.
O Xen pode ser considerado uma tecnologia madura, sendo muito
utilizado em sistemas de produção e acessível a um número cada vez maior de
usuários, proporcionando ganhos de desempenho, o que o torna uma
alternativa interessante para vários sistemas de computação, através de suas
vantagens como custo e portabilidade.
Atualmente, o ambiente Xen suporta os sistemas Windows, Linux e
NetBSD. Várias distribuições Linux já possuem suporte nativo ao Xen.
8
Acrônimo para General Public License
32
3.4
Bochs
O Bochs foi criado por Kevin Lawton como um produto comercial, foi
adquirido pela empresa MandrakeSoft no ano 2000, que passou a distribuí-lo
gratuitamente,
sob
licença
GPL,
escrito
em
C++.
É
um
emulador
multiplataforma da plataforma x86, de código aberto.
Por ser um emulador multiplataforma, simula totalmente um
computador da arquitetura x86 e pode executar SO compilados para essa
plataforma, como se este rodasse numa máquina real, assim como os
aplicativos executáveis escritos para rodar no SO que estiver rodando no
Bochs. Pode fazer isso em qualquer computador que conte com um compilador
de linguagem C, isso possibilita que ele faça a emulação da plataforma x86 em
máquinas como Power PC da IBM e SPARC da Sun.
O Bochs pode ser instalado em sistemas Linux e Windows, sendo
capaz de executar a maioria dos sistemas operacionais dentro da emulação,
incluindo Linux, DOS, Windows 95/98, Windows NT/2000/XP, Windows Vista e
Windows 7.
O Bochs não utiliza nenhuma técnica para acelerar a emulação, o
que o torna mais lento, pois todas as instruções são executadas via software
(LAUREANO, 2006).
3.5
QEmu
Segundo Laureano e Maziero (2008, p.180) o QEmu é um
hypervisor com virtualização completa através da emulação, de licença GPL e
não requer alterações ou otimizações no sistema hospedeiro, para prover a
33
virtualização. É um hypervisor recursivo, ou seja, é possível chamar o QEmu a
partir do próprio QEmu.
O hypervisor QEmu oferece dois modos de operação:
a) Emulação total do sistema: emula um sistema completo, incluindo
processador e vários periféricos. Utilizado para executar diferentes
sistemas operacionais;
b) Emulação no modo de usuário: disponível apenas para o sistema Linux,
executando processos compilados em diferentes plataformas de
hardware.
Apesar de a filosofia ser basicamente a mesma do Bochs, o QEmu
consegue um desempenho melhor através de um processo de compilação das
instruções da CPU emulada, transformando-as num formato intermediário de
interpretação rápida.
3.6
User-Mode Linux
O User-Mode Linux foi proposto por Jeff Dike em 2000, como uma
alternativa de uso de máquinas virtuais no ambiente Linux.
Para Laureano (2008, p.1), UML é um monitor de máquinas virtuais
convidado, que executa como um processo sobre um sistema nativo Linux. Ele
recria um sistema Linux completo a partir de uma imagem de sistema em disco.
O resultado é um user space separado e isolado na forma de uma
máquina virtual, que utiliza dispositivos de hardware virtualizados a partir dos
serviços providos pelo sistema hospedeiro. Essa máquina virtual é capaz de
executar todos os serviços e aplicações disponíveis para o sistema hospedeiro.
34
No UML, cada máquina virtual é vista como um processo do sistema
Linux nativo subjacente. Todos os dispositivos físicos usados dentro da
máquina virtual são virtualizados a partir de recursos do sistema nativo
(LAUREANO, 2008, p.1):
a) Os discos da máquina virtual correspondem a arquivos no sistema
nativo;
b) As interfaces de rede virtuais são providas por daemons9. executando no
sistema nativo;
Os usuários e processos da máquina virtual são distintos dos
usuários e processos do sistema nativo, sem prejuízo para a segurança do
sistema.
O User-Mode Linux está disponível na versão 2.6 do núcleo Linux,
ou seja, ele foi assimilado à árvore oficial de desenvolvimento do núcleo,
portanto melhorias na sua arquitetura deverão surgir no futuro, ampliando seu
uso em diversos contextos de aplicação.
3.7
Análise Comparativa entre Virtualizadores
Abaixo
veremos
algumas
características
principais
entre
os
softwares de virtualização abordados.
A Tabela 2 mostra a comparação entre os softwares de virtualização
citados como técnicas de virtualização utilizadas, tipo do sistema operacional
anfitrião e convidado, utilização mais comum e o tipo de licença para cada
software.
9
Acrônimo de Disk And Execution MONitor, é um programa de computador que roda de forma
independente, ao invés de ser controlado diretamente por um usuário.
35
Nome
Técnica
Virtualização
Plataforma
disponível
(hospedeiro)
Plataforma
suportada
(hóspede)
Windows
DOS
Linux
Unix BSD
Netware
Solaris
DOS
Windows
OS/2
Linux
Unix BSD
Windows XP
(todos com
modificações)
Utilização
Licença
Acadêmico,
desenvolvimento,
aplicações de produção
Proprietário
Acadêmico,
desenvolvimento,
aplicações de produção
Proprietário
Acadêmico,
desenvolvimento,
aplicações de produção
GPL
VMware
Virtualização
Total
Linux
Windows
Virtual PC
Virtualização
Total
Windows
XEN
Paravirtualização
NetBSD
Linux
Emulação
Windows
Linux
MacOS
Unix
BeOS
DOS
Windows
Unix BSD
Linux
Curiosos e
desenvolvimento
GPL
QEMU
Emulação
Windows
Linux
MAC OS
DOS
Windows
Unix BSD
Linux
Acadêmico,
desenvolvimento,
aplicações de produção
GPL
User Mode
Linux
Paravirtualização
Linux
Linux
Acadêmico,
desenvolvimento,
aplicações de produção
GPL
Bochs
Tabela 2 - Comparação entre os softwares de Virtualização
Fonte: (LAUREANO, 2006, p.79)
Podemos notar a grande variedade de softwares virtualizadores que
estão disponíveis no mercado, com suporte aos diversos sistemas operacionais
e plataformas, a maioria com licenças livres para utilização, alguns com ênfase
acadêmica e em constante desenvolvimento.
36
CAPÍTULO IV
IMPLEMENTAÇÃO EM AMBIENTE PROFISSIONAL
A virtualização pode ser utilizada em diversos setores pelas
organizações de TI, até mesmo por usuários domésticos trazendo benefícios
em uma série de situações. Seu emprego clássico é na consolidação de
servidores, executando vários serviços em uma mesma máquina física, mas
cada um em uma máquina virtual separada. Além de permitir que o hardware
seja melhor aproveitado, isso reduz investimento na aquisição e na
manutenção de uma infra-estrutura física de rede (refrigeração, cabeamento,
espaço físico, consumo de energia, etc.).
Segundo Carissimi (2008, p.177) outra vantagem importante, é o
fato de que uma máquina virtual pode ser facilmente migrada de uma máquina
física a outra, o que possibilita uma rápida recuperação em casos de falhas e
agiliza a manutenção.
O desenvolvimento de software é outra situação em que a
virtualização traz vantagens. É possível testar um produto em desenvolvimento
sobre vários SO, e suas distintas versões, sem a necessidade de ter uma
máquina física instalada com cada um dos sistemas operacionais. Outro uso
interessante da virtualização é a possibilidade de construir ambientes de testes,
onde se pode instalar, configurar e avaliar pacotes de software antes de
colocar em produção, isso sem comprometer um sistema computacional físico.
Nesse caso, é possível criar um ambiente virtual completo, com vários
servidores com sistemas operacionais distintos e/ou serviços, e assim
monitorar atividades de tentativas de invasão sem afetar um sistema físico.
Existem diversas aplicações onde a virtualização pode ser
interessante, mas tipicamente, elas são mais aplicadas na virtualização de
37
desktops, virtualização de servidores, virtualização como recursos de
segurança e com implementação na área empresarial e educacional.
4.1
Virtualização de Servidores
Hoje em dia as empresas vêm cada vez mais buscando a
centralização e diminuição do número de servidores físicos em suas
instalações. Esse processo é conhecido como consolidação de servidores.
Devido aos anos de recessão que estamos sofrendo recentemente, cada vez
mais é necessário reduzir custos e este fato vem mudando o cenário do
mercado mundial de servidores, que está caminhando novamente para
centralização de recursos.
Em seu livro CARISSIMI (2008, p. 195) afirma que:
O princípio básico é o melhor aproveitamento de recursos,
invés de haver n servidores com percentual de utilização de x é
possível ter um único servidor com um percentual de uso de
aproximadamente n.x (n.x < 100). Ao invés de possuirmos
vários servidores físicos, podemos possuir apenas alguns ou
somente um, reduzindo drasticamente a complexidade.
Para implementar uma consolidação de servidores, primeiramente
devem-se considerar alguns pontos chaves (Intel, 2011):
a) Avaliar os processos e as aplicações críticas. Onde aumentando o nível
dos serviços, aumentariam os resultados.
b) Verificar
quais
servidores
está
subutilizados
e
que
poderiam
compartilhar recursos.
c) Algumas aplicações são más candidatas à consolidação. Como
exemplo, as aplicações de alto desempenho que utilizam o servidor na
maior parte do tempo.
38
Deve-se
proceder a seguinte
metodologia
para
cálculo
de
capacidade (Intel, 2011):
a) Fazer um histórico dos dados das aplicações a serem consolidadas,
capturando dados para consultas, uso de memória, entrada e saída,
armazenamento ou qualquer outra informação relevante, em um ciclo de
um dia, um mês, um ano etc.
b) Através do histórico, mapear padrões de uso para descobrir aplicações
que poderiam funcionar juntas, e combinando aplicações de picos em
horários diferentes.
c) Somar todos os picos de carga de trabalho de todos os serviços e
aplicações a serem consolidadas para determinar a requisitos de
capacidade
computacionais
necessárias
(CPU,
memória,
disco,
operações de entrada e saída etc.).
d) Acrescentar uma margem de crescimento projetada para os próximos
seis meses, dois anos ou eventual substituição de equipamentos.
e) Políticas institucionais de utilização de servidores (por exemplo: nenhum
servidor deveria estar funcionando normalmente acima de 80% da
capacidade), deve-se adicionar também esta margem de segurança.
f)
Considerar no cálculo o overhead gerado da técnica de virtualização
adotada.
Neste caso a virtualização de servidores é uma grande alternativa
para empresas de pequeno, médio e grande porte motivadas, em ordem de
importância, pelas seguintes razões (CARISSIMI, 2008):
a) Aumentar a taxa de utilização de servidores.
b) Reduzir custos operacionais de datacenter.
c) Melhorar os procedimentos de recuperação de desastres e de backup.
d) Criar ambientes mais flexíveis para desenvolvimento e teste de software.
e) Reduzir custos de administração de TI.
39
Haverá um melhor aproveitamento dos recursos computacionais,
redução do custo total de propriedade e do custo operacional, a diminuição do
consumo de energia elétrica reduzindo o impacto no meio ambiente, além do
que, com o número de servidores físicos reduzidos, o espaço físico necessário
para abrigá-los também ficará reduzido, garantindo vantagens como economia
em administração, manutenção e refrigeração dos equipamentos.
Além disso, a capacidade de executar softwares de diferentes
sistemas operacionais em um mesmo hardware reduz o desperdício de
capacidade de processamento que ocorre freqüentemente nos servidores em
determinados horários ou dias do mês.
A administração facilitada é outro benefício agregado e de grande
importância no projeto de consolidação de servidores.
4.2
Virtualização de Desktops
A consolidação de servidores é o uso clássico de virtualização, mas
também traz enormes benefícios quando empregada em desktops.
A virtualização de desktops é uma alternativa mais amigável em
relação ao uso de servidores de terminais, pois garante a total compatibilidade
das aplicações, uma maior familiaridade de uso para os usuários e o
isolamento total dos ambientes, oferecendo uma forma simples para testar
novas configurações ou executar programas que foram feitos para sistemas
operacionais diferentes do nativo (CARISSIMI, 2008, p. 197).
Em muitas empresas é comum o tempo de processamento dos
desktops serem subutilizados. O horário comercial é de cerca de 9 horas
diárias, ou seja, 45 horas por semana, mas uma semana tem um total de 168
horas (24 x 7), portanto, a taxa de utilização dos equipamentos é de
aproximadamente 27%, segundo Carissimi (2008, p.198). Uma forma de
40
recuperar esse processamento é associar ao descanso de tela uma máquina
virtual, dessa forma, quando o descanso de tela é ativado ele pode registrar
uma máquina virtual em um servidor central e assim formar um cluster10
(agregado) de computadores virtuais. Esse uso é derivado de programas peerto-peer11 e existem vários projetos desenvolvidos nesse sentido. Normalmente
a técnica emprega um horário a partir do qual o registro é feito e validado.
Assim como na virtualização de servidores, a virtualização de
desktops pode ser uma boa opção para empresas de todos os portes, trazendo
como benefícios (Virtue IT, 2011):
a) Gerenciamento centralizado;
b) Instalações simplificadas;
c) Facilidade para a execução de backups;
d) Suporte e manutenção simplificados;
e) Acesso controlado a dados sensíveis e à propriedade intelectual
mantendo-os seguros dentro do datacenter da empresa;
f)
Independência de hardware;
g) Disponibilização de novos desktops reduzida para alguns minutos;
h) Migração de desktops para novo hardware de forma transparente;
i)
Maior disponibilidade e mais fácil recuperação de desktops;
j)
Compatibilidade total com as aplicações.
Um processo de virtualização ideal de desktops prevê as
seguintes etapas (Virtue IT, 2011):
a) Análise e Avaliação - dos equipamentos e ativos envolvidos no
processo
possibilitando
o
desenvolvimento
do
projeto
mais
adequado para sua empresa;
10
Sistema onde dois ou mais computadores trabalham em maneira conjunta para realizar processamento
pesado.
11
Arquitetura de sistemas distribuídos caracterizada pela descentralização das funções na rede, onde
cada nodo realiza tanto funções de servidor quanto de cliente.
41
b) Planejamento - garante de forma eficaz e eficiente o projeto de
virtualização, gerenciando todos os riscos envolvidos e garantindo o
sucesso do projeto;
c) Implementação - reflete diretamente na qualidade dos serviços e
evita quaisquer surpresas;
d) Treinamento - evita problemas e falhas causadas por erros na
administração do ambiente. Deve ser realizado antes, durante ou
após a execução da etapa de implantação;
e) Acompanhamento e suporte - garante segurança ao administrador
que irá assumir o ambiente virtualizado, com o objetivo de sanar
quaisquer dúvidas que possam surgir no dia-a-dia.
Seja qual for o ambiente que se pretende virtualizar, é importante
fazer uma análise e avaliação dos equipamentos e ativos envolvidos no
processo. Isto permite o mapeamento do ambiente, possibilitando o
desenvolvimento do projeto mais adequado para a empresa, seguido de um
bom planejamento, evitando quaisquer surpresas durante a etapa de
implementação, que deve ser cuidadosamente executada e acompanhada pelo
gerente de projetos.
E para um gerenciamento seguro do ambiente implantado, o
treinamento é fundamental, evitando problemas e falhas causadas por erros na
administração do ambiente. Este treinamento pode ser realizado antes, durante
ou após a execução da etapa de implantação.
Outro ponto
importante para
que pretende
virtualizar é
o
acompanhamento pós implantação. Tem um altíssimo valor nos projetos, pois
garante segurança ao administrador que irá assumir o ambiente virtualizado e
tem o objetivo de sanar quaisquer dúvidas que possam surgir no dia-a-dia e,
também, garantir a entrega do projeto.
42
4.3
Virtualização como Recurso de Segurança
Outra aplicabilidade muito interessante da virtualização a ser citada
é na área de segurança de TI. Existem ferramentas no mercado que foram
criadas com o intuito de servir de cobaia para os hackers12. São chamadas de
honeypots. São recursos computacionais de segurança dedicados a ser
sondado, atacado ou comprometido.
De uma forma simplificada Hoepers, Steding-Jessen e Chaves
(2007, p.1-1) afirmam que:
Honeypots consiste em se colocar intencionalmente máquinas
na internet de forma que elas sejam atacadas por crackers13. O
intuito é monitorar as atividades, se precaver de ataques e
tornar mais fácil a investigação de incidências de ataques e sua
recuperação. O principal objetivo dessas ferramentas é a
detecção e correção de falhas de segurança.
As honeypots subdividem-se em dois tipos: baixa interatividade e
alta interatividade
Os honeypots de baixa interatividade oferecem baixo risco de
comprometimento e são indicados para redes de produção, quando não há
pessoal e/ou hardware disponível para manter uma honeynet, ou quando o
risco de um honeypot de alta interatividade não é aceitável. Então são criados
honeynets, que nada mais são do que uma rede composta de vários
honeypots,
especificamente
projetado
para
pesquisa
e
obtenção
de
informações dos invasores, onde em um único hardware físico é possível se
instalar várias máquinas virtuais, o que permite aumentar o número
honeypots.(HOEPERS, STEDING-JESSEN e CHAVES, 2007)
12
Termo usado para designar quem elaboram e modificam software e hardware de computadores de
forma legal, seja desenvolvendo funcionalidades novas, seja adaptando as antigas.
13
Termo usado para designar quem pratica a quebra de um sistema de segurança, de forma ilegal ou
sem ética.
43
Os honeypots de alta interatividade são indicados para redes de
pesquisa. Podem ser utilizados para os mesmos propósitos que os honeypots
de baixa interatividade, mas introduzem um alto risco para instituição, e são
justificáveis quando o objetivo é estudar o comportamento dos invasores, suas
motivações, além de analisar detalhadamente as ferramentas utilizadas e
vulnerabilidades exploradas.
De acordo com Hoepers, Steding-Jessen e Chaves (2007, p.1-1)
“para utilizar honeypots e honeynets como recurso de segurança, a
implementação de uma arquitetura confiável é a base para esse sistema de
detecção de intrusão utilizando virtualização.”
Abaixo a tabela 3 mostra a comparação entre as características
básicas dos honeypots de baixa e alta interatividade.
Honeypot
Características
Alta Interatividade
Baixa interatividade
(Honeynet)
Instalação
Fácil
Mais difícil
Manutenção
Fácil
Trabalhosa
Risco de comprometimento
Baixo
Alto
Obtenção de informações
Limitada
Extensiva
Necessidade de mecanismos de contenção
Não
Sim
Atacante tem acesso ao SO real
Não (em teoria)
Sim
Aplicações e serviços oferecidos
Emulados
Reais
Atacante pode comprometer o honeypot
Não (em teoria)
Sim
Tabela 3 - Comparação entre honeypots de alta e baixa interatividade
Fonte: (HOEPERS, STEDING-JESSEN e CHAVES, 2007)
44
Segundo Hoepers, Steding-Jessen e Chaves (2007, p.1-1) é
importante ressaltar que honeypots/honeynets devem ser utilizados como um
complemento para a segurança da rede de uma instituição e não devem ser
encarados como substitutos para:
a) Boas práticas de segurança;
b) Políticas de segurança;
c) Sistemas de gerenciamento de correções de segurança (patches14);
d) Outras ferramentas de segurança, como firewall e IDS.
4.4
Virtualização do Sistema de Ensino
O uso da virtualização é amplamente visto em diversas áreas, tanto
em setores distintos de TI quanto na sociedade. A força da virtualização
também pode ter excelente emprego na área de ensino, como em faculdades e
cursos profissionalizantes.
Em instituições que ministram diversos tipos de cursos e que
utilizam a tecnologia dos computadores, é comum a necessidade de possuir
máquinas dedicadas a cada curso, gerando grandes custos de compra de
equipamentos e manutenção. Sabemos também que é comum em processos
de aprendizagem acontecer danos ao sistema operacional ou ferramentas
instaladas, sendo necessária a reinstalação do SO, aplicativos, etc. Problemas
como estes podem ser facilmente resolvidos com o uso dos conceitos de
virtualização, onde poderiam ser executados vários sistemas operacionais em
uma mesma máquina física, tornando o processo de ensino bastante prático e
a custo reduzido.
14
Programa criado para atualizar ou corrigir um software. Esta técnica pode ser utilizada como uma das
formas de distribuir uma liberação de software.
45
Um exemplo claro é utilização da virtualização em laboratórios,
facilitando a aplicação de aulas práticas e também os custos inerentes a sua
manutenção. Em disciplinas como sistemas operacionais ou redes, em que
existe a necessidade de equipamentos dedicados, a reinstalação de sistemas
operacionais diversos, a criação de redes, entre outros, a virtualização pode
ser grande aliada, pois possibilita que, ao início de cada aula, o aluno carregue
a partir de um servidor a imagem de todas as suas máquinas virtuais. Isso
possibilita que o aluno continue suas atividades a partir do ponto onde parou na
aula anterior e sem interferir na utilização do laboratório por alunos de outros
cursos.
A virtualização possibilita a criação de laboratórios multidisciplinares,
com a criação das máquinas de acordo com o perfil do curso que está sendo
freqüentado pelo aluno, e isto vale para qualquer disciplina e não apenas para
as ligadas a TI (LAUREANO, 2006).
Por isso a aplicação da virtualização em laboratórios de ensino tem
por objetivo criar um ambiente que isole o estudante da máquina física com as
vantagens da redução dos custos de manutenção, aumento da flexibilidade e
aumento da segurança.
Um exemplo real de aplicação da virtualização na educação é o
intuito do Brasil ter o maior projeto de virtualização no mundo, que será
implantado pelo governo federal através do ProInfo, Programa de Inclusão
Digital do Ministério da Educação, que vai instalar 356.800 estações de
trabalho em escolas públicas de todo o Brasil, atingindo 5.560 municípios
através da tecnologia de virtualização, onde cada PC com Linux seja
convertido
em
até
10
máquinas
virtuais
para
usuários
diferentes
(COMPUTERWORLD, 2009, p.1-1).
A economia é expressiva. Representa de imediato, 60% a menos
nos custos iniciais e 80% de economia em energia no decorrer do ano e sem
custo com licenciamento do sistema operacional, já que usa Linux. Serão
46
poupadas emissões de carbono no montante de 170.000 toneladas anuais de
CO2 na natureza, o equivalente à retirada de 28.000 carros das ruas ou a
plantação de 41.000 acres de árvores, o que torna a iniciativa além de tudo,
verde (COMPUTERWORLD, 2009, p.1-1).
47
CONCLUSÃO
Após abordagem da origem da virtualização, principais conceitos
que são essenciais para um melhor entendimento, também foi possível
perceber as características das técnicas de virtualização utilizadas. Além disso,
foi descrito as principais características das ferramentas de virtualização mais
utilizadas no mercado.
A virtualização, sem dúvidas, é uma tecnologia impressionante. A
solução definitiva para empresas que desejam diminuir custos sejam eles com
equipamentos, recursos naturais ou mão de obra capacitada, já que um
número menor de equipamentos requer menos mão de obra para gerenciar.
Porém, cabe ao administrador de sistemas escolherem a que mais lhe convém.
Por fim, podemos concluir que a tecnologia de virtualização, vem
evoluindo muito e conseqüentemente, cada vez mais sendo utilizada pelos
profissionais da área de TI ao longo dos anos e tem-se revelado uma
alternativa interessante em diversos paradigmas da computação, por ser uma
grande aliada na diminuição da complexidade dos ambientes, facilitando os
trabalhos das equipes de suporte, aumentando a portabilidade dos ambientes,
diminuindo os custos e aumentando a segurança e disponibilidade dos
recursos para os usuários em empresas de diversos setores através da
centralização e consolidação de servidores, desktops, otimizações de hardware
e a segurança da informação.
Portanto, nos próximos anos, a empresa que não adotar a prática de
virtualização perderá a credibilidade com seus clientes, manutenção dos
equipamentos, perda de rendimento em seus servidores e além de gastos
exorbitantes com consumo de energia, indo contra a tendência mundial de uma
economia verde que contribuí na redução do aquecimento global.
48
BIBLIOGRAFIA CONSULTADA
BR LINK (São Paulo) (Org.). Virtualização de Servidores: Quais as principais
vantagens da virtualização. Disponível em:
<http://www.brlink.com.br/s/virtualizacao/virtualizacao-de-servidores>. Acesso
em: 13 jun. 2011.
CANDIDO, Caio Henrique Moura. História da Virtualização. Disponível em:
<http://caiocandido.wordpress.com/2007/05/19/conceitos-de-virtualizacao/>.
Acesso em: 07 jun. 2011.
CAPPUCCIO, David. Riscos no Data Center. Info Corporate, São Paulo, n. 44,
p.82-82, 10 maio 2007.
CARISSIMI, Alexandre. Virtualização: da teoria a soluções. Porto Alegre:
Sociedade Brasileira de Computação, 2008.
COMPUTERWORLD. Projeto do MEC quer fornecer 350 mil máquinas virtuais
para escolas do Brasil. Disponível em:
<http://computerworld.uol.com.br/tecnologia/999/12/31/projeto-do-mec-querfornecer-350-mil-maquinas-virtuais-para-escolas-do-brasil/>
Acesso em: 29 jul. 2011.
HOEPERS, Cristine; STEDING-JESSEN, Klaus; CHAVES, Marcelo H. P. C..
Honeypots e Honeynets: Definições e Aplicações. Disponível em:
<http://www.cert.br/docs/whitepapers/honeypots-honeynets/#ref-02>. Acesso
em: 25 jul. 2011.
INTEL (Usa). Virtualization. Disponível em:
<http://www.intel.com/technology/virtualization/>. Acesso em: 18 jun. 2011.
49
LAUREANO, Marcos. Máquinas Virtuais e emuladores: Conceitos,Técnicas e
Aplicações. São Paulo: Novatec, 2006.
LAUREANO, Marcos. User-Mode Linux. Disponível em:
<http://www.mlaureano.org/guias-e-tutoriais/configuracao-do-user-modelinux/>. Acesso em: 02 jul. 2011.
LAUREANO, Marcos; MAZIERO, Carlos; JAMHOUR, Edgard. Proteção de
detectores de intrusão através de máquinas virtuais. Disponível em:
<http://www.mLAUREANO.org/projetos/deteccao-de-intrusao-em-maquinasvirtuais/>. Acesso em: 25 jun. 2011.
LAUREANO, Marcos; MAZIEIRO, Carlos. Virtualização: Conceitos e Aplicações
em Segurança. Porto Alegre: SBC, 2008.
MACAGNANI, Bruno. Uma introdução ao Xen. Disponível em:
<http://www.hardware.com.br/artigos/xen/>. Acesso em: 05 jul. 2011.
MICROSOFT. Windows Virtual PC. Disponível em:
<http://www.microsoft.com/brasil/windows/virtual-pc/>. Acesso em: 02 jul. 2011.
NANDA, Susanta; CHIUEH, Tzi-cker. A Survey on Virtualization. New York:
Universityat Stony Brook, 2005.
PECORARI, Claudio. Além da Virtualização. Disponível em:
<http://www.malima.com.br/article_read.asp?id=908>. Acesso em: 28 mai.
2011.
SIQUEIRA, Luciano. Linux Pocket Pro - Virtualização. Porto Alegre: Linux New
Media do Brasil, 2009.
SMITH, James E.; NAIR, Ravi. The architecture of virtual machines. Computer,
IEEE Computer Society Press, Los Alamitos, USA, v. 38, n. 5, p. 32–38, 2005.
50
SOURCE FORGE. Welcome to the Bochs IA-32 Emulator Project. Disponível
em: <http://bochs.sourceforge.net/>. Acesso em: 03 jul. 2011.
VIRTUE IT (Brasil). Virtualização. Disponível em:
<http://www.virtueit.com.br/index.html#>. Acesso em: 16 jul. 2007.
VMWARE. Virtualization Software. Disponível em:
<http://www.vmware.com/br/virtualization/> Acesso em: 03 jul. 2011.
51
ÍNDICE
FOLHA DE ROSTO
2
AGRADECIMENTO
3
DEDICATÓRIA
4
RESUMO
5
LISTA DE ILUSTRAÇÕES
6
LISTA DE TABELAS
7
LISTA DE ABREVIATURAS E SIGLAS
8
METODOLOGIA
9
SUMÁRIO
10
INTRODUÇÃO
11
CAPÍTULO I
CONCEITOS EM VIRTUALIZAÇÃO
13
1.1
Visão Histórica
15
1.2
Formas de Virtualização
16
1.2.1 Virtualização do Hardware
16
1.2.2 Virtualização do sistema operacional
17
1.2.3 Virtualização de linguagens de programação
18
Técnicas de Virtualização
19
1.3.1 Emulação
19
1.3.2 Virtualização Total
20
1.3.3 Paravirtualização
21
1.3.4 Relação entre a virtualização total e a paravirtualização
22
1.3
CAPÍTULO II
BENEFÍCIOS E APLICAÇÕES DA VIRTUALIZAÇÃO
24
2.1
Aplicabilidade
24
2.2
Benefícios
26
2.3
Dificuldades
27
52
CAPÍTULO III
FERRAMENTAS PARA VIRTUALIZAÇÃO
29
3.1
VMWare
29
3.2
Virtual PC
30
3.3
Xen
31
3.4
Bochs
32
3.5
QEmu
32
3.6
User-Mode Linux
33
3.7
Análise Comparativa entre Virtualizadores
34
CAPÍTULO IV
IMPLEMENTAÇÃO EM AMBIENTE PROFISSIONAL
36
4.1
Virtualização de Servidores
37
4.2
Virtualização de Desktops
39
4.3
Virtualização como Recurso de Segurança
42
4.4
Virtualização do Sistema de Ensino
44
CONCLUSÃO
49
BIBLIOGRAFIA CONSULTADA
50
ÍNDICE
53
Download

universidade candido mendes pós