Professional Documents
Culture Documents
Mquinas Virtuais
INDICE
Introduo........................................................................................................................................3
Tipos de Virtualizao......................................................................................................................5
Bibliografia......................................................................................................................................17
Introduo
Definies e conceitos
Na cincia da computao, mquina virtual o nome dado a uma mquina, implementada atravs
de software, que executa programas como um computador real, tambm chamado de processo
de virtualizao.
Uma mquina virtual (Virtual Machine VM) pode ser , definida como uma duplicata eficiente e
isolada de uma mquina real. A IBM define uma mquina virtual como uma cpia isolada de um
sistema fsico, e esta cpia est totalmente protegida.
Mquinas virtuais so extremamente teis no dia a dia, pois permitem ao usurio rodar outros
sistemas operacionais dentro de uma janela, tendo acesso a todos os softwares que precisa. Existem
alguns termos importantes que devem ser destacados:
a) Host Server: o servidor fsico em que roda as mquinas virtual, tambm conhecido como sistema
operacional hospedeiro.
b) Guest Operation System: um sistema operacional virtualizado rodando em um host server (servi-
dor fsico), tambm conhecido como sistema operacional visitante.
c) Resource Pool: a coleo de recursos do hardware, incluindo host servers que criam a infraestru-
tura de um data center.
e) Modo de usurio e o modo supervisor: O modo de usurio, tambm chamado de espao de apli-
cao, modo no qual as aplicaes normalmente so executadas. Neste modo, no possvel exe-
cutar as instrues privilegiadas, que so restritas ao modo de supervisor.
O modo de supervisor tem o controle total sobre a CPU, podendo executar todas as instrues do
conjunto de instrues do processador em questo, tanto as no-privilegiadas como as privilegiadas.
O sistema operacional executado neste modo. Antes de o sistema operacional passar o controle da
CPU para uma aplicao do usurio, o bit de controle de modo configurado para o modo de
usurio.
Vantagens e desvantagens
Existem diversas vantagens na virtualizao, a seguir sero citadas as principais:
Segurana: Usando mquinas virtuais, pode ser definido qual o melhor ambiente para
executar cada servio, com diferentes requerimentos de segurana, ferramentas
diferentes e o sistema operacional mais adequado para cada servio. Alm disso, cada
mquina virtual isolada das demais. Usando uma mquina virtual para cada servio, a
vulnerabilidade de um servio no prejudica os demais.
Confiana e disponibilidade: A falha de um software no prejudica os demais servios.
Custo: A reduo de custos possvel de ser alcanada com a consolidao de pequenos
servidores em outros mais poderosos. Essa reduo pode variar de 29% a 64%.
Adaptao s diferentes cargas de trabalho: Variaes na carga de trabalho podem ser
tratadas facilmente. Ferramentas autnomas podem realocar recursos de uma mquina
virtual para a outra.
Balanceamento de carga: Toda a mquina virtual est encapsulada no VMM. Sendo
assim fcil trocar a mquina virtual de plataforma, a fim de aumentar o seu
desempenho.
Suporte a aplicaes legadas: Quando uma empresa decide migrar para um novo Sistema
Operacional, possvel manter o sistema operacional antigo sendo executado em uma
mquina virtual, o que reduz os custos com a migrao. Vale ainda lembrar que a
virtualizao pode ser til para aplicaes que so executadas em hardware legado, que
est sujeito a falhas e tem altos custos de manuteno. Com a virtualizao
desse hardware, possvel executar essas aplicaes em hardwares mais novos, com
custo de manuteno mais baixo e maior confiabilidade.
configurados e salvos. Existem produtos que fornecem essas solues, mas esse o
campo no qual esto os maiores investimentos na rea de virtualizao, justamente por se
tratar de um dos maiores contra-tempos na implementao da virtualizao.
Desempenho: Atualmente, no existem mtodos consolidados para medir o desempenho
de ambientes virtualizados. No entanto, a introduo de uma camada extra
de software entre o sistema operacional e o hardware, o VMM ou hypervisor, gera um
custo de processamento superior ao que se teria sem a virtualizao.
Tipos de virtualizao
a) Full virtualization - onde a mquina virtual simula todo o hardware para permitir que um sistema
operacional guest seja executado de maneira isolada. Esse seria o caso da emulao.
b) Virtualizao auxiliada pelo hardware - quando o prprio hardware (processador) possui, em sua
arquitetura, suporte a execuo de mquinas virtuais de modo isolado. Um bom exemplo so os
novos processadores da AMD e Intel.
c) Para-virtualizao - em linhas gerais, o sistema operacional da mquina virtual "sabe" que est
rodando num ambiente virtualizado. H um elemento, chamado Hypervisor, que podemos dizer
tratar-se de uma API para que o sistema operacional guest tenha acesso ao hardware.
VMware
XEN
O Xen um software multiplataforma, com licena software livre e arquiteturas x86, x86-64, IA-
32, IA-64 e PowerPC sendo tambm um dos mais populares exemplos de para-virtualizao. Na
virtualizao total, o sistema operacional visitante tenta executar tarefas protegidas e, por estarem
no espao de aplicao do sistema operacional hospedeiro, no podem ser executadas. No entanto, o
hypervisor intervem e executa ou simula a execuo dessas, o que reduz o desempenho da
virtualizao total. J a para-virtualizao apresenta-se como uma alternativa a isso, na medida em
que o sistema operacional visitante modificado para no tentar executar diretamente na CPU as
tarefas protegidas, mas entregar essas ao Hypervisor. Este tipo de virtualizao tem um ganho de
desempenho significativo frente total.
Uma das maiores vantagens do uso do Xen como hypervisor na para-virtualizao o fato de que
este apresenta um desempenho melhor do que os produtos de virtualizao total, quando a mquina
Para a virtualizao da memria, o Xen reserva para cada mquina virtual uma determinada
quantidade de memria, que pode ser alterada a qualquer momento sem a necessidade de terminar
ou reiniciar a mquina virtual. Cada mquina virtual pode ter uma ou mais interfaces de rede
virtuais. A comunicao entre as interfaces implementada por dois token rings, um para enviar e
outro para receber.
Atualmente, o Xen conta tambm com um domnio no qual feita a virtualizao total, o que
permite que sistemas operacionais no modificados sejam executados sobre o hypervisor Xen.
Inicialmente, a escolha pela para-virtualizao justificava-se pelo fato de que o ganho em
desempenho era muito maior do que com a virtualizao total. No entanto, com o advento das
arquiteturas AMD-V e Intel VT, arquitetura que do o suporte de hardware para a virtualizao, a
virtualizao total passou a obter resultados de desempenho melhores que os da para-virtualizao.
Vale ressaltar que o domnio de virtualizao total disponvel no Xen a partir da sua verso 3.0, s
pode ser usado nas mquinas hospedeiras que possuam suporte de hardware virtualizao.
Virtual Box
Virtual Box um software de virtualizao desenvolvido pela empresa Innotek depois comprado
pela Sun Microsystems que posteriormente foi comprada pela Oracle que, como o VMware
Workstation, visa criar ambientes para instalao de sistemas distintos. Ele permite a instalao e
utilizao de um sistema operativo dentro de outro, assim como seus respectivos softwares, como
dois ou mais computadores independentes, mas compartilhando fisicamente o mesmo hardware.
Geralmente usado por desenvolvedores de sistemas, ou profissionais de TI.
Virtual Box uma poderosa ferramenta de virtualizao para empresas, bem como uso domstico.
No s o Virtual Box extremamente rico em recursos do produto desempenho, alta para os clientes
corporativos , tambm a nica soluo profissional que est disponvel gratuitamente como
software de cdigo aberto sob os termos da GNU General Public License (GPL) verso 2.
O VirtualBox est a ser ativamente desenvolvido com lanamentos frequentes e tem uma lista
sempre crescente de funcionalidades, os sistemas operacionais suportados convidado e ele roda em
plataformas. VirtualBox um esforo da comunidade apoiada por uma empresa que se dedica :
todos so incentivados a contribuir enquanto a Oracle garante que o produto sempre atende aos
critrios de qualidade profissional. Abaixo h uma descrio sobre o software:
a) Sistema Operacional:
- Multiplataforma
b) Licena:
- GNU/GPL
c) Verses do Produto (alguns exemplos):
- VirtualBox 4.3.6
- VirtualBox Open Source
- VirtualBox Pre-built Appliances
sistema de arquivos, sem interferir no sistema real. Resumindo, possvel usar um sistema FAT32,
ReiserFS etc., dentro de um HD formatado em NTFS, por exemplo. O Virtual PC muito til para
empresas, testes de vrus, aprendizado e para rodar sistemas antigos.
Assim sendo o usurio pode rodar Sistemas operacionais distintos e conect-los atravs de um
dispositivo de rede virtual que o instalador disponibiliza dentro de Painel de Controle -> Conexes
de Rede (no caso de Sistemas Microsoft). O Virtual PC permite ainda capturar ISO's de Instaladores
de Sistemas Operacionais, rod-las na forma de uma unidade de CD-ROM tambm virtual, instalar
o S.O. a partir da ISO e, depois de instalado, ainda personalizar o S.O. realizando mais instalaes
de softwares de terceiros, o que facilita por exemplo verificar a migrao de aplicaes entre
plataformas sem precisar de um segundo computador fsico.
a) Sistema Operacional:
- Microsoft Windows
b) Licena:
- Proprietrio
c) Verses do Produto (alguns exemplos):
- 2007 SP1 6.0.192.0
QUEMU
QEMU um software livre (GNU/GPL) que implementa um emulador de processador permitindo
uma virtualizao completa de um sistema PC dentro de outro como tambm multiplataforma
sendo sua ltima verso 1.7.0. Suporta emulao das arquiteturas IA-32 (x86)
PCs, AMD64 PCs, MIPS R4000, Sun SPARC sun4m, Sun SPARC sun4u, ARM development
boards (Integrator/CP and Versatile/PB), SH4SHIX board, e PowerPC (PReP e Power Macintosh).
Quando usado como um emulador de mquina, QEMU pode executar sistemas operacionais e
programas feitos para uma mquina (por exemplo, uma placa ARM) em uma mquina diferente
(por exemplo, seu prprio PC). Usando traduo dinmica, consegue um desempenho muito bom.
Quando usado como um virtualizador, QEMU atinge perto de performances nativas, executando o
cdigo de convidado diretamente na CPU host. QEMU suporta virtualizao ao executar sob o
hypervisor (semelhante a projetos como: Vmware ou Virtual Box) ou usando o mdulo do kernel
KVM no Linux. Ao usar o KVM, QEMU pode virtualizar x86, PowerPC e servidor embutido, e os
hspedes S390.
Observao: KVM (Kernel Virtual Machine) um mdulo do kernel Linux que permite que um
programa de espao de usurio para utilizar os recursos de virtualizao de hardware de vrios
processadores. Hoje, ele suporta recentes processadores Intel e AMD (x86 e x86_64), PPC 440,
PPC 970, S/390, e ARM (Cortex A15) processadores.
O QEMU tem dois modos de operao:
a) Emulao em modo de usurio: O QEMU pode lanar processos Linux ou Darwin/Mac OS
X compilados para uma CPU em outra CPU. As chamadas ao SO alvo so truncadas para
um endianamento e combinaes 32/64bits. Wine e o Dosemu so os alvos principais para o
QEMU.
b) Emulao em modo computador completo: O QEMU emula um computador completo, incluindo
um processador e vrios perifricos. Ele pode ser utilizado para prover hospedeiros virtuais de
vrios computadores virtuais em um nico computador.
Mquinas Virtuais de Aplicao
Mquina virtual Java (do ingls Java Virtual Machine - JVM) um programa que carrega e executa
os aplicativos Java, convertendo os bytecodes em cdigo executvel de mquina. A JVM
responsvel pelo gerenciamento dos aplicativos, medida que so executados. Graas mquina
virtual Java, os programas escritos em Java podem funcionar em qualquer plataforma de hardware e
software que possua uma verso da JVM, tornando assim essas aplicaes independentes da
plataforma onde funcionam. Na Execuo segura do cdigo remoto, a arquitetura de JVM permite
um controle muito fino sobre as aes liberadas para o cdigo que est rodando na VM. Isso
permite a execuo de cdigo confivel de fontes remotas, um modelo usado pelos applets.
Os applets rodam dentro de uma VM incorporada ao browser do usurio, executando cdigo
baixado de um servidor HTTP remoto. O cdigo remoto roda em uma sandbox, que protege o
usurio de cdigos maliciosos. O autor do applet pode aplicar um certificado para assinar
digitalmente o applet como "seguro", dando a ele permisso de sair do sandbox e acessar livremente
a mquina onde est rodando.
FreeBSD jail
O FreeBSD jail um recurso de criao de mltiplos ambientes virtuais nativo do FreeBSD. Ele
consiste basicamente na criao de um diretrio, um endereo de rede e um hostname para essa
mquina virtual, que pode ser acessada pela console o servidor onde est instalada ou por SSH.
Wine
Wine (acrnimo recursivo para WINE Is Not an Emulator, isto , WINE No um Emulador, em
traduo livre) um emulador para sistemas operativos UNIX que tem como objectivo a
implementao da API do Microsoft Windows. Desta forma, em teoria, o Wine permite a execuo
de aplicaes desenvolvidas para ambientes Windows nativamente noutros sistemas
operativos. Wine, traduzido literalmente do ingls para o portugus, significa vinho, o que levou
escolha de uma taa de vinho como logotipo do Wine.
Por reimplementar as bibliotecas do Windows o Wine no um emulador, no fazendo qualquer
emulao para executar software para Windows. A implementao da API do Windows faz-se
atravs da utilizao de APIs e funes especficas de ambientes UNIX, sendo apenas necessria a
implementao adicional de um carregador de aplicativos no formato PE, capaz de os converter
para o formato ELF em run-time.
O Wine atua, ento, algo como um "tradutor": toda vez que ocorre uma chamada para a
funo desenha Cubo que estava implementada na DirectX.dll por exemplo, o Wine traduz esta
chamada para uma de suas prprias bibliotecas em que algum escreveu uma funo similar para
realizar exatamente o mesmo, desenhar um cubo na tela. Por isto s vezes os jogos que rodam em
cima do Wine geram erros, pois executam chamadas a funes que o Wine no sabe como
interpretar, isto , chamam bibliotecas ou funes muito novas que os desenvolvedores do Wine
ainda no implementaram. No entanto, o Wine permite a utilizao de bibliotecas nativas, apesar de,
dado o facto de ser uma aplicao em user-mode num sistema operativo UNIX, nem todas
funcionarem. Por exemplo, a utilizao do DirectX da Microsoft uma impossibilidade tcnica (e
legal).
O Wine ainda disponibiliza a sua prpria biblioteca (Winelib) por forma a que o cdigo-fonte dos
programas concebidos para Windows possa ser compilado no ambiente UNIX. Assim, programas
desenvolvidos para Windows podem ser portados para plataformas UNIX e, inclusivamente, para
outras arquiteturas, desde que exista o cdigo fonte. No entanto, os programas compilados com
Winelib precisam de ser executados sempre no Wine e, em particular, sempre na mesma verso.
O nome Wine era inicialmente um acrnimo de WINdows Emulator.1 Seu significado mais tarde
deslocado para o Acrnimo recursivo, Wine IsNot an Emulator.2 Embora o nome s vezes aparece
sob as formas WINE e wine, os desenvolvedores decidiram padronizar para Wine.3
O Wine foi tambm um dos alfas mais longos de todos. Levou cerca de 12 anos desde o incio de
seu desenvolvimento em 1993, por Bob Amstadt e Eric Youngdale, at a verso 1.0, lanada em
junho de 20084 5 .
O projeto est atualmente na verso 1.7.11, desde 17 de janeiro de 2014. J executa muitos
programas, entre eles Adobe Photoshop, DreaMule,Filezilla, Macromedia Flash, Microsoft
Office, Corel Draw (at verso 8), Microsoft Internet Explorer, mIRC, uTorrent, Ares
Galaxy, Shareaza,Firefox (verso do Windows) e Winamp. O projeto tambm capaz de executar
diversos e conhecidos jogos como Need for Speed Underground, Warcraft III, Starcraft, Max Payne,
Max Payne 2: The Fall of Max Payne, Counter Strike, Half-Life, Half-life, World of
Warcraft, Resident Evil 4,Tetris Zone, entre outros.
Em um Data Center dinmico, que segue os propsitos dos benefcios da virtualizao, existe at
sete camadas de virtualizao:
Virtualizao do Servidor
Esta camada focada no particionamento do sistema operacional e fsico em virtual ou em uma m-
quina virtual. Os produtos da virtualizao do servidor deixaro que seja virtualizado qualquer siste-
ma operacional x86 ou x64, como o Windows, Linux e algumas formas do UNIX. H dois aspectos
importantes da virtualizao do servidor:
Virtualizao do Storage
usada para migrar/ merge um storage fsico a partir de mltiplos aparelhos para que aparentam ser
um nico pool de armazenamento. O storage dentro deste pool pode assumir diferentes formas: di-
rect attached storage (DAS), network attached storage (NAS), ou storage area network (SANs); e
pode ser linkado por meio de diversos protocolos: Fibre Channel, Internet SCSI (iSCSI), Fibre
Channel on Ethernet, ou at mesmo o Network File System (NFS). A virtualizao do storage no
um requerimento para a virtualizao do servidor. Uma das caractersticas chave que poder obter
com a virtualizao do servidor a habilidade para confiar em um provisionamento ou assignao
de uma unidade lgica (LUN) do armazenamento de determinado tamanho. Porm, no que se refere
ao provisionamento, somente para uma base necessria. Por exemplo, se criar uma LUN de 100 gi-
gabytes (GB) e somente utiliza 12GB, apenas 12GB do atual storage provisionado. Com isto, os
custos de armazenamento se reduzem significativamente desde que um servio pago quanto so-
mente ao que demandado (pay as you go).
Virtualizao do Gerenciamento
focada nas tecnologias que envolvem o gerenciamento de um Data Center, ambos virtual e fsico,
para apresentar uma infraestrutura unificada de provisionamento de servios. ManageV no ne-
cessariamente performada por meio de apenas uma interface. Por exemplo, em um Data Center de
larga escala, possvel dividir diferentes servios em camadas e separar as operaes entre elas. J
em um Data Center de pequena escala, no possvel ter um staff para compartir responsabilidades.
Porm, deve-se assegurar que seus administradores usem diferentes chapus, quando trabalham
com vrias camadas da arquitetura. De fato, preciso assegurar que duas camadas estejam separa-
das por todo o tempo:
- Resources Pools, que inclui a coleo de recursos do hardware servidores quentes, racks, enclo-
sures, storage e network hardware que faz make up a infraestrutura do Data Center;
Observao: Na tabela abaixo temos a diferena de terminologia para servidores frio, morno ou
quente em ambiente de alta disponibilidade:
Virtualizao do Desktop
Permite confiar sobre as mquina virtuais para provisionar sistemas de desktops. A virtualizao do
desktop tem uma srie de vantagens, sendo uma importante habilidade em centralizar
implementaes no desktop, a reduo de custos no gerenciamento de equipamentos e a
distirbuio, uma vez que os usurios finais tero dispositivos mais finos e inonerantes/ menos
custosos.
Virtualizao da Apresentao
Recentemente chamada de Servios Terminais, fornece apenas a camada de apresentao desde
uma localizao central at os usurios finais. Enquanto a necessidade de um PresentV vem dimi-
nuindo por conta da introduo de tencologias como a virtualizao de aplicativos, os protocolos
utilizadas pela PresentV so cnsiderados a vanguarda para as tecnologias de DeskV e SerV, desde
que os protocolos sejam usados para acessar, e gerenciar cargas/ workloads.
Virtualizao de Aplicativos
Possui o mesmo princpio de software baseado em SerV. Porm, ao invs de fornecer um motor/
propulsor para rodar todo o sistema operativo, AppV dissocia a produtividade de aplicaes a partir
do sistema operacional. AppV transforma o modelo de distribuio de aplicativos porque necess-
rio apenas virtualiz-lo uma vez. Assim sendo, o motor/ propulsor da virtualizao dos aplicativos
se encarga de rodar em qualquer verso de Windows. Ao transformar seus aplicativos no formato
AppV, nunca mais tocar neles novamente. O trabalho feito pelas maiores empresas de vendas de
aplicativos como a Microsoft, Citrix, InstallFree, Symantec e VMware.
Bibliografia
http://pt.wikipedia.org/wiki/M%C3%A1quina_virtual
www.virtueit.com.br
Informaes retiradas do livro Virtualization A Beginners guide
http://www.ibm.com/developerworks/br/data/library/techarticle/dm-0909db2halicensing/
http://www.gta.ufrj.br/grad/08_1/virtual/index.html
http://www.microsoft.com/pt-br/download/details.aspx?id=3702
https://www.virtualbox.org/
http://www.xenproject.org/
http://www.vmware.com/br/
http://pt.wikipedia.org/wiki/Xen
http://pt.wikipedia.org/wiki/Virtualbox
http://pt.wikipedia.org/wiki/Vmware
http://pt.wikipedia.org/wiki/Microsoft_Virtual_PC
http://www.baixaki.com.br/download/microsoft-virtual-pc.htm
http://pt.wikipedia.org/wiki/Jvm
www.devmanuals.com
http://pt.wikipedia.org/wiki/Common_Intermediate_Language
http://en.wikipedia.org/wiki/Common_Language_Runtime
http://pt.wikipedia.org/wiki/FreeBSD_jail
http://pt.wikipedia.org/wiki/OpenVZ
http://dainf.ct.utfpr.edu.br/maziero
http://pt.wikipedia.org/wiki/Wine