Professional Documents
Culture Documents
VIRTUALIZAÇÃO
SERRA
2008
WANCLEBER VIANA VIEIRA
VIRTUALIZAÇÃO
SERRA
2008
2
Sumário
3
Resumo
4
1. Introdução
Ao contrário de que muitos pensam, virtualização não é um tema novo. Os primeiros casos
de sua utilização datam de aproximadamente 4 décadas. As primeiras utilizações incluem o
IBM 7044 com o Sistema de Tempo Compartilhado desenvolvido pelo MIT (Massachusetts
Institute of Technology) no IBM 704, utilizando um Monitor de Máquinas Virtuais (Virtual
Machine Monitor - VMM), também conhecido como hypervisor, termo criado na década de
70.
Devido à importância deste assunto, nos últimos anos houve investimentos maciços por
parte de fabricantes de software e processadores, recursos foram implantados diretamente
nos processadores para proverem mecanismos e soluções de melhora de desempenho e
suporte a virtualização.
2. Virtualização
De acordo Amith Singh, autor do site Kernelthread.com, em uma livre tradução, define
virtualização como uma biblioteca ou metodologia de dividir os recursos de um computador
através de múltiplos ambientes de execuções, por aplicação de um ou mais conceitos ou
tecnologias como particionamento de hardware e software, compartilhamento de tempo,
simulação parcial ou completa da máquina, emulação, qualidade de serviço e muitas outras
coisas.
Este termo pode significar muitas coisas para muitas pessoas, mas atualmente seu grande
foco é a virtualização de servidores visando uma utilização mais eficiente em busca de um
maior retorno no investimento feito no hardware, cujo termo referido a essas ações é:
5
Consolidação de Servidores. Através de uma melhor distribuição dos recursos
computacionais é possível atingir um nível maior de trabalho efetuado pelo mesmo
hardware.
O elemento principal para a virtualização é o sistema operacional, que basicamente pode ser
definido como uma camada de software entre o hardware e as aplicações de usuários, que
tem como objetivo funcionar como interface entre usuário e computador, tornando sua
utilização mais simples, rápida e segura.
6
Figura 2: Troca de Contexto
Fonte: Livro Arquitetura de Sistemas Operacionais
A implementação de máquinas virtuais podem ser feitas de dois modos: Máquina Virtual de
Processo ou Monitor de Máquina Virtual, também conhecido como hypervisor.
Máquina Virtual de Processo cria um ambiente de execução para outras aplicações, e pode
gerar um conjunto de instruções que são interpretadas para criação de instruções não-
privilegiadas, chamadas de sistemas e APIs de bibliotecas que correspondem à ação abstrata
desejada.
Uma das diferenças entre os modos de implementação está na forma em que são
executados. O hypervisor estará sempre presente enquanto o computador estiver ligado,
enquanto, a Máquina Virtual de Processo só existirá enquanto o processo correspondente a
ela estiver em execução.
7
2.2.1. Máquina Virtual de Processo
n
VM
VM
VM
Hardware
Este modelo provê uma cópia (virtual) do hardware do host, de forma que o sistema
operacional convidado trabalhe como se estivesse executando diretamente sobre o
hardware do host, e utiliza o VMM como mediador entre o sistema operacional convidado e
8
o hardware do host, porque determinadas instruções devem ser tratadas e protegidas, pois
o hardware do host não é de propriedade do sistema operacional da máquina virtual. Uma
característica que também é uma vantagem é de que o sistema operacional hóspede não
precisa ser modificado.
Uma das desvantagens dessa solução é que ela provê suporte a um conjunto de dispositivos
genéricos, o que pode causar subutilização dos recursos disponíveis. Outro problema é que
como o sistema operacional hóspede não necessita ser modificado, logo cada instrução
gerada por ele deve ser testado pelo VMM, o que gera overhead.
2.2.2.2. Para-virtualização
Este método propõe que o sistema operacional hóspede saiba que ele está sendo executado
sobre um VMM e que possa interagir com ele. Dessa forma, são necessárias mudanças no
sistema operacional hóspede para que ele possa chamar o VMM sempre que executar uma
instrução considerada sensível, o que garante uma cooperação entre eles levando ao
aumento do desempenho do método, visto que os recursos disponíveis são utilizados de
maneira mais apropriada.
Figura 6: Para-Virtualização
Fonte: IBM
3. Exemplos de Utilização
Ensino – ambientes virtuais podem ser criados e testados sem comprometer a estrutura
computacional existente.
10
momento anterior. A grande vantagem de sua utilização é a de não comprometer a rede
real.
Testes e medições – é possível criar cenários virtuais que, são difíceis de reproduzir em
maquinas reais, facilitam testes sobre determinadas soluções.
Conclusão
Neste trabalho, foi apresentado os principais conceitos sobre virtualização, seus modos de
operação e formas de implementação. Foi mostrado que virtualização é uma técnica que
permite que um sistema computacional seja compartilhado e que execute vários outros que
são denominados de máquinas virtuais. Cada máquina virtual trabalha isoladamente e com
características próprias, incluindo sistema operacional e periféricos, que podem ser
diferentes do sistema hospedeiro.
Virtualização não é um conceito novo, mas é um tema atual. Várias técnicas estão
disponíveis para sua implementação, em que se destacam as máquinas virtuais de processo
e o monitor de máquinas virtuais.
A máquina virtual de processo é caracterizada por ser uma aplicação que é executada sobre
um sistema operacional. Este método é possui duas desvantagens relacionadas ao
desempenho, como por exemplo: Custo com a tradução de instruções de um sistema para
outro, além de todas as instruções serem executadas em modo usuário. Outro fator
limitador de desempenho é que há desperdício de capacidades físicas do hardware, pois as
máquinas virtuais de processo oferecem as suas VMs dispositivos de E/S genéricos.
11
O monitor de máquinas virtuais, conhecido como hypervisor, é uma implementação de
software que fica entre o hardware e o sistema operacional. Dessa forma o sistema
operacional consegue explorar de forma eficiente todos os recursos disponíveis. Detêm
algumas vantagens sobre as máquinas virtuais de processo, como por exemplo: não opera
em modo usuário, o que evita mudança de contexto. O monitor de máquinas virtuais pode
ser implementado de duas maneiras: a primeira, o sistema operacional hóspede não precisa
ser modificado (virtualização total), já na segunda o sistema operacional precisa ser
modificado (para-virtualização) para trabalhar sobre o hypervisor.
Vimos neste trabalho que a virtualização possibilita extrair e aproveitar o máximo dos
recursos computacionais disponíveis em uma máquina. Dessa forma é possível reduzir
custos com pessoal, menor complexidade no gerenciamento e custos operacionais.
12
Referências Bibliográficas
13
Vilela, P. Virtualização de aplicações disponível em
http://pt.sun.com/sunnews/events/2006/javapt/pdf/Virtualizacao.pdf .
Acesso outubro de 2008.
14