virtualizacao de sistemas operacionais.tcc
TRANSCRIPT
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
1/114
LNCC - LABORATRIO NACIONAL DE COMPUTAO CIENTFICA
ISTCC - INSTITUTO SUPERIOR DE TECNOLOGIA EM CINCIAS DA
COMPUTAO
Virtualizao de Sistemas Operacionais
Por
Rodrigo Ferreira da Silva
Orientador
Prof. Fbio Borges de Oliveira
Petrpolis - RJ, Brasil
Dezembro de 2007
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
2/114
2
LNCC - LABORATRIO NACIONAL DE COMPUTAO CIENTFICA
ISTCC - INSTITUTO SUPERIOR DE TECNOLOGIA EM CINCIAS DA
COMPUTAO
Virtualizao de Sistemas Operacionais
Monografia apresentada ao curso de Graduao em
Tecnologia da Informao e da Comunicao do
ISTCC Instituto Superior de Tecnologia em Cincias
da Computao de Petrpolis, como pr-requisito para
obteno do ttulo de graduado em Tecnologia da
Informao e da Comunicao.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
3/114
3
FOLHA DE APROVAO
Virtualizao de sistemas operacionais
Por
Rodrigo Ferreira da Silva
Monografia apresentada Comisso Examinadora como requisito da Disciplina
Projeto Final:
Fbio Borges de Oliveira
Laboratrio Nacional de Computao Cientfica - LNCC
Instituto Superior de Tecnologia em Cincias da Computao ISTCC
Eduardo Lcio Mendes Garcia
Laboratrio Nacional de Computao Cientfica - LNCC
Rogrio Albuquerque de Almeida
Laboratrio Nacional de Computao Cientfica - LNCC
Wagner Vieira Lo
Laboratrio Nacional de Computao Cientfica - LNCC
Petrpolis - RJ, Brasil
Dezembro de 2007
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
4/114
4
AGRADECIMENTOS
A Deus acima de tudo, minha noiva Juliana que sempre me deu apoio nas horas
difceis, aos meus pais que sempre acreditaram e investiram em meus estudos, ao meu
orientador Fbio pelo tempo disponibilizado entre as suas atividades, a Tnia e ao
pessoal da secretaria do IST sempre dando uma fora extra aos alunos, ao Lincoln, ao
professor Srgio da Tiny English Course de Petrpolis, aos colegas Bruno, Alex,
Luciana e Mariana, aos professores Luis Fernando, Augusto e Otvio (in memoriam), e
a todos que me ajudaram nesta difcil caminhada.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
5/114
5
RESUMO
A virtualizao de sistemas operacionais uma tecnologia que vem ganhando espao
nos ltimos anos e cuja principal proposta particionar os recursos do hardware de
forma que ele execute vrios sistemas operacionais (iguais ou diferentes) e suas
aplicaes de forma simultnea e totalmente isoladas entre si. Com a virtualizao
podemos fazer um melhor aproveitamento dos recursos computacionais novos ou
existentes, reduzindo a freqente ociosidade desses recursos em momentos do dia e do
ms. Este trabalho tem como objetivo, apresentar os principais conceitos, bem como
algumas das caractersticas tcnicas, alm de exemplificar outras importantes utilizaesdesta tecnologia. Ele descreve tambm, as arquiteturas dos principais softwares de
virtualizao disponveis na atualidade, inclusive com detalhes de implementao.
Palavras-Chave: Virtualizao, Mquinas Virtuais, Sistemas Operacionais, Emuladores.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
6/114
6
ABSTRACT
The operating systems virtualization is a technology that, is getting large in the last
years and which main proposal is divide the resources of the hardware to make it
execute several operating systems (different or the same), their applications in a
simultaneous way and totally isolated among themselves. With the virtualization we can
make a better use of the computer resources: new or existent, reducing the frequent
idleness of those resources in moments of the day and of the month. This work has the
intention, to present the main concepts, as well as some of the technical characteristics,
besides exemplifying other important uses of this technology. It also describes, thearchitectures of the main softwares of virtualization available at the present time,
including implementation details.
Keywords: Virtualization, Virtual Machines, Operating systems, Emulators.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
7/114
7
SUMRIO
INTRODUO .............................................................................................................. 11
CAPTULO I
CONCEITO DE VIRTUALIZAO E MQUINAS VIRTUAIS .............................. 13
1.1 Conceito de Virtualizao .................................................................................... 13
1.2 Implementaes .................................................................................................... 13
1.3 Virtualizao e emulao...................................................................................... 14
1.4 Mquina virtual e mquina real ............................................................................ 151.5 Motivao para o uso mquinas virtuais .............................................................. 16
1.6 O Monitor de Mquinas Virtuais .......................................................................... 17
1.7 Tipos de Mquinas Virtuais .................................................................................. 18
1.7.1 Mquinas virtuais clssicas ou de Tipo I ....................................................... 19
1.7.2 Mquinas virtuais Hospedadas ou de Tipo II ................................................ 20
1.7.3 Consideraes ................................................................................................ 20
1.8 Formas de virtualizao porsoftware................................................................... 21
1.8.1 Camada de Abstrao doHardware(Hardware Abstraction Layer- HAL) 21
1.8.2 Nvel do sistema operacional (OSLevel) ...................................................... 22
1.8.3 Emulao completa........................................................................................ 22
1.8.4 Nvel de Aplicao ........................................................................................ 23
1.8.5 Bibliotecas de interface do usurio (User level library interface) ................ 24
CAPTULO II
PRINCIPAIS APLICAES DE MQUINAS VIRTUAIS ........................................ 25
2.1 Introduo ............................................................................................................. 25
2.2 Consolidao de servidores .................................................................................. 26
2.2.1 Implementao da consolidao de servidores .............................................. 27
2.3 Segurana.............................................................................................................. 30
2.3.1 Isolamento ..................................................................................................... 30
2.3.2 Tolerncia falhas ......................................................................................... 31
2.3.3HoneypotseHoneynets................................................................................. 32
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
8/114
8
2.3.4 Deteco de intruso ...................................................................................... 33
2.4 Ensino ................................................................................................................... 35
2.5 Teste e Migrao de aplicaes ............................................................................ 36
2.6 Consolidao de aplicaes legadas ..................................................................... 36
2.7 Servio de Hospedagem (Hosting)....................................................................... 37
2.8 Suporte Tcnico .................................................................................................... 39
CAPTULO III
TCNICAS PARA CONSTRUO DE SOFTWAREVIRTUALIZADOR ................ 40
3.1 Modos de CPU, trape Chamadas de Sistema ...................................................... 40
3.2 O Modo Hipervisor ............................................................................................... 40
3.3 O problema da Arquitetura x86 ............................................................................ 41
3.4 Virtualizao Total (FullVirtualization) .............................................................. 42
3.4.1 Virtualizao de CPU na virtualizao total.................................................. 43
3.4.2 Virtualizao de memria/disco na virtualizao total.................................. 44
3.4.3 Virtualizao de E/S na virtualizao total.................................................... 45
3.5 Paravirtualizao (Paravirtualization)................................................................. 46
3.5.1 Paravirtualizao e CPU ................................................................................ 47
3.5.2 Paravirtualizao e memria/disco ................................................................ 47
3.6 Emulao com Recompilao Dinmica .............................................................. 48
3.7 As novas tecnologias de Virtualizao da Intel e AMD ....................................... 50
CAPTULO IV
VIRTUALIZAO POR CAMADA DE ABSTRAO DOHARDWARE............... 53
4.1 Introduo ............................................................................................................. 53
4.2 VMware ................................................................................................................ 53
4.2.1 VMware ESX Server ..................................................................................... 54
4.2.1.1 Virtualizao de CPU ............................................................................. 54
4.2.1.2 Virtualizao de memria ....................................................................... 55
4.2.1.3 Virtualizao de disco ............................................................................ 55
4.2.1.4 Virtualizao de rede .............................................................................. 56
4.2.2 VMware Server.............................................................................................. 56
4.2.3 VMware Workstation .................................................................................... 584.2.4 VMware Player .............................................................................................. 59
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
9/114
9
4.2.5 VMWare Infrastructure ................................................................................. 59
4.2.5.1 Alta Disponibilidade ............................................................................... 61
4.2.6 Teste do VMWare ......................................................................................... 62
4.3 Xen ....................................................................................................................... 63
4.3.1 Gerenciamento de Memria .......................................................................... 65
4.3.2 Gerenciamento da CPU ................................................................................. 65
4.3.3 Dispositivos de E/S ........................................................................................ 65
4.3.4 Dispositivos de Rede ..................................................................................... 66
4.3.5 Migrao de domnios ................................................................................... 67
4.3.6 Teste do Xen .................................................................................................. 67
4.4 Microsoft Virtual PC e Microsoft Virtual Server ................................................. 68
4.4.1 Discos virtuais (VirtualHardDisk)............................................................... 70
4.4.2 Teste do Microsoft Virtual Server ................................................................. 71
4.5 VirtualBox ............................................................................................................ 72
4.5.1 Teste do VirtualBox ...................................................................................... 74
4.6 User-Mode Linux ................................................................................................. 75
4.6.1 Chamadas de sistema ..................................................................................... 76
4.6.2 Sistema de arquivos ....................................................................................... 77
4.6.3 Desempenho .................................................................................................. 77
4.6.4 Teste do User-Mode Linux ............................................................................ 77
CAPTULO V
VIRTUALIZAO NO NVEL DE SISTEMAS OPERACIONAIS ........................... 80
5.1 Introduo ............................................................................................................. 80
5.2 Solaris Containers (Zones) ................................................................................... 80
5.2.1 Gerenciamento de Memria .......................................................................... 82
5.2.2 Sistema de Arquivos ...................................................................................... 83
5.2.3 Configuraes de Rede .................................................................................. 83
5.2.4 Gerenciamento de Recursos .......................................................................... 84
5.2.5 Teste do Solaris Zones ................................................................................... 84
5.3 FreeBSD Jails ....................................................................................................... 87
5.3.1 Teste do FreeBSD Jails ................................................................................. 89
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
10/114
10
CAPTULO VI
VIRTUALIZAO POR EMULAO ....................................................................... 93
6.1 Introduo ............................................................................................................. 93
6.2 QEMU .................................................................................................................. 93
6.2.1 Teste do QEMU ............................................................................................. 95
6.3 Bochs .................................................................................................................... 96
6.3.1 Teste do Bochs .............................................................................................. 96
CAPTULO VII
VIRTUALIZAO NO NVEL DE APLICAO...................................................... 98
7.1 Introduo ............................................................................................................. 98
7.2 Java Virtual Machine ............................................................................................ 98
7.3 Microsoft .Net CLR .............................................................................................. 99
CAPTULO VIII
BIBLIOTECAS DE INTERFACE DO USURIO ..................................................... 101
8.1 Introduo ........................................................................................................... 101
8.2 Wine ................................................................................................................... 101
8.2.1 Arquitetura do Wine .................................................................................... 102
8.2.2 Gerenciamento de memria ......................................................................... 103
8.2.3DriversWine ............................................................................................... 104
8.2.4 Teste do Wine .............................................................................................. 104
CONCLUSO .............................................................................................................. 106
ANEXO I - TABELA COMPARATIVA DE MQUINAS VIRTUAIS .................... 109
BIBLIOGRAFIA .......................................................................................................... 111
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
11/114
11
INTRODUO
Os sistemas computacionais tradicionais vm se baseando h alguns anos no modeloHardware- Sistema Operacional - Aplicaes. Todavia, nesse modelo h um problema:
uma aplicao geralmente s executa sobre o sistema operacional para qual ela foi
escrita. Assim somos obrigados a ter um sistema operacional por vez executando em
determinado hardware, e somente as aplicaes que executam sobre esse sistema
podero ser executadas nesse hardware.
A virtualizao de sistemas operacionais um meio para reduzir a importncia dosistema operacional. Ela visa permitir que um hardwarepossa executar vrios sistemas
operacionais iguais ou distintos, de uma forma simultnea e isolados entre si. Para isto
utiliza-se de tcnicas avanadas de abstrao e emulao, sempre mantendo esforos
para prover o mximo de segurana, desempenho e confiabilidade dos meios
envolvidos.
Alm disso, tambm uma proposta para consolidao de servidores, reduo do
consumo de energia eltrica, produo de calor, espao fsico e manuteno de
equipamentos. Benefcios estes que garantem um melhor aproveitamento dos recursos
computacionais existentes, assim, gerando menores custos e menor degradao
ambiental.
O presente trabalho consiste em apresentar os principais pontos desta tecnologia que
vem ganhando bastante espao nos ltimos anos. Ele visa principalmente servir de base
a pessoas que esto ingressando no estudo do tema, e podendo ser utilizado como ponto
de partida a pesquisas mais especficas na rea no futuro.
Este trabalho est dividido da seguinte forma: principais conceitos da tecnologia,
principais utilizaes da tecnologia, a arquitetura e as diferenas das tcnicas de
virtualizao existentes, e as caractersticas dos principais softwares de virtualizao
atuais. importante salientar que alguns desses softwares foram testados de forma
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
12/114
12
prtica, e ao final de cada apresentao dosoftwareneste trabalho, h um relato sobre
como foi feito o teste e uma rpida concluso.
Na ltima seo h uma concluso geral e sugestes para trabalhos futuros.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
13/114
13
CAPTULO I
CONCEITO DE VIRTUALIZAO E MQUINAS VIRTUAIS
1.1 Conceito de Virtualizao
A virtualizao uma tecnologia que oferece uma camada de abstrao dos verdadeiros
recursos de uma mquina, provendo um hardware virtual para cada sistema, com o
objetivo de esconder as caractersticas fsicas e forma como os sistemas
operacionais e aplicaes interagem com os recursos computacionais.
As principais qualidades da virtualizao so: o reaproveitamento de recursos, a
portabilidade e a segurana.
Com a virtualizao podemos:
Executar diferentes sistemas operacionais em um mesmo hardwaresimultaneamente.
Executar um sistema operacional (e suas aplicaes) como um processo de
outro.
Utilizar sistemas operacionais e aplicaes escritas para uma plataforma em
outra, alm de outros usos que sero vistos a seguir.
1.2 Implementaes
Conceitualmente a virtualizao pode ser implementada de duas formas: por solues
combinadas em hardwareesoftware, ou totalmente baseada emsoftware.
As solues de combinao entre hardwareesoftwareno so um conceito novo e suas
origens remetem ao incio da histria dos computadores nos anos 60, nas mquinas
VM/370 da IBM. Na soluo de hardware e software h uma cooperao entre um
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
14/114
14
softwarevirtualizador (que faz o papel principal) com o hardware, cujo qual fornece
partes chaves do processo. O desempenho a principal vantagem desta tecnologia. So
exemplos de arquiteturas que suportam este tipo de virtualizao: IBM z/VM e HP-UX
Virtual Partition.
Na virtualizao totalmente baseada emsoftware, no preciso um hardwareprovendo
recursos para suport-la, ao invs disso, osoftwarevirtualizador que prov totalmente
os recursos no processo. Essa tecnologia tem como vantagens o baixo custo de
implementao e a portabilidade entre plataformas. So exemplos dessa tecnologia:
VMWare, Xen, Microsoft Virtual Server, Solaris Zones, FreeBSD Jails e outras.
Este trabalho visa apresentar os principais conceitos da virtualizao baseada por
software, uma vez que esta tecnologia a mais comum atualmente e vem ganhando
cada vez mais popularidade por profissionais de TI (Tecnologia da Informao). A
virtualizao baseada em software alm de possuir as vantagens j citadas, ainda
possibilita virtualizar arquiteturas de baixo custo como, por exemplo, x86 e PowerPC.
1.3 Virtualizao e emulao
importante salientar que os termos virtualizao e emulao de sistemas apesar de
parecerem referir-se ao mesmo tema, na verdade possuem grandes diferenas. Um
emulador um agente escrito para tornar possvel a interao entre dois sistemas
distintos e incompatveis entre si (os quais podem ser um softwaree um hardware, ou
um software e outro software). Para isto, o emulador traduz as instrues entre um
sistema e outro, intermediando o processo.
J a virtualizao, por sua vez, utiliza a emulao e outras tcnicas para oferecer um
conjunto completo de recursos, com o objetivo de permitir que vrios sistemas
executem sobre uma mesma plataforma visando o mximo de desempenho.
O foco da emulao fazer um sistema executar totalmente sobre outro para o qual no
foi originalmente construdo, mesmo que isto cause uma perda de desempenho. De um
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
15/114
15
modo contrrio, a virtualizao preocupa-se sempre com o desempenho e executa o
sistema virtual diretamente no hardwarequando possvel.
1.4 Mquina virtual e mquina real
Uma mquina virtual um espao virtual isolado com acesso ao hardware, onde
funciona um sistema virtual. Mquina virtual (em ingls, Virtual Machine VM) o
termo a que nos referimos quando estamos trabalhando com sistemas virtuais
executando em uma mquina real. Uma mquina virtual Uma duplicata eficiente e
isolada de uma mquina real [POPEK e GOLDBERG].
Uma mquina real formada por vrios componentes fsicos que fornecem operaes
para o sistema operacional e suas aplicaes. A funcionalidade e o nvel de abstrao
de uma mquina virtual encontram-se em uma posio intermediria entre uma
mquina real e um emulador, de forma que os recursos de hardware e de controle so
abstrados e usados pelas aplicaes [LAUREANO 2006].
O aparecimento do termo mquina virtual data do ano de 1967 quando pesquisadores da
IBM desenvolveram o sistema CP-67 que permitia que um nico hardwareda famlia
360 simulasse mltiplas mquinas lgicas menores e totalmente independentes entre si.
Entretanto este termo permaneceu pouco conhecido at a metade dos anos 90, quando o
termo ressurgiu, sobretudo com o aparecimento de aplicaes voltadas a virtualizar
recursos nos microcomputadores PC (Personal Computer) de plataforma Intel
(arquitetura x86).
Em ambientes virtualizados as mquinas virtuais simulam uma rplica fsica de uma
mquina real. Dispositivos adicionais como drives de disquetes, CD-ROM e
dispositivos USB (Universal SerialBus) tambm podem ser compartilhados entre as
mquinas virtuais e o sistema anfitrio (tambm chamado de sistema host). Os usurios
tm a iluso de que o sistema est disponvel para seu uso exclusivo.
Embora as funcionalidades das diversas mquinas virtuais sejam diferentes, todoscompartilham de atributos comuns [ROSEMBLUM] como:
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
16/114
16
Compatibilidade do software: a mquina virtual fornece uma abstrao
compatvel de modo que todo osoftwareescrito para ela funcione.
Isolamento: garante que os softwares executados em cada uma das mquinas
virtuais e os da mquina real estejam totalmente isolados entre si.
Encapsulamento: usado para manipular e controlar a execuo do softwarena
mquina virtual.
Desempenho: adicionar uma camada de software a um sistema pode afetar o
desempenho dosoftwareque funciona na mquina virtual, mas os benefcios de
uso de sistemas virtuais devem compensar.
1.5 Motivao para o uso mquinas virtuais
Os sistemas computacionais tradicionais, de uma forma bsica, so projetados com trs
componentes: o hardware, o sistema operacional e as aplicaes.
Figura 1.01 -Representao dos componentes dos sistemas tradicionais
O hardwareexecuta as operaes solicitadas pelas aplicaes. O sistema operacional
recebe as solicitaes das operaes por meio das chamadas de sistemas e controla o
hardware.
Devido ao fato de os projetistas de hardware, sistema operacional e aplicaes
trabalharem independentemente, geraram ao longo dos anos vrias plataformas
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
17/114
17
operacionais diferentes e incompatveis entre si. Assim as aplicaes escritas para uma
plataforma no funcionam para outra.
A utilizao de mquinas virtuais possibilita contornar essa dificuldade, pois permite
que diferentes aplicaes de diferentes plataformas executem ao mesmo tempo em um
mesmo hardware.
Em ambiente virtualizado podemos, por exemplo, criar uma mquina virtual executando
Windows, outra executando Linux, outra executando FreeBSD, alm de outras, as quais
executaro simultaneamente no mesmo computador. o monitor de mquinas virtuais
que permite estas implementaes.
1.6 O Monitor de Mquinas Virtuais
O monitor de mquinas virtuais (Virtual MachineMonitor VMM) uma aplicaoque implementa uma camada de virtualizao, a qual permite que mltiplos sistemas
operacionais funcionem sobre um mesmo hardwaresimultaneamente.
"As finalidades primrias de um sistema operacional so habilitar aplicaes a
interagir com um hardware de computador e gerenciar recursos de hardware e
software de um sistema. Por tal motivo, o monitor de mquinas virtuais pode ser
definido como um sistema operacional para sistemas operacionais [LAUREANO
2006].
o monitor de mquinas virtuais que cria e gerencia os ambientes de mquinas virtuais,interpretando e emulando o conjunto de instrues entre as mquinas virtuais e a
mquina real (hardware).
As principais funes do monitor de mquinas virtuais so:
Definir o ambiente de mquinas virtuais.
Alterar o modo de execuo do sistema operacional convidado de privilegiado
para no privilegiado, e vice-versa.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
18/114
18
Emular as instrues e escalonar o uso da CPU para as mquinas virtuais.
Gerenciar acesso aos blocos de memria e disco destinados ao funcionamento
das mquinas virtuais.
Intermediar as chamadas de sistema e controlar acesso a outros dispositivos
como CD-ROM, drivesde disquete, dispositivos de rede, dispositivos USB.
Segundo Popek e Goldberg, um monitor de mquinas virtuais deve ter trs
caractersticas [POPEK e GOLDBERG] principais:
Eficincia: extremamente importante que um grande nmero de instrues do
processador virtual seja executada diretamente pelo processador real, sem que
haja interveno do monitor. As instrues que no puderem ser tratadas pelo
processador real precisam ser tratadas pelo monitor.
Integridade: todas as requisies aos recursos de hardwaredevem ser alocadas
explicitamente pelo monitor (memria, processamento etc).
Equivalncia: o monitor deve prover um comportamento de execuo
semelhante ao da mquina real para o qual ele oferece suporte de virtualizao,
salvo haja a necessidade de se fazer alteraes na disponibilidade de recursos da
mquina.
Ainda segundo Popek e Goldberg, importante salientar que na implementao de um
monitor de mquinas virtuais deve-se levar em conta caractersticas como:
compatibilidade, desempenho e simplicidade. A compatibilidade importante para a
execuo do legado de software. O desempenho de extrema importncia para a
execuo do sistema operacional e aplicaes na mquina virtual. A simplicidade
buscada para evitar falhas no monitor, que causaria problemas para todas as mquinas
virtuais em execuo.
1.7 Tipos de Mquinas Virtuais
Para a construo de mquinas virtuais, existem duas abordagens:
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
19/114
19
Mquinas virtuais clssicas ou de Tipo I.
Mquinas virtuais hospedadas ou de Tipo II.
1.7.1 Mquinas virtuais clssicas ou de Tipo I
Nesta abordagem o monitor de mquinas virtuais implementado entre o hardwaree os
sistemas convidados (tambm chamados de sistemasguestouguest systems).
Figura 1.02 -Esquema representativo de mquinas virtuais do tipo I
O monitor possui controle sobre o hardwaree cria um ambiente de mquinas virtuais
dando a cada mquina virtual o comportamento de uma mquina fsica, podendo
executar sobre esses ambientes, sistemas operacionais iguais ou diferentes, totalmente
isolados entre si.
Um monitor deste tipo executa com a maior prioridade sobre os sistemas convidados de
forma que ele pode interceptar e emular todas as operaes que acessam ou manipulam
os recursos de hardwareprovenientes dos sistemas convidados.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
20/114
20
1.7.2 Mquinas virtuais Hospedadas ou de Tipo II
Nesta abordagem o monitor implementado como um processo de um sistema
operacional real (sistema anfitrio).
O monitor de tipo II funciona de forma anloga ao de tipo I, com a diferena que ele
executado sobre o sistema operacional anfitrio, como um processo deste. Neste modelo
o monitor simula todas as operaes que o sistema anfitrio controlaria.
Figura 1.03 -Esquema representativo de mquinas virtuais do tipo II
1.7.3 Consideraes
Deve-se considerar que os monitores de tipo I e tipo II raramente so projetados em suaforma conceitual. Hoje em dia so inseridas otimizaes para aumentar o desempenho
dos sistemas convidados. So elas:
Em monitores de tipo I:
O sistema convidado acessa diretamente o hardware. Neste processo,
necessrio que sejam feitas alteraes no sistema operacional para que suporte aotimizao.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
21/114
21
Em monitores de tipo II:
O sistema convidado acessa diretamente o sistema anfitrio. Nessa otimizao, o
monitor permite que sejam acessadas certas API1 do sistema anfitrio pelo
sistema convidado.
O sistema convidado acessa diretamente o hardware. Essa otimizao
conseguida quando o monitor permite o acesso direto a driversde dispositivo do
sistema anfitrio.
O monitor acessa diretamente o hardware. Nessa otimizao o monitor tem seus
prprios drivers de dispositivos acessando o hardware com uma interface
prpria (de baixo nvel).
1.8 Formas de virtualizao porsoftware
A seguir apresentada uma viso geral sobre as principais tcnicas utilizadas para
conceber softwares de virtualizao. Essas tcnicas so apresentadas de forma mais
detalhada nos captulos IV, V, VI, VII e VIII, e tambm estudos sobre os principais
softwaresde virtualizao que as implementam.
1.8.1 Camada de Abstrao doHardware(Hardware Abstraction Layer- HAL)
Nesta virtualizao utilizado um monitor de mquinas virtuais que simula umconjunto de recursos de hardwarepara os sistemas convidados.
Com esta tcnica possvel executar diferentes sistemas operacionais (isto , com
kernels diferentes) em uma mesma arquitetura.
1 API (Application Programming Interface) o conjunto de rotinas que acessam ou executam
determinadas funcionalidades nos sistemas operacionais. So geralmente utilizadas por programadores no
desenvolvimento de softwarespara que no seja necessrio envolver-se em detalhes de implementaodos sistemas operacionais.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
22/114
22
Exemplos: VMware, Xen, Virtual Server e VirtualBox.
Figura 1.04 -Representao da virtualizao por camada de abstrao de hardware
1.8.2 Nvel do sistema operacional (OSLevel)
Nessa tcnica, a virtualizao obtida utilizando-se uma chamada de sistema (system
call) especfica, criando um ambiente idntico ao sistema operacional anfitrio
(geralmente uma instncia dele mesmo), cujo principal objetivo o isolamento de
processos. A mquina virtual funciona como um processo do sistema anfitrio. Essa
forma de virtualizao tem como vantagem o desempenho por j fazer parte do sistemaoperacional. A desvantagem de que o usurio no pode fazer uso de outro sistema
operacional (outro kernel) no ambiente virtual.
Figura 1.05 -Representao da virtualizao no nvel de sistema operacional
1.8.3 Emulao completa
A execuo do sistema virtual conseguida usando-se um softwareemulador, o qualsimula o hardware do sistema para a execuo do sistema convidado, traduzindo
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
23/114
23
instrues do sistema convidado para equivalentes no sistema anfitrio e vice-versa. Por
este motivo a principal desvantagem desta implementao o baixo desempenho. Alm
disso, um emulador geralmente s permite a execuo de um sistema convidado por
vez, sendo necessrio executar uma nova instncia do emulador para cada mquina
virtual criada, o que contribui significativamente para a perda de desempenho.
Os emuladores so descritos neste trabalho, por se constituir uma maneira de se obter a
execuo de um sistema virtual. Contudo, os emuladores no so classificados como
softwaresde virtualizao propriamente dito, uma vez que no preenchem os requisitos
de flexibilidade e desempenho.
Exemplos: QEMU e Bochs.
Figura 1.06 -Representao da execuo de sistemas virtuais por emulao
1.8.4 Nvel de Aplicao
Essa virtualizao consiste no uso de uma mquina virtual como um componente-chave
para execuo de certas aplicaes de uma forma protegida a outros processos em
execuo no sistema operacional. Essa mquina virtual pode ser implementada em
vrias plataformas, garantido assim a portabilidade da aplicao nas diversas
plataformas.
Exemplos: Java VM e Microsoft .Net CLR.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
24/114
24
Figura 1.07 -Representao da virtualizao no nvel de aplicao
1.8.5 Bibliotecas de interface do usurio (User level library interface)
Esta virtualizao consiste em prover um ambiente para execuo de aplicaes sobre
uma plataforma diferente para o qual ela foi construda. Baseia-se na emulao das
chamadas API entre a aplicao e o sistema operacional original, traduzindo-as para
equivalentes ao sistema operacional anfitrio.
Exemplo: Wine e Cygwin.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
25/114
25
CAPTULO II
PRINCIPAIS APLICAES DE MQUINAS VIRTUAIS
2.1 Introduo
A utilizao da virtualizao, ao longo dos anos, tem-se revelado uma alternativa
interessante em diversos paradigmas da computao, entre eles esto a centralizao e
consolidao de servidores, as otimizaes de hardwaree a segurana da informao.
Com a consolidao de servidores, ao invs das empresas utilizarem vrios servidores
com seus respectivos sistemas operacionais, utiliza-se um servidor com mquinas
virtuais abrigando vrios sistemas operacionais com suas aplicaes e servios,
reduzindo-se assim diversos custos administrativos e operacionais.
Alm disso, um sistema funcionando em uma mquina virtual fica disponvel
instantaneamente. Mquinas virtuais basicamente so arquivos armazenados no disco e
podem ser mantidos em espera e restaurados em poucos segundos, com aplicaes e
servios voltando a funcionar no mesmo ponto onde a mquina virtual foi suspensa,
tornando prtica sua administrao.
O isolamento entre as mquinas virtuais e o sistema anfitrio torna certas tarefas
arriscadas, completamente seguras. A avaliao de novos sistemas, testes com vrus e
outras ameaas geralmente significa sujeitar o computador a operaes onde nemsempre possvel sua reverso. Quando o teste concludo, o estado completo da
mquina virtual pode ser arquivado ou descartado. Se alguma ameaa danificar o
sistema, a mquina virtual pode ser descartada e restaurada ao seu estado original.
O campo de desenvolvimento desoftwares outra rea que tambm se beneficia do uso
de mquinas virtuais. Desenvolver aplicaes de baixo nvel ou componentes de
sistemas operacionais usando-se a plataforma que est em execuo no momento pode
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
26/114
26
causar danos irreversveis ao sistema. As mquinas virtuais tambm isolam o sistema
principal de bugsemsoftwares, aumentando a segurana para test-los.
A seguir sero descritas algumas das principais aplicaes em que o uso davirtualizao tem um papel muito importante, seja reduzindo custos ou at mesmo
viabilizando certos procedimentos.
2.2 Consolidao de servidores
Hoje em dia as empresas vm cada vez mais buscando a centralizao e diminuio do
nmero de servidores fsicos em suas instalaes. Esse processo conhecido como
consolidao de servidores.
Devido aos anos de recesso que estamos sofrendo recentemente, cada vez mais faz-se
necessrio reduzir custos. Este fato vem mudando o cenrio do mercado internacional
de servidores, que est caminhando novamente para centralizao de recursos.
Imaginemos uma situao onde tivssemos que disponibilizar servios em vrios
servidores diferentes sendo que cada servidor teria, conforme o servio, determinada
quantidade de memria e espao em disco. Devemos considerar tambm que grande
parte do tempo estes servidores ficaro ociosos ou seu uso cai consideravelmente em
determinados horrios. Todos os servidores devem ficar disponveis em uma rede,
porm precisam ter certo nvel de segurana.
Esse cenrio tradicionalmente exigiria um grande investimento em infra-estrutura em
computadores, espao fsico, rede, alm de gastos operacionais como energia eltrica,
manuteno dos equipamentos e da rede, e administrao dos diversos sistemas e
servios.
Nesses casos a virtualizao uma grande alternativa, pois, ao invs de possuirmos
vrios servidores fsicos, podemos possuir apenas alguns ou mesmo somente um,
reduzindo drasticamente a complexidade. Alm disso, haver tambm um melhoraproveitamento dos recursos computacionais, reduo do custo total de propriedade e do
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
27/114
27
custo operacional, a diminuio do consumo de energia eltrica reduzindo o impacto no
meio ambiente, alm do que, com o nmero de servidores fsicos reduzidos, o espao
fsico necessrio para abrig-los tambm ficar reduzido, garantindo vantagens como
economia em administrao, manuteno e refrigerao dos equipamentos.
Alm disso, a capacidade de executarsoftwaresde diferentes sistemas operacionais num
mesmo hardware reduz o desperdcio de capacidade de processamento que ocorre
freqentemente nos servidores em determinados horrios ou dias do ms. Segundo a
revista INFO [INFO249], em recente estudo, somente 25% (vinte e cinco por cento) da
capacidade instalada de TI utilizada em um ano.
A administrao facilitada outro benefcio agregado e de grande importncia no
projeto de consolidao de servidores. Nesta proposta, tecnicamente os sistemas
operacionais so abrigados em mquinas virtuais e cada mquina virtual geralmente
armazenada no disco da mquina fsica como um s arquivo, o que torna extremamente
prtico, por exemplo, operaes de backup, mudana de mquinas virtuais de um
servidor fsico para outro, adicionar cpias de sistemas e testar novos sistemas. Alguns
monitores de mquinas virtuais (como o VMware e o Xen, que sero vistos a seguir) j
possuem scripts automatizados de backup e mudana de mquina virtual de servidor.
Por fim, as empresas que consolidarem seu parque de servidores podero aproveitar os
seus equipamentos descartados para outras finalidades. Elas podem utilizar estes
equipamentos, por exemplo, para aumentar a disponibilidade e segurana de seus
sistemas, implantando solues de tolerncia falhas.
2.2.1 Implementao da consolidao de servidores
Como j foi visto, a consolidao de servidores uma excelente alternativa para
reduo de custos em ambiente de TI. Na virtualizao um servidor subdividido em
mquinas virtuais e cada mquina virtual tem sua prpria CPU virtualizada, memria, e
espao em disco e podendo compartilhar outros dispositivos anexados plataforma
fsica.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
28/114
28
Figura 2.01- Servidores no virtualizados
Figura 2.02 -Servidor virtualizado
Para implementarmos uma consolidao de servidores, primeiramente devemos
considerar alguns pontos chaves [INTEL]:
Avaliar os processos e as aplicaes crticas. Onde aumentando o nvel dos
servios, aumentariam os resultados?
Verificar quais servidores so subutilizados e que poderiam compartilhar
recursos. Muitos servidores web e de e-mails hoje funcionam na maioria do
tempo abaixo de 10% de utilizao. Esses so timos candidatos a uma
consolidao.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
29/114
29
Algumas aplicaes so ms candidatas consolidao. Nesta classificao
esto enquadradas as aplicaes de alta performanceque utilizam o servidor na
maior parte do tempo (ex: analisadores de grandes massas de dados), bem como,
os de misso crtica ou de performancecrtica, em que qualquer conteno de
recursos poderia impactar negativamente nos resultados.
Deve-se proceder a seguinte metodologia para clculo de capacidade:
Fazer um histrico dos dados das aplicaes a serem consolidadas, capturando
dados como consultas, uso de memria, entrada e sada, armazenamento ou
qualquer outra informao relevante, em um ciclo de um dia, um ms, um ano
etc.
Usando este histrico, deve-se mapear padres de uso para descobrir aplicaes
que poderiam funcionar juntas, e combinando aplicaes de picos em horrios
diferentes.
Somar todos os picos de carga de trabalho de todos os servios e aplicaes a
serem consolidadas para determinar a requisitos de capacidade computacionais
necessrias (CPU, memria, disco, operaes de entrada e sada etc.).
Acrescentar uma margem de crescimento projetada para os prximos seis meses,
dois anos ou eventual substituio de equipamentos (por exemplo: devido ao
trmino de suas vidas teis).
Caso haja polticas institucionais de utilizao de servidores (por exemplo:
nenhum servidor deveria estar funcionando normalmente acima de 80% da
capacidade), deve-se adicionar tambm esta margem de segurana.
Por fim, deve-se considerar no clculo o overhead2 gerado da tcnica de
virtualizao adotada.
Aps este estudo, deve-se realizar a consolidao das aplicaes em sua forma prtica,
consolidando aplicaes de menor escala e, na medida em que se obtm xito, proceder
para aplicaes de maior escala.
2Overhead: Custos adicionais em processamento ou armazenamento que reduz de forma significativa eindesejvel, o desempenho dos sistemas de computao.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
30/114
30
Ao final de cada trabalho, deve-se utilizar tcnicas de medio de carga de trabalho para
uma anlise do sucesso obtido.
2.3 Segurana
Ameaas segurana so uma das mais imprevisveis e desafiadoras causas de quedas
de servio em sistemas, o que pode ser extremamente custoso para a instituio. Em
recente relatrio apontando pelos laboratrios McAfee Avert, as taxas em que novas
ameaas segurana aparecem duplicaram nos ltimos anos [HINES]. O relatrio
semestral da Symantec sobre ameaas de segurana, referente ao segundo semestre de
2005, apontou aumento no nmero ameaas, enfatizou o uso de novas e sofisticadas
ferramentas para a prtica do crime ciberntico, e o substancial aumento no roubo de
informaes confidenciais [SYMANTEC].
A virtualizao uma poderosa ferramenta na preveno contra ameaas de segurana,
na medida em que evita custos com interrupo de servio e perda de dados.
2.3.1 Isolamento
Um dos maiores benefcios da virtualizao o isolamento de processos em mquinas
virtuais. Com a virtualizao, podemos isolar aplicaes de alto risco de aplicaes
potencialmente vulnerveis. O isolamento eleva a proteo contra aplicaes
maliciosas, aumentando a dificuldade das mesmas acessarem dados, ou afetar processos
que estejam executando em outras mquinas virtuais.
Alm disso, isolando falhas, prevenimos que uma aplicao em mau funcionamento
comprometa todo o sistema. Por exemplo, aplicaes que fazem conexes externas,
como servidores de e-mail, podem ser confinadas em mquinas virtuais prprias, ou
seja, mantendo-as separadas do sistema operacional anfitrio. Alm do mais, podemos
definir nesta mquina virtual, privilgios para acesso a dados e servios vitais.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
31/114
31
Ainda neste contexto, uma mquina virtual pode ser usada para dar privilgios limitados
a usurios ou aplicaes convidados em um ambiente que pode ser seguramente
deletado quando o servio for concludo. Se algumas destas mquinas virtuais
estiverem comprometidas, somente seria necessrio descartar as mquinas virtuais
corrompidas e iniciar novas outras, ou recuperar cpias de seguranas (backup).
2.3.2 Tolerncia falhas
A virtualizao permite que uma aplicao em mau funcionamento executando em sua
mquina virtual possa ser reiniciada rapidamente e de um modo seguro, sem afetar
outras aplicaes que estejam executando no mesmo sistema anfitrio. Ela permite
tambm, que administradores possam suspender, reiniciar e migrar mquinas virtuais,
ajudando a suavizar efeitos de ataques e falhas em aplicaes, ou at mesmo falhas em
hardware, quando acontecerem (figura 2.03).
Em caso de falha, as mquinas virtuais podem simplesmente ser reiniciadas de um
ponto de restaurao, uma cpia de segurana, ou outro mecanismo de recuperao que
possa trazer o sistema a um estado saudvel.
Se a camada fsica do sistema falha, as mquinas virtuais podem ser migradas e
restauradas em outras mquinas fsicas. Esta habilidade para recriar um servio sem ter
que iniciar do zero especialmente til para servios de misso crtica e de execuo
prolongada, porque prov uma rpida recuperao de desastres. Uma boa idia
armazenar pontos de restaurao de mquinas virtuais em locais remotos para
posteriormente serem recuperados em caso de falha.
Os monitores de mquinas virtuais VMware e Xen dispem de ferramentas que migram
e reiniciam as mquinas virtuais automaticamente em outros servidores em caso de
falha do servidor original.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
32/114
32
Funcionamento normal
Funcionamento com falha
Figura 2.03 -Demonstrao de recuperaes em uma falha de sistema
2.3.3HoneypotseHoneynets
Um honeypot um sistema ou aplicao que colocado em uma rede de formaproposital para que seja comprometido ou atacado. Um honeypot age como uma
ferramenta de estudos e testes de vulnerabilidades em uma rede ou aplicaes, mas no
considerado uma ferramenta de segurana. Honeynet uma rede composta de
honeypots.
Mquinas com honeypots instalados executam servios falsos, que um atacante trata
como se fosse um servio original. Entretanto servios como este tm a finalidade demonitorar os passos do atacante para que se saiba como e quando foram feitos os
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
33/114
33
ataques e o que se pretende fazer aps a invaso do sistema, gerando logs dessas
informaes para os administradores do sistema.
Os honeypotsno tm valor de produo, assim qualquer um que tente se comunicar
com o sistema geralmente uma tentativa de ataque.
A virtualizao faz o uso de honeypotse honeynets seruma alternativa extremamente
segura, simples e barata. Por exemplo, com a virtualizao podemos simular uma rede
virtual colocando firewall, software IDS, servidor web e servidor de arquivos em
mquinas virtuais isoladas executando sobre a mesma mquina fsica. Um atacante que
consiga invadir este sistema acreditar que est invadindo uma rede real, e assim, uma
vez que toda a ao do atacante foi devidamente registrada no logsdo sistema, podemos
identificar as vulnerabilidades exploradas por ele e elimin-las de nossa rede de
produo.
2.3.4 Deteco de intruso
Sistemas de deteco de intruso (Intrusion Detection System IDS) so utilizados paradetectar se algum est tentando invadir um sistema ou fazer mau uso dele. Essas
ferramentas foram concebidas com o crescimento das redes, devido dificuldade de
administradores de redes e analistas de segurana monitorar ou inspecionar
constantemente todos os sistemas e arquivos de logs.
As ferramentas IDS tm a finalidade de ficar a todo tempo monitorando um sistema e
tentando reconhecer aes intrusivas ou fora de um padro normal de uso. Casodetectem alguma anomalia, elas automaticamente disparam um alerta ao administrador
do sistema ou executam aes defensivas.
Existem conceitualmente dois tipos de implementao de ferramentas IDS:
Host Based IDS (HIDS): so instalados em um servidor (host) para prevenir
ataques ao prprio servidor. Essa implementao utilizada quando se desejaelevar a segurana das informaes contidas neste servidor.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
34/114
34
Network Based IDS(NIDS): essa implementao baseia-se na captura e anlise
dos pacotes na rede, e so instalados em mquinas em que se concentra o trfego
de rede.
O uso de mquinas virtuais com ferramentas IDS tem mais sentido quando as
implementamos em um sistema anfitrio devido a um problema caracterstico dos
sistemas HIDS: se as ferramentas IDS estiverem instaladas na prpria mquina que est
sendo monitorada, o sistema fica passvel de desativao por parte do atacante, o que
causa reduo de sua confiabilidade.
A idia deste modelo consiste em instalar as ferramentas IDS num sistema operacional
anfitrio e confinar o sistema a ser monitorado em uma mquina virtual executando
sobre esse sistema anfitrio. Dessa forma o sistema principal ficaria isolado das
ferramentas IDS e este por sua vez estaria fora do alcance do atacante, monitorando
constantemente os acessos mquina virtual.
Figura 2.04 -Representao de um modelo freqentemente utilizado e
um modelo isolado em mquinas virtuais
A figura 2.04 ilustra, no primeiro caso, uma implementao normal. Nessa
implementao o atacante que chegar ao sistema pode ter acesso s ferramentas IDS e
conseqentemente desativ-las. No segundo as ferramentas IDS esto isoladas e
monitorando o sistema convidado, um atacante que chegar ao sistema convidado no
conseguir chegar at as ferramentas IDS.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
35/114
35
2.4 Ensino
A fora da virtualizao tambm pode ter excelente emprego na rea de ensino. O uso
de mquinas virtuais torna o processo de ensino bastante prtico e a custo reduzido. Por
exemplo, em uma instituio que ministra diversos tipos de cursos e que utiliza a
tecnologia dos computadores, comum a necessidade de possuir mquinas dedicadas a
cada curso, o que gera grandes custos de compra de equipamentos e manuteno.
Tambm, nestes casos, comum acontecerem diversos problemas durante o curso, tais
como: necessidade de reinstalao do sistema operacional e aplicativos, dificuldade de
se restaurar configuraes padro, alterao e esquecimento de senhas (como a de
administrador), arquivos apagados de forma acidental, etc.
Problemas como estes podem ser facilmente resolvidos com o uso dos conceitos de
virtualizao. Para essa implementao podem ser consideradas duas abordagens:
Na primeira abordagem pode ser utilizado um computador de grande porte como
servidor central, onde ficaro armazenadas as mquinas virtuais que sero utilizadas
pelos alunos dos diversos cursos. No lado do aluno sero utilizadas mquinas clientes de
pequeno porte, onde acessaro, atravs de uma conexo de rede, as mquinas virtuais
armazenadas no servidor. Periodicamente os arquivos contendo as mquinas virtuais
originais poderiam ser recuperados no servidor, o que rapidamente tornaria o sistema
pronto para um novo uso.
Na segunda abordagem pode ser utilizado um nmero reduzido de computadores
contendo vrias mquinas virtuais com o contedo dos cursos. Nesta abordagem cadaaluno utilizaria o computador podendo fazer suas modificaes conforme necessrio,
todavia restrito a seu espao virtual. Ao final do perodo, podem ser recuperados os
arquivos de mquinas virtuais originais alojados em uma rea de armazenamento
remoto, para que rapidamente os sistemas retomem seu estado normal.
Em ambas as abordagens os alunos devem armazenar seus arquivos de curso e
configuraes pessoais em sua mdia de preferncia ou em um espao em disco remoto,uma vez que as mquinas virtuais sempre sero restauradas em seu estado original.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
36/114
36
Sabemos que comum em processos de aprendizagem acontecer danos ao sistema
operacional ou ferramentas instaladas, seja para ensino de computao, seja para ensino
em outras reas. Estas abordagens tm como principal vantagem o fato de se poder criar
mquinas virtuais instalando o sistema operacional e ferramentas que sejam necessrias
para cada perfil de curso/aluno, em um estado em que todo o sistema esteja testado e
livre de problemas, e, posteriormente permitindo que se recupere essas configuraes,
sem maiores transtornos aos alunos e professores.
2.5 Teste e Migrao de aplicaes
Sem dvida um dos grandes desafios para profissionais de TI o teste e a migrao de
aplicaes. Com o passar do tempo necessrio que as aplicaes utilizadas sejam
atualizadas para que possamos desfrutar de novos recursos e tecnologias existentes.
Mas por outro lado essa no uma tarefa to simples, uma vez que ao substituirmos
uma aplicao por outra, ou atualizarmos para uma verso mais nova, corremos o risco
de ficarmos impossibilitados de utilizar estas aplicaes, ocasionando prejuzos para a
instituio.
Utilizando o recurso da virtualizao podemos criar mquinas virtuais para fazer os
devidos testes de sistemas operacionais, migraes de aplicaes, desenvolvimento e
teste desoftware novo etc, tudo isso de forma isolada do sistema de produo. Assim se
algo der errado podemos restaurar uma mquina virtual original e retomar o processo do
incio, e com isso conhecer as dificuldades do processo de forma antecipada.
2.6 Consolidao de aplicaes legadas
Hoje em dia grande parte das instituies ainda utiliza aplicaes legadas em seus
sistemas de misso crtica, ou seja, aplicaes que no podem ser migradas ou
modificadas devido a fatores como: falta de oramento, fabricante que se retirou do
mercado, aplicaes que foram descontinuadas pelo fabricante, etc.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
37/114
37
Podemos utilizar a virtualizao para mover estas aplicaes legadas e sem suporte por
parte do fabricante de um modo em que possuam um melhor aproveitamento de
recursos de hardwaree gerenciamento.
A virtualizao simplifica a migrao de aplicaes legadas em novas plataformas. Em
casos em que a nova plataforma no suporta a execuo das aplicaes legadas, a
aplicao pode ser hospedada com seu sistema operacional (para qual foi desenvolvido
originalmente) em uma mquina virtual executando sobre a nova plataforma, sem
nenhuma necessidade de alterao nosoftware.
Normalmente um hardware novo fica subutilizado quando dedicado a executar
aplicaes legadas. A consolidao das aplicaes legadas atravs da virtualizao
tambm oferece um melhor aproveitamento de hardware novo, pois permite que um
nico hardwareexecute vrias instncias de aplicaes legadas simultaneamente.
Por fim, movendo aplicaes legadas para sistemas virtuais eliminamos os riscos de
problemas de compatibilidade e de execuo simultnea, porque elas estaro confinadas
s suas respectivas mquinas virtuais, completamente isoladas das novas aplicaes e
dos novos sistemas operacionais.
2.7 Servio de Hospedagem (Hosting)
A hospedagem (hosting) um servio que possibilita que pessoas e empresas possam
armazenar informaes, imagens, vdeos, ou qualquer contedo acessvel pela web. Esse
servio prestado por empresas que possuem um centro de dados, e normalmentetambm podem oferecer conectividade Internet.
Os provedores deste servio geralmente usam uma tcnica conhecida como virtual
hostingpara abrigar centenas de pginas com seus respectivos domnios em um servidor
web, uma vez que seria proibitivo em termos de hardware, manter um servidor web
separado para cada domnio. Atravs da tcnica, um nico servidor webpode atender
solicitaes a diversos domnios simultaneamente (figura 2.05).
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
38/114
38
Figura 2.05 -Um servidor com vrios domnios virtuais
Por outro lado, um servidor dedicado tem como principal vantagem o fato de no
interferir em outros sites hospedados no mesmo servidor fsico e liberar o acesso do
sistema operacional (acesso de root) para que o administrador do sitepossa instalar e
configurar quaisquer aplicativos com total liberdade e flexibilidade.
As mquinas virtuais possibilitam que os servios de hospedagem possam usufruir dos
benefcios citados no pargrafo anterior sem maiores custos. Essa tcnica chamada de
servidor virtual privativo (virtual private server - VPS), permite que os centros de dados
operem com diversos servidores virtuais dedicados para cada domnio consolidados em
um nmero reduzido de servidores fsicos (figura 2.06).
Como um servidor virtual privativo executa seu prprio sistema operacional, os
provedores podero dar a seus clientes acesso com segurana s mquinas (virtuais),
ampliando sua gama de servios oferecidos.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
39/114
39
Figura 2.06 -Virtualizao de servidores webdedicados para cada domnio
2.8 Suporte Tcnico
A virtualizao tambm facilita o trabalho de empresas que oferecem servios de
suporte tcnico. Com ela as limitaes tcnicas que inviabilizam o atendimento de
suporte para diferentes sistemas operacionais e aplicaes e suas diferentes verses,
praticamente so eliminados, uma vez que no h necessidade de se manter
equipamentos dedicados a cada verso de sistema operacional ou aplicao que se
deseja dar suporte. Alm disso, ao invs de uma empresa manter funcionrios
especficos para atender solicitaes de suporte para cada tipo de sistema operacional e
aplicaes, ela pode habilitar seus funcionrios a atenderem chamadas de suporte aos
diversos tipos de sistemas diferentes, o que acarreta em economia em mo-de-obra e
qualidade no atendimento.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
40/114
40
CAPTULO III
TCNICAS PARA CONSTRUO DE SOFTWAREVIRTUALIZADOR
3.1 Modos de CPU, trape Chamadas de Sistema
Basicamente existem dois modos de privilgios na CPU para execuo de cdigo
binrio: o modo de usurio (user mode) e modo supervisor (kernel mode). O sistema
operacional executa em modo supervisor, gerenciando os processos e, portanto tem o
controle total da mquina. Os processos dos sistemas operacionais executam em modo
usurio e por isso no detm o controle total da mquina.
As instrues que mudam o completo estado do sistema e so chamadas de instrues
privilegiadas, no podem executar no modo usurio. Quando uma aplicao em modo
usurio tenta executar instrues privilegiadas, gerada uma exceo que resulta em
uma interrupo da CPU, esta exceo comumente chamada de trap. Emseguida,aCPU automaticamente transfere o fluxo de controle para o kernel do sistemaoperacional, o qual decide o que fazer.
Geralmente as aplicaes (que executam em modo de usurio) evitam executar
instrues privilegiadas. Ao invs disso, elas chamam o kernel atravs de uma
funcionalidade conhecida como chamadas de sistema (system calls) [STEIL].
3.2 O Modo Hipervisor
Algumas CPU introduzem um terceiro modo de CPU, chamado modo hipervisor
(hypervisor mode). O modo hipervisor tem total controle da CPU, e onde o monitor de
mquinas virtuais gerencia os sistemas operacionais abrigados em suas mquinas
virtuais. Enquanto a interface entre modo usurio e modo supervisor ainda a mesma,
agora h uma nova interface entre o modo supervisor e o hardware, o modo
hipervisor. Desse modo, todas as instrues privilegiadas feitas pelo kernel so
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
41/114
41
capturadas pelo monitor de mquinas virtuais que pode emular o comportamento
desejado. Este mtodo chamado captura e emulao (trap-and-emulate) [STEIL].
Um exemplo de uma CPU que implementa um modo hipervisor o IBM PowerPC 970,
tambm conhecido como G5. As novas arquiteturas Intel VT da Intel e AMD-V da
AMD tambm implementam uma espcie de modo hipervisor e so descritas mais a
seguir.
3.3 O problema da Arquitetura x86
Os processadores de arquitetura x86 (ou IA32) possuem quatro nveis de privilgio para
execuo de cdigos que so numerados de 0 a 3. Cdigo rodando no nvel 0 (modo
supervisor) pode executar qualquer instruo na CPU, enquanto no nvel 3 (modo
usurio) existem instrues que no podem ser executadas. Esses nveis de privilgios
so comumente chamados de "anis" (rings), devido forma como eram ilustrados no
manual de programao do chip 80386 (figura 3.01).
Figura 3.01 -Estrutura da Arquitetura x86
Nessa arquitetura os sistemas operacionais somente usam os nveis 0 e 3, sendo o nvel
0 para o kernele o nvel 3 para o modo usurio.
Como nessa arquitetura no foi implementado um modo hipervisor, o monitor demquinas virtuais obrigado a executar em modo supervisor, e ao criar uma mquina
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
42/114
42
virtual ele precisa forar o kerneldo sistema operacional convidado a executar em modo
usurio no ring3 (em algumas implementaes ele executa em um nvel no utilizado
como o ring 1).
Com isso, para manter cada sistema convidado isolado necessrio utilizar uma tcnica
complexa chamada de desprivilegiamento, a qual fora a execuo de um sistema
convidado em um nvel menos privilegiado.
A seguir esto descritas as principais tcnicas utilizadas para superar esta dificuldade da
arquitetura x86. importante salientar que tais tcnicas tambm podem ser
implementadas em outras arquiteturas.
3.4 Virtualizao Total (FullVirtualization)
A virtualizao total uma tcnica que prov uma completa simulao da subcamada de
hardware para os sistemas convidados. O resultado um ambiente em que todos os
sistemas operacionais que so capazes de executar diretamente em um hardware
tambm podem executar em uma mquina virtual.
A principal vantagem da virtualizao total que no h necessidade de modificaes
nos sistemas operacionais convidados para que suportem a virtualizao, dado que uma
estrutura completa de hardware virtualizada o que faz com que o sistema convidado
pense estar executando diretamente no hardware.
Figura 3.02 -Estrutura representativa da virtualizao total
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
43/114
43
O desafio para a virtualizao total manter cada sistema convidado isolado. Para
conseguir isto, so aplicadas algumas tcnicas de captura e emulao de instrues da
CPU, o que resulta em um desempenho reduzido neste tipo de tcnica.
3.4.1 Virtualizao de CPU na virtualizao total
Para que uma arquitetura seja estritamente virtualizvel, necessrio que todas as
instrues privilegiadas sejam capturadas para o modo supervisor quando originadas em
modo usurio. Entretanto em arquiteturas como a x86, o kerneldo sistema convidado
no pode estar executando em modo usurio, porque ele pode utilizar instrues
assembler que no podem ser capturadas e emuladas. O kernel comporta-se
diferentemente quando em modo usurio. Nesta arquitetura existem diversas instrues
que tem comportamentos diferentes no modo usurio e no modo supervisor, e por isso
no causam uma exceo na CPU (trap). Um exemplo disso que uma aplicao em
modo usurio poderia perguntar se ela est executando em modo supervisor ou em
modo usurio, e obteria a mesma resposta: modo usurio, sem qualquer chance do
monitor de mquinas virtuais interceptar essa instruo e retornar uma resposta falsa[STEIL].
Com isso dizemos que a arquitetura x86 no estritamente virtualizvel, pois no
possui nativamente um modo hipervisor e nem todas as instrues sensveis causam
trapsde CPU.
Para contornar esse problema, em algumas solues o cdigo x86 analisado instruopor instruo e emulado, contudo este processo causa uma perda de desempenho
considervel. Esta tcnica tambm conhecida como emulao do cdigo x86 e
utilizada pelosoftwarede virtualizao Bochs.
Em outras solues utilizada uma tcnica chamada traduo binria (ou reescrita
binria) que bem mais eficiente em termos de desempenho. Essa tcnica atualmente
a mais utilizada e so implementados em softwarescomo VMware, Microsoft VirtualServer e outros.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
44/114
44
A traduo binria consiste em recompilar todo e somente o cdigo sensvel, isto ,
traduzir todo o cdigo assemblerque problemtico (que necessita de um trapde CPU,
mas como foi explicado anteriormente, no causa um trap) substituindo com traps
explcitos no modo supervisor. Todo cdigo do modo supervisor gerado nos sistemas
convidados deve ser analisado e emulado antes de ser executado.
O cdigo dividido em blocos e estes so ento verificados. Se eles no contm
instrues problemticas, podem ser executados, do contrrio estas instrues so
substitudas por outras, adequadas pelo monitor, o que far com que o sistema
convidado acredite estar executando em um modo privilegiado quando na verdade est
em um modo desprivilegiado.
Nesse contexto, todo cdigo que j foi checado uma vez no precisa ser checado
novamente, e uma definio de blocos que se refere a outro, pode ser colocado junto a
um bloco maior (trace cache), podendo ser executado sem futuras checagens, o que
agiliza bastante o processo.
3.4.2 Virtualizao de memria/disco na virtualizao total
Uma vez que a mquina virtual deve se comportar como uma mquina real, a memria
deve se comportar da mesma forma para todo cdigo executado dentro da mquina
virtual. Entretanto, o acesso pgina de memria pelo endereamento normal de dentro
de uma mquina virtual no possvel, pois todo sistema operacional acessa a pgina
fsica comeando com o endereo 0, o que causaria um grande conflito j que elesmapeariam suas pginas virtuais para a mesma pgina fsica.
Ento cada acesso tabela de pgina na mquina virtual causa um trap,cujo controle
transferido ao monitor de mquinas virtuais. Este por sua vez, reserva um mapeamento
que possua o mesmo efeito, porm usa uma pgina com endereamentos diferentes. O
sistema convidado acredita estar usando o incio da memria (endereo 0).
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
45/114
45
Figura 3.03 -Alocao de pgina de memria para a mquina virtual
Conforme a figura 3.03, a mquina fsica possui um endereamento de memria
iniciando em 0000 e vai at FFFF, porm o monitor de mquinas virtuais reserva o
espao para a pgina de memria da mquina virtual, que comea no endereo fsico de
00FF a 0FFF. Contudo o sistema convidado acredita que esta pgina est comeando
no endereo 0000 e finalizando em 0F00. o monitor de mquinas virtuais que seencarrega de traduzir os endereos corretamente.
Praticamente o mesmo processo ocorre na virtualizao do disco. O espao em disco
para a mquina virtual alocado previamente e o mapeamento feito de forma similar
ao mapeamento de memria. O sistema convidado acredita ter acesso exclusivo ao
disco.
3.4.3 Virtualizao de E/S na virtualizao total
Na virtualizao total, todo o cdigo que esteja dentro de uma mquina virtual executa
em modo usurio e todo acesso de Entrada e Sada (E/S) vai gerar um trap,
direcionando o controle para o monitor de mquinas virtuais. A partir da, o monitor
descobre a finalidade do acesso e emula uma cpia do hardware retornando estacpia ao sistema convidado. Por exemplo, quando um sistema convidado pergunta
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
46/114
46
pelo estado do mouse, isto gera um trapo qual a CPU direciona para o monitor, este por
sua vez informar o estado do mouse atual para o sistema convidado baseado em
informaes internas sobre o mouse emulado. Quando um dispositivo virtual gera
interrupes, o monitor injeta uma interrupo na mquina virtual emulando o que
aconteceria se caso a interrupo fosse feita diretamente mquina fsica.
Problematicamente, este mtodo muito lento para muito dispositivos (especialmente
vdeo) porque o driver do sistema convidado e o monitor tm que se comunicar na
linguagem de protocolo de hardware, que muito eficiente para mquina real, todavia
no eficiente entre dois softwares. Felizmente os fabricantes de solues de
virtualizao total, desenvolveram drivers especiais (que utilizam recursos de E/S que
no esto sendo utilizados pela mquina real) para que os sistemas convidados
diretamente se comuniquem com a mquina real, tornando-se um protocolo muito mais
eficiente [STEIL].
3.5 Paravirtualizao (Paravirtualization)
Paravirtualizao uma tcnica que apresenta uma interface desoftwarepara mquinas
virtuais que similar (mas no idntica) subcamada de hardware. A tcnica permite
que o sistema convidado acesse diretamente recursos do hardware, porm com
restries, que so administradas pelo monitor de mquinas virtuais. Esta capacidade
minimiza o overheade otimiza o desempenho do sistema para suportar a virtualizao.
A principal limitao da paravirtualizao a necessidade de que o sistema operacional
convidado seja previamente adaptado (modificado) para executar no topo de um
monitor de mquinas virtuais. Entretanto, a paravirtualizao elimina a necessidade da
dependncia dos mecanismos de trap da CPU,no havendo necessidades de capturar e
emular a maioria das instrues.
A figura 3.04 representa a paravirtualizao, em que o sistema convidado pode acessar
diretamente o hardware, sendo que este processo totalmente gerenciado pelo monitor
de mquinas virtuais. Esta tcnica utilizada pelo monitor Xen, por exemplo.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
47/114
47
Figura 3.04 -Estrutura representativa da paravirtualizao
3.5.1 Paravirtualizao e CPU
A paravirtualizao simplifica a interface exportada para o hardware, de um modo que
elimina certas necessidades implementadas na virtualizao total. Um exemplo so as
instrues sensveis (que executam de modos diferentes dependendo do modo que so
executado, em modo supervisor ou modo usurio). Na paravirtualizao elas so
executadas diretamente na CPU, todavia h um pequeno nmero de instrues que
devem ser substitudas (capturadas e emuladas).
3.5.2 Paravirtualizao e memria/disco
Na paravirtualizao o sistema operacional convidado (que foi modificado para suportar
a virtualizao) recebe do monitor de mquinas virtuais, o espao que ser utilizado
para sua pgina de memria, e este, acessa diretamente a memria fsica sem que seja
necessria qualquer intermediao do monitor.
O acesso ao disco tambm feito de forma direta pelo sistema convidado, porm uma
vez que h vrios sistemas convidados executando de forma simultnea e o disco
compartilhado, o monitor de mquinas virtuais gerencia a fila de acessos
[MAGENHEIMER e CHRISTIAN].
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
48/114
48
3.6 Emulao com Recompilao Dinmica
Outra tcnica bastante utilizada a emulao com recompilao dinmica (tambm
conhecida como dynamic recompilation ou dynarec). Esta tcnica consiste em
recompilar partes do cdigo de um programa durante sua execuo. Com isso, o sistema
pode adequar o cdigo compilado para refletir o ambiente de execuo original do
programa, e talvez produzir um cdigo mais eficiente, explorando informaes que no
esto disponveis para um compilador esttico tradicional. Em outros casos, um sistema
pode empregar recompilao dinmica como parte de uma estratgia de otimizao
adaptvel para executar uma representao porttil do programa como os bytecodesdo
Java ou do .NET CLR [LAUREANO 2004].
Exemplificando de um modo simples a recompilao dinmica, podemos supor que um
determinado programa est sendo executado num emulador e precisa copiar uma string
nula. O programa est compilado originalmente para um processador simples. Esse
processador pode copiar apenas um byte por vez, e deve faz-lo lendo a string de
origem em um registrador, e escrevendo a string de destino a partir deste registrador.
Esse programa se pareceria como:
beginning:
mov A,[ponteiro para primeira string]
; Coloca o endereo do primeiro caracter da string de
; origem no registrador A
mov B,[ponteiro para segunda string]
; Coloca o endereo do primeiro caracter da string de
; destino no registrador B
loop:
mov C,[A] ; Copia o byte do registrador A para o C
mov [B],C ; Copia o byte no registrador C para o B
cmp C,#0 ; Compara o dado copiado com 0 (marcador de fim de string)
inc A ; Incrementa o registrador A para apontar para
; o prximo byte
inc B ; Incrementa registrador B para apontar para
; o prximo byte
jnz loop ; Se ele no for 0 ento volta e copia o prximo byte
end:
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
49/114
49
Imaginemos que um emulador estivesse executando num processador que similar a
esse, todavia possusse um desempenho melhor em cpias de strings, e que este
emulador soubesse desta caracterstica. Ele poderia identificar as instrues deseqncia de cpia da string e decidir reescrev-las de um modo mais eficiente antes da
execuo.
Esse novo processador possui uma instruo chamada movs especificamente
designado para copiar strings de uma forma mais eficiente. Esta hipottica instruo
copiaria 16 bytes por vez sem ter que carreg-lo no registrador C, mas pararia quando
copiasse um byte 0 (que marca o fim da string). Ele tambm sabe que o endereo da
string estar no registrador A e B, ento ele incrementa A e B em 16 bytes, cada vez que
executa.
Ento, o novo cdigo compilado se pareceria com o seguinte:
beginning:
mov A,[ponteiro para primeira string]
; Coloca o endereo do primeiro caracter da string de
; origem no registrador Amov B,[ponteiro para segunda string]
; Coloca o endereo do primeiro caracter da string de
; destino no registrador B
loop:
movs [B],[A] ; Copia 16 bytes do registrador A para o
; registrador B, e incrementa A e B em 16
jnz loop ; Se no for zero, no alcanou
; o final da string, ento volte e continue copiando
end:
Com isso, h um imediato aumento de desempenho simplesmente porque o processador
no precisa carregar muitas instrues para fazer a mesma tarefa.
O QEMU um exemplo de software que utiliza a tcnica de emulao com
recompilao dinmica, e que pode ser usado para prover a virtualizao.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
50/114
50
Por fim, h uma diferena bsica entre traduo dinmica e a tcnica de recompilao
dinmica (dynarec). A traduo dinmica traduz um bloco de instrues do sistema
convidado para instrues do sistema anfitrio anteriormente a execuo do bloco e faz
um cache dos blocos traduzidos para aumentar o desempenho. A tcnica da
recompilao dinmica descobre qual algoritmo o sistema convidado implementa e
substitui com uma verso otimizada no sistema anfitrio [KASICK et al].
3.7 As novas tecnologias de Virtualizao da Intel e AMD
Tanto a Intel como a AMD vem investindo em tecnologia para permitir a virtualizao
em processadores de arquitetura x86. Elas introduziram arquiteturas similares,
implementando um assistente em hardware (conhecido como hardware assist) para
suportar virtualizao de uma forma nativa, porm as tecnologias das duas fabricantes
so incompatveis entre si.
Com esta nova camada na CPU, o monitor de mquinas virtuais tem seu prprio nvel
privilegiado onde ele executa, e tambm no mais necessrio que seja feito o
desprivilegiamento dos sistemas convidados, uma vez que os sistemas operacionais
executam diretamente sobre o hardware.
Figura 3.05 -Arquitetura x86 com o hardwareassist da Intel e AMD
A Intel nomeou sua verso de seu hardware assist de VT (Virtualization
Tecnology) que anteriormente era chamado de Vanderpool, enquanto a AMD
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
51/114
51
nomeou de SVM (Secure Virtual Machine) e mais recentemente mudou para
AMD-V (AMD Virtualization), o codinome inicial era Pacifica.
A idia tornar suas CPU estritamente virtualizveis, adicionando um modo hipervisor.
Algumas instrues sensveis ainda no geram trapsno modo usurio, todavia isto no
uma grande preocupao quando o sistema convidado pode executar em modo
supervisor.
Existem algumas diferenas entre as implementaes da Intel e AMD, contudo os
processadores dotados desta tecnologia basicamente possuem um conjunto de instrues
extra chamado de Extenses de Mquina Virtual (Virtual Machine Extensions - VMX).
Por exemplo, no caso do Intel-VT, o VMX traz 10 novas instrues especficas para
utilizao de mquinas virtuais com o processador, so elas: VMPTRLD, VMPTRST,
VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUCH, VMRESUME,
VMXOFF e VMXON.
Para entrar no modo de virtualizao, o softwaredeve executar a instruo VMXON e
ento chamar o monitor de mquinas virtuais. Feito isso, o monitor pode entrar em cada
mquina virtual usando a instruo VMLAUNCH, e sair delas usando a instruo
VMRESUME. Se o monitor quiser parar todas as mquinas virtuais e sair do modo de
virtualizao, ela executa a instruo VMXOFF.
O SVM disponibiliza a instruo VMRUN para executar uma mquina virtual,
VMSAVE e VMLOAD so utilizadas para complementar as capacidades de guardar e
restaurar estado da instruo VMRUN e do acesso ao estado do processador. A
instruo VMCALL permite que o sistema operacional se comunique diretamente com
o monitor.
Em termos de gerenciamento de memria, existe uma diferena relevante entre a
tecnologia da AMD e Intel. Nos processadores da AMD o gerenciamento de memria
feito por hardwareenquanto que nos processadores da Intel ele feito porsoftware. Por
esta razo, o desempenho da arquitetura SVM pode ser mais elevado que o da
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
52/114
52
arquitetura Intel-VT, embora esta eficincia ainda no tenha sido efetivamente
comprovada [DUMIENSE e JESUS].
Outro avano dessas tecnologias de virtualizao a incluso de virtualizao de E/S.
Atualmente as solues de virtualizao por software no podem exclusivamente
determinar que uma mquina virtual acesse diretamente um hardwarefsico (como uma
placa de rede, por exemplo), tendo que simular estas operaes com a utilizao
tcnicas complexas [STEIL].
Desse modo, podemos concluir que a principal vantagem dessas tecnologias da Intel e
AMD uma melhora significativa de desempenho na virtualizao de CPU, pois uma
vez que h uma camada de virtualizao nativa no hardware, no existe a necessidade
de traduo binria.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
53/114
53
CAPTULO IV
VIRTUALIZAO POR CAMADA DE ABSTRAO DOHARDWARE
4.1 Introduo
Neste conceito de virtualizao existe uma camada de software entre o sistema
operacional e o hardware, provendo a intercomunicao entre as partes. Essesoftware
o monitor de mquinas virtuais e geralmente pode suportar vrios sistemas operacionais
executando ao mesmo tempo com bom desempenho, caracterstica que deve ser de
fundamental importncia para construo desoftwares deste tipo.
A arquitetura dos monitores de mquinas virtuais que virtualizam por abstrao do
hardwarepode ser de dois tipos principais, cujas diferenas j foram citadas no captulo
III, so elas: a virtualizao total e a paravirtualizao.
Esse tipo de virtualizao est sendo muito difundido nos ltimos anos e atualmente a
forma mais utilizada para virtualizar sistemas operacionais. Nesse captulo so
apresentados os principaissoftwares classificados nesse tipo de virtualizao.
4.2 VMware
Osoftwarede virtualizao mais difundido atualmente o VMware. Lanado em 1999,
foi a primeira soluo de virtualizao para computadores baseados na arquitetura x86.
O VMware um software proprietrio que prov uma camada de virtualizao que
suporta vrios sistemas operacionais sobre um hardware. A empresa desenvolvedora do
VMware, a VMware Inc. uma subsidiria da EMC Corporation e localiza-se em Palo
Alto, Califrnia, Estados Unidos.
As principais verses do VMware so: VMware ESX Server, VMware Server, VMwareWorkstation e VMware Player.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
54/114
54
4.2.1 VMware ESX Server
O VMware ESX Server a verso comercial do produto VMware voltado para o uso
em servidores de grande porte. Ele uma mquina virtual do tipo I e possui um sistema
operacional prprio e otimizado para gerenciar mquinas virtuais.
No VMware ESX Server, cada mquina virtual representa um sistema completo, com
processador, memria, disco e BIOS, provendo um completo ambiente de execuo, o
que faz com que os sistemas operacionais convidados no precisem ser modificados.
Basicamente o sistema virtualiza quatro recursos chaves do servidor: CPU, memria,
disco e rede [VMWARE 2006-A].
4.2.1.1 Virtualizao de CPU
Como visto anteriormente, os processadores baseados na arquitetura x86 no possuemsuporte nativo a virtualizao, e por isso no conseguem capturar certas instrues de
modo privilegiado originadas de um sistema operacional executando em uma mquina
virtual. Desse modo, no podem contar totalmente com a tcnica de captura e emulao
dos sistemas tradicionais.
Para suprir esta dificuldade, o VMware usa adicionalmente a tcnica de traduo
binria. Com isso, o VMware examina todas as instrues antes de serem executadas,
substituindo as instrues que no so causam trapspor outras. Devido a isso, a tcnica
causa uma perda de desempenho, contudo h instrues que executam diretamente entre
a mquina virtual e a CPU.
importante salientar que o VMware d a cada sistema operacional executando em sua
mquina virtual, a sua prpria CPU virtual, ou seja, os sistemas operacionais
acreditam possurem uma CPU dedicada. Cada CPU virtual possui seus prprios
registradores e estruturas de controle.
-
5/28/2018 Virtualizacao de Sistemas Operacionais.tcc
55/114
55
4.2.1.2 Virtualizao de memria
Como o ESX virtualiza a memria das mquinas virtuais por meio da traduo de
endereos, o monitor de mquinas virtuais faz um mapeamento da pgina de memria
do sistema operacional convidado para a pgina de memria fsica na subcamada do
hardware. Cada mquina virtual tem sua prpria pgina de memria em que o sistema
operacional convidado v iniciando do endereo 0.
O monitor intercepta instrues da mquina virtual que manipula estruturas de
gerenciamento de memria do sistema operacional convidado, de modo que a unidade
de gerenciamento da memria (Memory Management UnitMMU) do processador no
seja atualizada diretamente pelo sistema convidado. O ESX mapeia a pgina da
mquina virtual em uma tabela de pgina sombra (Shadow Page Table - SPT) que
atualizado com o da mquina fsica.
Quando o sistema operacional convidado estabelece um mapeamento novo em sua
tabela de pgina, o monitor detecta a modificao e atualiza a respectiva entrada natabela de pgina sombra, que aponta para a localizao real da pgina de memria no
hardware. Quando a mquina virtual est executando, o hardware usa diretamente a
tabela de pgina sombra para a traduo do endereo, o que permite que os acessos de
memria normais na mquina virtual executem sem adicionar overheadde tradues de
endereos, uma vez que as tabelas de pgina da sombra j esto definidas.
4.2.1.3 Virtualizao de disco
O ESX Server implementa seu prprio sistema de arquivos chamado de VMFS. O
VMFS um sistema de arquivos dis