Você está na página 1de 10

1

O que Virtualizao?
Durante conversas com amigos e colegas de TI, tenho observado que muita gente sabe o que
virtualizao, mas falta aquele plus sobre o que realmente virtualizao, suas
caractersticas e benefcios.
Estarei publicando diversos posts sobre o que virtualizao e detalhes sobre o Hyper-V e
VMware e evidentemente agradeo aqueles que quiserem contribuir com a evoluo desse
material.

Introduo O Surgimento da Virtualizao
Em 1959, o cientista da computao e pioneiro no design de linguagens de programao,
Christopher Strachey, publicou na Conferncia Internacional de Processamento da
Informao realizada em NY, na UNESCO, o que ele intitulou de Time Sharing Processing in
Large Fast Computers. Sua publicao tratou do aspecto do uso da multi-programao em
tempo compartilhado e estabeleceu um novo conceito de utilizao de mquinas de grande
porte visando a produtividade dos recursos de hardware.
Nos anos 60, a multi-programao foi utilizada no super computador Atlas. Este projeto, que
contou com a participao das universidades de Manchester e Ferranti Ltd., foi pioneiro no
conceito de paginao por demanda e chamadas ao supervisor, o qual referenciado como
extracodes. De acordo com seus designers, as rotinas do Supervisor Extracodes eram
formadas principalmente por chamadas dependentes do supervisor. Elas eram ativadas por
rotinas de interrupo ou instrues do extracode que ocorriam em um objeto do programa.
Ou seja, uma mquina virtual era usada pelo supervisor Atlas e outro era usado para rodar
programas de usurios.
Em meados dos anos 60, o centro de pesquisa Watson da IBM possua o projeto M44/44X, a
principal oportunidade de avaliar os conceitos do sistema de time sharing. A arquitetura era
baseada em mquinas virtuais, a principal era um IBM 7044 (M44), e cada uma delas possua
uma imagem experimental da principal mquina (44X). O espao de endereamento do 44X
era residente na hierarquia de memria das mquinas M44, implementada por meio de
memria virtual e multi-programao.
Aps os primeiros experimentos, a IBM realizou uma srie de upgrades em sua arquitetura e
geraram vrios outros projetos como IBM 7040 e 7094 em conformidade com o Compatible
Time Sharing System (CTSS) desenvolvido pelo MIT (Massachusetts Institute of Technology).
Nesta mesma poca, a IBM construiu os supercomputadores da famlia 360 e o MIT
desenvolveu o projeto MAC um acrnimo para Multiple Access Computer, projeto este que
ficou famoso pelas inovaes na pesquisa nas reas de sistemas operacionais, inteligncia
artificial e teoria da computao.
Um dos maiores focos do projeto MAC foi o de desenvolver um sucessor para o CTSS, o
Multics, o qual foi o primeiro sistema operacional de alta disponibilidade, desenvolvido como
parte do consrcio que inclua a GE (General Electric) e o Bell Laboratories.

2

De forma independente, a IBM continuou a desenvolver sistemas de mquinas virtuais como
CP-40 (desenvolvido a partir de uma modificao da verso do IBM 360/40), o CP-67,
VM/370 e muitos outros. Tipicamente, mquinas virtuais IBM eram cpias idnticas do
hardware adjacente, onde um componente chamado Virtual Machine Monitor (VMM) roda
diretamente no hardware real. Mltiplas mquinas virtuais podem ento ser criadas por meio
do VMM e cada instncia pode rodar seu prprio sistema operacional.
Atualmente, a IBM lder no mercado de mainframes, que utiliza a tecnologia de
particionamento para prover uma robusta e respeitada plataforma computacional.

O que Virtualizao? Parte 2
Seguindo com a continuao sobre o que Virtualizao, hoje apresento um resumo sobre o
surgimento do Hyper-V. Cronologicamente deveria iniciar com sobre a VMware pois ela que
foi a grande precursora para ambiente X86 contudo ainda estou pesquisando maiores
detalhes sobre o inicio da VMware.

A Virtualizao Microsoft
Em 2003, a Microsoft comprou a Connectix, uma empresa que existia desde 1998 e possua
uma soluo que conseguia virtualizar sistemas operacionais. Tendo como base algumas
referncias dos produtos da Connectix, a Microsoft lana, em 2004, o Virtual Server 2005, um
servidor com suporte a mquinas virtuais, porm com limitaes de hardware. Os sistemas
operacionais s podiam utilizar um processador x86 e no mximo 3.6 GB de memria por VM.
Seguindo o fluxo de mercado, a Intel e a AMD lanavam seus processadores com suporte a
virtualizao de hardware, o Intel-VT e o AMD-V. O Virtual Server 2005 R2 SP1 foi lanado e
dava suporte s novas tecnologias de processadores, dando um melhor desempenho.
Entretanto, todas as chamadas de hardware feito pelas VMs eram enviadas ao VMM que, por
sua vez, as encaminhavam para o sistema operacional host e depois para o Kernel do
Windows. S depois disso a VM acessava o hardware, fazendo um chaveamento do
processador entre a mquina fsica e a virtual. Desta forma, o Virtual Server 2005 no
utilizava todo o poder proporcionado pela virtualizao de hardware da Intel e AMD.
No Windows 2008, a Microsoft lanou o Hyper-V e o Hyper-V Server. O Hyper-V oferece
suporte a VM x86 e x64, alm de 64 GB de memria e at 4 processadores por mquina
virtual, usando toda a capacidade de virtualizao de hardware.
Com o lanamento do Windows Server 2008 R2, a Microsoft apresenta ao mercado a nova
gerao de software de virtualizao denominada Microsoft Hyper-V R2. No mesmo modelo
da verso anterior, esse integrado no sistema operacional Windows Server 2008 R2 com
uma funo (role) que pode ser ativada ou desativada ou mesmo como um produto
independente (Stand-Alone) no necessitando da instalao do sistema operacional, pois o
mesmo uma verso do sistema operacional reduzido e sem interface especialmente
desenvolvida para oferecer uma camada dedicada virtualizao com a vantagem de ser um
produto gratuito.
3

Com essa nova verso, o produto alm de manter compatibilidade com as VMs de seu
antecessor, a verso R2 oferece diversos novos recursos, sendo os principais:
Live Migration
Failover Clustering
Cluster Sharing Volume
Suporte avanado a mais processadores e memrias

O que Virtualizao? Parte 3
Continuando com o artigo sobre o que virtualizao, hoje apresento alguns detalhes tcnicos
sobre as diferentes tecnologias de virtualizao.
As Tecnologias de Virtualizao

Introduo a Virtualizao
Ao longo dos ltimos anos, muitas organizaes se voltaram para a tecnologia de virtualizao
para consolidar servidores fsicos e reverter a tendncia de expanso de servidores, bem
como menor consumo eltrico, refrigerao e os custos de espao para lidar com oramentos
cada vez menores. Recentemente, as tecnologias de virtualizao de aplicativos e desktops
tambm surgiram e foram adoptadas em um esforo para simplificar a implementao e
gesto das infraestruturas do usurio final.
Cada vez mais, departamentos de Tecnologia da Informao (TI) descobrem que virtualizao
de infraestruturas proporcionam ambientes mais flexveis para operar e contribuir para mais
rapidamente se adaptar s constantes mudanas empresariais.
Virtualizao, no contexto de software, como por exemplo, o Microsoft Hyper-V Server e
Virtual Server 2005 R2, pode ser descrito como a abstrao de recursos fsicos do sistema de
modo que vrias parties lgicas possam serem criadas para hospedar um conjunto
heterogneo de sistemas operacionais, cada um executando simultaneamente em um nico
servidor fsico.
Cada partio lgica, tambm conhecida como Mquina Virtual (VM Virtual Machine) um
ambiente de software que apresenta recursos (atravs de emulao de hardware ou outros
dispositivos), no topo do qual um sistema operacional e um ou mais aplicativos podem ser
instalados e executados.
Embora a virtualizao tornou-se intensivamente adotada em ambientes de TI baseados em
x86 somente na dcada atual, a tecnologia em si foi realmente introduzida pela primeira vez
h 40 anos.


4

Virtualizao baseada em x86
Na ltima dcada, as pesquisas de tecnologia de virtualizao e o desenvolvimento de
produtos tm estado focado na plataforma x86 (32 bits e 64 bits). Em 2006, a AMD e Intel
liberaram revises de processadores x86 com novas instrues e extenses especificamente
dirigidas para habilitar a virtualizao auxiliada por hardware.
As deficincias da plataforma legada de processadores x86 em relao aos recursos atuais de
virtualizao no impediu os fornecedores de software de desenvolver solues antes do
lanamento do Intel Virtualization Technology (Intel VT) e AMD-Virtualization (AMD-V). Na
verdade, vrios tipos de tecnologias de virtualizao foram criados para serem executados na
arquitetura original do processador x86, utilizando diversas metodologias que diferem em
seu nvel de abstrao, limitaes e problemas.

O que Virtualizao de Software?
Virtualizao de software inclui vrias tcnicas para permitir que um nico sistema fsico
hospede vrias parties isoladas e seguras entre elas, compartilhando simultaneamente
recursos do sistema fsico. Essas abordagens diferentes variam em densidade de partio (o
nmero de parties simultneas), escalabilidade, desempenho e abrangncia de sistemas
operacionais que podem ser suportadas simultaneamente em uma determinada plataforma.

Virtualizao em nvel de Mquina
A base de uma soluo de virtualizao de nvel de mquina o Monitor de Mquina Virtual
(Virtual Machine Monitor VMM). O VMM responsvel pela criao, isolamento e
preservao do estado da mquina virtual, bem como a orquestrao de acesso aos recursos
do sistema. O VMM est vinculado a uma arquitetura de processador especfico. Embora
permita que diferentes sistemas operacionais possam executar em mquinas virtuais,
contudo est limitado a sistemas operacionais que possam ser executados nativamente no
processador fsico do sistema.
Na figura abaixo ilustra trs diferentes implementaes de VMM: Tipo-2, o modelo hbrido, e
Tipo-1. O VMM de tipo-2 executado sobre um sistema operacional hospedeiro (host), como o
Java VM. No modelo hbrido, o VMM executado como um par (peer) para o sistema
operacional host. Essa tipo de implementao utilizada, por exemplo, no software Microsoft
Virtual Server 2005 R2. Em contraste, um VMM de tipo-1, ou hypervisor, executado
diretamente no hardware abaixo de todas as parties da mquina virtual. O software
Microsoft Hyper-V uma soluo baseada em hypervisor.
5



Em termos de desempenho, o hypervisor (VMM de tipo-1) geralmente capaz de atingir
nveis mais elevados de eficincia e, portanto, maior densidade de mquina virtual. Os outros
tipos de VMMs dependem do sistema operacional host para o acesso aos recursos, o que
resulta em mudanas de contexto mais custoso, menor desempenho e de maior sobrecarga ao
sistema.
Apesar das diferentes implementaes de VMM, as trs variantes principais so usadas para
criar uma interface entre as mquinas virtuais e os recursos do sistema virtualizado. Esses
mtodos so denominados Virtualizao Completa (Full Virtualization), a Virtualizao Nativa
(Native Virtualization) e Paravirtualizao (Paravirtualization).

Virtualizao Completa
Nesse mtodo, um sistema virtual completo criado e mantido pelo VMM para abstrair o
hardware real da mquina virtual. Esse mtodo permite que um sistema operacional seja
executado em uma mquina virtual sem qualquer modificao. O software Virtual Server 2005
R2 usa essa tcnica junto com traduo binria, um processo que permite ao VMM tratar com
instrues x86 no-virtualizveis para fornecer virtualizao em processadores x86
anteriores ao Intel VT e AMD-V.
Uma vantagem da virtualizao completa e abordagem de dissociao entre o hardware fsico
da mquina virtual a capacidade de mover mquinas virtuais facilmente entre servidores
com configuraes fsicas diferentes, contudo essa flexibilidade vem com um impacto no
desempenho por causa da sobrecarga associada com a manuteno de cada estado da
mquina virtual e da latncia introduzida com a traduo binria.
6



Virtualizao Nativa
Virtualizao nativa depende de uma arquitetura de processador virtualizvel, como por
exemples os processadores AMD-V e Intel VT. Esses processadores implementam novos
modos de execuo, instrues e construes de dados em hardware que so projetados para
reduzir a complexidade do VMM.
Com a virtualizao nativa, o VMM no mais necessita manter o estado e as caractersticas
de recursos da mquina virtual em software; essas funes agora pertencem ao hardware do
processador. Assim como no caso da virtualizao completa, sistemas operacionais podem
rodar sem modificaes dentro de mquinas virtuais. Hyper-V utiliza esse mtodo para
executar sistemas operacionais legados.
Este tipo de implementao tem muitas vantagens potenciais, que vo desde a simplificao
da arquitetura do VMM para oferecer melhorias de desempenho significativas bem como a
reduo de sobrecarga baseada em software. Ao reduzir a sobrecarga da virtualizao, uma
maior densidade de partio pode ser alcanada em qualquer sistema.
7



Paravirtualizao
Paravirtualizao foi desenvolvido como uma alternativa ao uso de traduo binria para
lidar com instrues x86 no-virtualizveis. Nesse mtodo os sistemas operacionais
convidados (guests) requerem modificao para permitir hiperchamadas da mquina
virtual para o hypervisor. Em vez de ter o hypervisor (ou VMM) traduzir uma instruo
potencialmente perigosa do sistema operacional convidado, uma hiperchamada estruturada
feita a partir do convidado para o hypervisor para gerenciar as mudanas de estado do
sistema. Nesse modelo o sistema operacional modificado para chamar o VMM sempre que
executar uma instruo que possa alterar o estado do sistema, uma instruo sensvel. Isso
acaba com a necessidade do VMM testar instruo por instruo, o que representa um ganho
significativo de desempenho. Outro ponto positivo da paravirtualizao que os dispositivos
de hardware so acessados por drivers da prpria mquina virtual, no necessitando mais do
uso de drivers genricos que inibiam o uso da capacidade total do dispositivo.
Embora a paravirtualizao apresentasse um ganho de desempenho significativo frente
virtualizao completa, essa disparidade tem sido superada devido presena de instrues
de virtualizao nos processadores Intel VT e AMD-V.
A paravirtualizao foi lanada e implementada pela XenSource (recentemente adquirida pela
Citrix), que produziu a soluo de virtualizao Xen de cdigo aberto. Os lanamentos iniciais
de Xen suportavam apenas alguns sistemas operacionais modificados. Com o lanamento do
Xen 3.0, que alavancou a funcionalidade de virtualizao de hardware da AMD-V e Intel VT,
um sistema operacional Windows XP inalterado podia ser executado em uma mquina virtual
convidada.
8



Virtualizao em nvel de Sistema Operacional
Virtualizao em nvel de sistema operacional baseada na abstrao da camada do sistema
operacional para suportar mltiplas parties isoladas ou para suportar ambientes virtuais
(VEs) em uma instncia nica do sistema operacional do host. A virtualizao realizada
atravs do acesso de multiplexao ao kernel, enquanto que assegura que nenhum nico VE
seja capaz de derrubar o sistema.
Esta tcnica resulta em baixa sobrecarga de virtualizao e pode render alta densidade de
partio. No entanto, existem dois grandes inconvenientes com este tipo de soluo. A
primeira desvantagem a incapacidade de executar uma mistura heterognea de sistema
operacional em um determinado servidor, porque todas as parties compartilham um nico
kernel do sistema operacional. A segunda desvantagem, tambm causada pelo modelo de
kernel compartilhado, a falta de suporte execuo de carga de trabalho mista de 32-bit e
64-bit.
Parallels Virtuozzo Containers antigamente conhecido como SWsoft, um exemplo de
produto que usa a virtualizao em nvel de sistema operacional. Foi utilizado por muitos Web
Hostings.
9



Virtualizao em nvel de Aplicao
Todas as tcnicas de virtualizao discutidos at este ponto tm o mesmo objetivo, aumentar
o nmero de parties seguras, isolado em execuo simultaneamente em hardware fsico
para maximizar o uso da CPU, armazenamento, rede, memria e outros recursos. Embora
possam ser aplicados em um ambiente desktop, esses so principalmente voltadas para a
soluo de gesto de recursos em ambientes de servidor entretanto esses no abordam
problemas de gerenciamento de aplicativos de desktop.
Virtualizao em nvel de aplicao uma tecnologia que voltado para a separao e
isolamento de aplicaes client-side rodando no sistema operacional local. Conforme a
figura abaixo, aplicaes so isoladas em um ambiente virtual em camadas entre o sistema
operacional e a pilha de aplicao.
O ambiente virtual carrega a aplicao, isola a aplicao de outros aplicativos e do sistema
operacional e tambm impede que o aplicativo modifique recursos locais, como arquivos e
configuraes do registro. Os aplicativos podem ler informaes de arquivos e de registros do
sistema local, mas verses gravveis destes recursos so mantidos dentro do ambiente
virtual. Na verdade, o aplicativo nunca precisa ser instalado localmente no desktop; em vez
disso, os bits de cdigo podem ser dinamicamente transmitidos e armazenados em cache no
ambiente virtual conforme novas partes do aplicativo so necessrias.
10


Em 2006, a Microsoft entrou no mercado de virtualizao em nvel de aplicao com a
aquisio da Softricity e sua linha de produtos SoftGrid. O software Microsoft SoftGrid
Application Virtualization for Desktops roda no desktop local e mantm um sistema de
registro, sistema de arquivos, e outras configuraes em um ambiente virtual, sendo esses
entregues para a aplicao conforme sua necessidade. Atualmente existem diversos produtos
para a virtualizao em nvel de aplicao e essa linha conhecida como Microsoft Application
Virtualization v4.6.
_______________________

Você também pode gostar