Sei sulla pagina 1di 9

O Passo a Passo da Virtualizao

J que vamos abordar o tema virtualizao, que tal comearmos pelos primeiros passos? O que significa Virtual? Antes de mais nada, vamos analisar a palavra virtual, to usada ultimamente. O que isso quer dizer? S para reavivar a memria e dar um exemplo... lembram das aulas de tica? Imagem real e imagem virtual? Pois ... uma maneira de definir virtual : o que no real. Ou seja, estamos falando de uma farsa, de uma enganao... (ser?!) Calma... no precisamos pegar to pesado, mas estamos chegando perto do conceito. Virtual algo que finge ser real, e que melhor ser quanto mais parecido for com a realidade. Um mundo virtual como o Second Life procura reproduzir todas as nuances do mundo real. O ambiente no existe fisicamente, mas sua inteno fazer com que as pessoas se sintam num mundo real, e que l encontrem tudo que existe no mundo de verdade, de forma a poder se comportar como se estivessem vivendo (outra vida) no mundo real. O interessante de ambientes virtuais que podem ser realizadas experincias que no acarretam conseqncias no mundo real, pois estes mundos so isolados um do outro. E quais foram os primeiros passos? Ok, j filosofamos bastante sobre o conceito de virtualizao. Vamos voltar nossa vida (real) de Profissionais de TI e lembrar quando usamos isso pela primeira vez? No mundo dos micros, muita gente teve o primeiro contato com recursos virtuais rodando o MS-DOS. SIM, O VELHO E BOM DOS!!! Alguns programas levavam uma eternidade para serem instalados no DOS, a partir dos nada velozes disquetes de 3 (para no falar nos de 5 ). O Windows 3.1 era um bom exemplo. Lembram qual era a mgica da poca? Usar um tal de RAMDRIVE, que simulava um leitor com um disquete dentro, s que usando memria RAM. Como o tempo de acesso memria milhes de vezes menor do que o acesso ao disquete, as leituras (e escritas) ficavam absurdamente mais rpidas. Concluso: O contedo do(s) disquete(s) era copiado de uma vez para a memria (sequencialmente) e depois, quando era acessado de forma randmica, tudo acontecia incrivelmente mais rpido. Pois ... estamos falando de virtualizao no DOS!!! E para ser honesto, o conceito veio de mais longe ainda... em 1960 j se virtualizava em mainframes... Que tal arriscarmos mais um passo? No Windows 3.1, h mais dois exemplos claros de virtualizao.

O primeiro a Memria Virtual. Por mais incrvel que possa parecer, exatamente o contrrio do exemplo que acabamos de abordar: enquanto l se trocava o disco pela memria, no Windows se trocava a memria pelo disco! Isso porque a interface grfica fazia com que os programas para Windows precisassem de bem mais memria (que era um recurso caro). Quando faltava memria, o sistema escolhia um punhado de informaes que estavam na RAM - mas que no eram usadas h algum tempo - copiava estes dados para o disco e liberava aquela rea de memria. Com isso, uma mquina com 64 MB conseguia carregar 128 MB de dados em memria virtual. Claro que 64 MB estavam em memria (fsica, ou real) e outros 64 estavam em disco (HD), mas para a aplicao, o gerenciador de memria virtual fazia parecer que a mquina tinha 128 MB! O segundo exemplo um pouco mais complexo. O Windows (desde as primeiras verses) j virtualizava um ambiente DOS para aquelas aplicaes desenvolvidas para ambientes monotarefa e que, portanto, no saberiam compartilhar recursos como portas seriais, paralelas, endereamento de memria, etc. O espao de endereamento da memria, por exemplo, era virtualizado. Isso permitia que duas aplicaes DOS acessassem diretamente o endereo da memria de vdeo (0xA000), sem conflitos. O Windows se encarregava de desviar esses acessos para a janela de cada aplicao, fingindo que cada uma delas tivesse um monitor independente. A mesma coisa acontecia com as portas serias e paralelas. Concluso O que vale notar nessa conversa so as razes para utilizar a virtualizao. Quando no conveniente adicionar recursos reais para atingir os objetivos (por questes de custo, espao, complexidade, tempo, etc), utiliza-se recursos virtuais, que so disponibilizados por um sistema inteligente a ponto de simular a existncia dos recursos reais. No caso do RAMDRIVE, a disco foi virtualizado em memria para aumentar a performance. J no caso da memria virtual do Windows, a idia era manter a funcionalidade da aplicao sem o custo adicional de grandes quantidades de memria. No terceiro caso, a virtualizao garantiu a compatibilidade e a coexistncia de aplicaes na mesma mquina, sem conflitos. Nos prximos passos analisaremos mais apliaes do conceito de virtualizao... Aguarde!
http://blogs.technet.com/b/lpalma/archive/2008/01/10/o-passo-a-passo-davirtualiza_e700e300_o.aspx (Acesso em outubro/2010)

No nosso primeiro passo, discutimos o conceito bsico de virtualizao. Onde este conceito est nos levando?

A virtualizao pode ser aplicada de diversas formas, tanto que podemos citar 4 modelos de virtualizao: Servidor, Estao, Apresentao e Aplicao. Servidor e Estao No modelo de virtualizao de servidores e estaes, todo um computador virtualizado, ou seja, cria-se uma mquina virtual utilizando os recursos da mquina real, que normalmente chamada de host. A mquina virtual chamada de guest. O efeito prtico disso que passamos a ter um novo computador disposio (a mquina virtual), que possui sua prpria memria, seu prprio disco, suas prprias placas de vdeo e rede, etc. Claro que no houve milagre de multiplicao aqui... Os recursos desse "novo" computador so nada mais do que recursos "virtuais", ou seja, recursos que o sistema "faz de conta" que existem. N prtica, o sistema de virtualizao utiliza os recursos reais (do host) para realizar esta virtualizao. Exemplo: Para virtualizar um disco, o que o sistema faz reservar uma rea do disco real para a mquina virtual. O sistema ento "finge" que tem um disco extra para o guest, obedecendo aos comandos enviados a este disco virtual. Estes comandos so "interpretados" pelo sistema de virtualizao, que escreve/l os dados no disco real (na rea reservada para aquele disco virtual). Apresentao Neste modelo, a idia fazer com que o usurio se sinta usando o prprio computador, quando na realidade o processamento acontece num servidor central. O que o usurio "v" virtualizado para ele (da o nome "Apresentao"). O usurio interage normalmente com seu computador, como se o programa em uso estivesse instalado e rodando localmente. Na realidade, os comandos de interao (feitos atravs do teclado e mouse) so direcionados para um servidor, onde o programa est efetivamente rodando. Os resultados obtidos pelo programa so enviados de volta ao computador do usurio, que os visualiza normalmente em sua tela. Aplicao Este um modelo bastante recente, e o mais difcil de explicar... :) Trata-se da virtualizao do ambiente que uma aplicao precisa para rodar. Para entender o conceito, vamos dar asas imaginao e nos transformar em um programa de computador. Forcei? Precisaremos ser armazenados em algum lugar (normalmente a pasta "Arquivos de Programa"). Sentiremos tambm a necessidade de interagir com os dispositivos do computador (atravs de comandos enviados ao sistema operacional). Claro que vamos querer lembrar das nossas configuraes quando formos rodados... e para isso escreveremos no "Registry". Para sermos mais simpticos, vamos permitir a customizao para cada usurio do computador, e ento armazenaremos dados no perfil do usurio.

Todos estes "recursos" que um programa precisa so virtualizados para cada aplicao, de forma individual para cada uma delas (sem a necessidade de virtualizar toda uma mquina para cada aplicao). O mais legal que usando este modelo, as aplicaes no so instaladas no computador, mas so armazenadas em arquivos e "baixadas", via streaming, para o computador onde vo rodar. O sistema de virtualizao ento disponibiliza o ambiente necessrio e permite a perfeita execuo da aplicao. Nos prximos posts discutiremos em que situaes utilizar cada modelo e os benefcios trazidos por cada um. No ltimo post conversamos sobre os modelos de virtualizao: Servidor, Estao, Apresentao e Aplicao. Pois bem... e quando usar cada modelo? Servidor A principal razo para virtualizar servidores a busca de uma melhor utilizao dos recursos dos servidores fsicos. Dentro de grandes DataCenters, no raro encontrar servidores com baixo consumo mdio de CPU, memria, disco ou rede. Estes recursos podem at ser requeridos ao limite durante alguns picos de carga, mas normalmente este stress no acontece no mesmo instante para todos os recursos de todos os servidores. Com isso, um processo bem planejado de consolidao utilizando virtualizao pode permitir uma reduo sensvel no nmero de servidores utilizados. Alm de reduzir custos operacionais (compra de equipamentos, implantao de infraestrutura eltrica e de rede, aluguel do espao do CPD, refrigerao, mo-de-obra para manuteno, etc), a virtualizao de servidores um bom caminho para o "Green Datacenter", pois o consumo de energia e a produo de calor tambm podem ser drasticamente reduzidos. Estao A possibilidade de virtualizar um "novo PC" em seu micro e nele instalar um sistema operacional e aplicativos de forma independente, sem comprometer nenhuma configurao do seu equipamento de trabalho abre novas fronteiras, como: 1. Avaliar novos sistemas operacionais e/ou novos aplicativos sem correr o risco de conflitos com as aplicaes que voc utiliza diariamente; 2. Validar o funcionamento de novas aplicaes em uma gama de sistemas operacionais, sem a necessidade de particionar/formatar seu computador; 3. Salvar e restaurar (com muita agilidade) configuraes de mquinas virtuais, para realizar testes que podem ser destrutivos (se a mquina virtual ficar inutilizada, basta descartar as ltimas alteraes e reiniciar a mquina virtual no estado em que ela se encontrava anteriormente); 4. Montar toda uma rede de computadores para testes de sistemas distribudos, sem comprar nenhum equipamento nem ter que lidar com cabeamento de rede, tomadas

adicionais, espao, etc. - claro que seu PC vai ter que ter bastante memria para isso... :) Apresentao Se voc tentar comprar um micro novo hoje, dificilmente conseguir achar algo com menos potncia do que um mainframe de no muitos anos atrs... Para quem precisa rodar aplicaes que no requerem muita CPU, memria ou disco (um software de ponto de venda ou caixa eletrnico, por exemplo), este computador seria um desperdcio de recursos. Agora imagine uma empresa onde MUITAS pessoas tm estes requerimentos. O desperdcio de recursos seria incrvel! Exemplo: uma empresa com 200 funcionrios rodando aplicaes que consomem menos de 1 GB de disco. Como os "menores" HD's venda so de 80 GB, facilmente teramos 70 GB no utilizados POR PC, resultando em 14 TERABYTES de espao desperdiado na empresa!!! :O Mas as vantagens da virtualizao da apresentao no param por a. Neste modelo, tudo que as estaes precisam um cliente RDP instalado (que j vem no Windows XP/Vista). Os demais softwares so todos instalados em servidores centralizados. Para atualizar estes softwares, basta atualizar os servidores. Nada de atualizar estao por estao ou implantar processos de atualizao automatizados (que podem ter alto impacto na rede). No fantstico? Eu mesmo j vi quase 20.000 mquinas passarem a utilizar novas verses de aplicativos (incluindo Office) da sexta para a segunda. Quer mais vantagens ainda? Se seu micro pifar, voc poder usar o micro do seu vizinho em frias sem problemas, afinal, os aplicativos no esto instalados em sua mquina! Pode at mesmo ir para casa e rodar os aplicativos da empresa de l. Aplicao A virtualizao da apresentao tem, porm, um ponto fraco. Se sua conexo de rede cair... voc fica limitado ao Notepad e ao Pacincia! :O Ainda bem que existe a virtualizao de Aplicao! Com ela, os "pacotes" das aplicaes so baixados, via streaming, para a estao de trabalho e rodam em um ambiente virtualizado para aquela aplicao. Alm de evitar conflitos entre programas, porque cada um deles roda no seu ambiente virtual exclusivo, esses "pacotes" so armazenados em um cache local, permitindo a sua execuo offline. O problema est resolvido... ... por outro lado, voc no vai ter desculpas para no trabalhar... :) Um detalhe interessante que as aplicaes no so "instaladas" na estao de trabalho. O "pacote" armazenado em cache sob a forma de arquivo. O sistema, aps criar um ambiente virtual para a aplicao, executa-a "dentro" deste ambiente virtualizado. Isto resolve o problema de aplicaes que concorrem por recursos (que podem ser arquivos, chaves de registry, perfis de usurio, etc) e falham devido a conflitos nessa concorrncia. Note que os modelos de virtualizao de Aplicao e de Apresentao podem ser utilizados em conjunto. Vale a pena dar uma olhada neste artigo.

No prximo post aprofundaremos um pouco o conceito de virtualizao de Servidores... Os links abaixo contm muito material sobre o tema. http://www.microsoft.com/brasil/servidores/virtualizacao/default.mspx (em portugus) http://www.microsoft.com/virtualization/default.mspx (em ingls) Vale a pena uma visita! Recomendo tambm a leitura do memo executivo do Bob Muglia, Senior Vice President da rea de Servidores e Ferramentas da Microsoft, em: http://download.microsoft.com/download/8/e/3/8e3d5fbf-772b-40f1-b40594ce38ca9336/BobMu_Virtualization_Executive_Email.docx Que tal aprofundarmos um pouco a discusso sobre virtualizao? Vamos analisar como ocorre a virtualizao dos servidores e estaes. Estes modelos tm uma coisa em comum: eles se baseiam na virtualizao do hardware que compe um computador. Virtualizando um computador Como vimos no Passo 1, virtualizar componentes de hardware se traduz em reproduzir o comportamento destes componentes para as camadas de software que sero executadas sobre este "hardware virtualizado". Isso significa que quando um sistema operacional (rodando no ambiente virtualizado, ou mquina virtual) fizer uma chamada BIOS desta mquina [virtual], ele deve receber a mesma resposta que receberia de uma BIOS real. Da mesma forma, quando um driver interage com uma placa de vdeo, de som ou de rede (virtual), o sistema de virtualizao deve responder de forma idntica placa fsica. Chegamos a um ponto interessante aqui. Seria bastante complexo criar um sistema de virtualizao que reproduzisse fielmente o hardware do PC sobre o qual ele est rodando. A variedade de componentes de hardware para PC's gigantesca, e cada um deles tem peculiaridades que deveriam, portanto, ser virtualizadas (ou, para usar um termo mais correto, emuladas). Simplificando as coisas A soluo virtualizar um PC "genrico" - no bom sentido da palavra :) Independentemente do hardware que voc utilizar, o sistema de virtualizao reproduzir componentes "bem conhecidos" de hardware (ou seja, a placa de vdeo de sua mquina virtual [guest] provavelmente no ser a mesma que a da sua mquina fsica [host]). Alm de reduzir a complexidade do sistema, esta medida traz outra vantagem: por emular componentes "bem conhecidos", os problemas de compatibilidade com os drivers utilizados nas mquinas virtuais so bastante reduzidos. Hardware emulado As tabelas a seguir apresentam o hardware emulado pelos produtos Microsoft: Virtual Server 2005 R2
Chipset BIOS Processador Placa de Placa de Controladora Outros

Vdeo Intel 440 BX AMI BIOS O mesmo processador do host S3 Trio 32/64 (4 MB)

Rede DEC 21140 (at 4)

SCSI Adaptec 7870 (at 4) Mouse/Teclado PS/2, 2 Disquetes, 2 Portas Seriais, 1 Porta Paralela, at 4 dispositivos IDE

Virtual PC 2007
Chipset Intel 440 BX BIOS AMI BIOS Processador O mesmo processador do host Placa de Vdeo S3 Trio 32/64 (4 MB16MB) Placa de Rede DEC 21140 (at 4) Placa de Som Outros

Creative Labs Mouse/Teclado Sound Blaster PS/2, 2 Disquetes, 2 16 ISA PnP Portas Seriais, 1 Porta Paralela, at 4 dispositivos IDE

O que est por vir... O processo aqui descrito (tambm conhecido como "device emulation") utilizado no Virtual Server. No Hyper-V, ele tambm implementado quando no possvel utilizar um novo mecanismo, bem mais moderno, que o uso de "dispositivos sintticos". Mas isso um outro passo... ;) O assunto de hoje um dos meus preferidos. A comear pelo nome, que impressiona: Dispositivos sintticos! Dentro do modelo de virtualizao de servidores e estaes, j discutimos a necessidade de emular os componentes de um computador. No ltimo post, vimos at uma lista do hardware que o Virtual Server emula. Pois bem... o Hyper-V vai alm deste conceito! Claro que por questes de compatibilidade, o Hyper-V mantm a capacidade de emular dispositivos da mesma forma que o Virtual Server o faz. Mas o uso de dispositivos sintticos uma grande (e bem-vinda) novidade. Mas afinal... o que um dispositivo sinttico? Ao contrrio de dispositivos emulados, que reproduzem o mais fielmente possvel o comportamento de um componente fsico de hardware (no necessariamente aquele instalado no computador host), os dispositivos sintticos so componentes "conceituais", ou seja, no so baseados em dispositivos fsicos existentes no mundo real. Esse "desapego" permite implementar melhorias de performance e mais funcionalidades. Como assim, Luciano? Tenho que concordar que o conceito de dispositivo sinttico no to simples, e que at agora no ajudei muito, n? Mas um nome to "cientfico" merece este suspense todo, no merece? ;) Para entender melhor os dispositivos sintticos, vamos dar uma olhada na arquitetura do Hyper-V. Existem 3 componentes importantes: VSP (Virtualization Service Provider), VSC (Virtualization Service Client) e VMBus.

VSP - Virtualization Service Provider O VSP roda na Partio "Parent" (aquela onde roda o Windows Server 2008 e o "virtualization stack"), e conversa diretamente com o driver do dispositivo fsico instalado no computador host. Um dos servios que o VSP fornece a virtualizao de dispositivos (sintticos), como por exemplo, uma placa de rede virtual. Claro que para "implementar" esta placa de rede virtual (conceitual), no final das contas o VSP utilizar o driver da placa de rede fsica (real) do computador host para enviar pacotes pelo cabo de rede. VSC - Virtualization Service Client J adivinhou, n? O VSC roda na Partio "Child" e quem solicita servios ao VSP. A funo do VSC "implementar" um dispositivo virtual (sinttico) para a mquina virtual que est rodando nesta partio. A comunicao entre VSC e VSP se d atravs do VMBus... VMBus VMBus um barramento implementado em memria - e portanto de altssima velocidade utilizado na comunicao "entre parties" (child e parent). atravs dele que VSC e VCP conversam. Exemplo: Placa de Rede Virtual

Na figura acima, um sistema operacional guest roda em uma mquina virtual (na partio child). O VSC que roda nesta partio implementa a placa de rede virtual. Para que os dados sejam enviados fisicamente rede, o VSC solicita servios ao VSP atravs do VMBus. O VSP (que roda no host, na partio parent) interage com o driver da placa de rede fsica para enviar os pacotes. Nos posts anteriores, discutimos a emulao de dispositivos que compem uma mquina virtual e a implementao de dispositivos sintticos. Pois bem... para utilizar um dispositivo emulado (que se comporta como um dispositivo fsico conhecido), o sistema operaciona guest - ou seja, aquele que roda na mquina virtual - deve carregar o driver do dispositivo [fsico] que o sistema emula. E para interagir com um dispositivo sinttico? Qual driver o sistema deve utilizar?

Integration Components Neste caso, devem ser instalados os componentes de integrao (ou "Integration Components") na mquina virtual. Estes componentes implementam o VSC - Virtualization Service Client, que se comunica com o VSP - Virtualization Service Provider atravs do VMBus (esta parte est detalhada no Passo 5). Para quem est acostumado com o Virtual Server, os Integration Components so anlogos s VM Additions, porm implementam a nova arquitetura do Hyper-V. Alm de implementar o VSC, os Integration Components tambm permitem: Sincronismo de horrio entre mquina virtual e mquina fsica (host ) Funcionalidade de heartbeat para a mquina virtual Suporte ao shutdown do sistema operacional guest Backup atravs de VSS (Virtual Shadow Copy Service)

Como se pode notar, as ltimas 3 funcionalidades so normalmente exploradas por ferramentas de gerenciamento, o que refora o nome Integration Components. ;)

Potrebbero piacerti anche