Virtualização

Este página é uma compilação de duas pesquisas sobre o tema de virtualização
A primeira pesquisa foi realizada por Aline Santos, Igor Novais e ** Monique Luiza** em 2007-2
A segunda pesquisa foi realizada por Suane S. Freitas, Iranice Carvalho da Silva Soares e José Raimundo em 2007-2


Pesquisa realizada por Aline Santos, Igor Novais e ** Monique Luiza** em 2007-2

Conceito:

Virtualização de software é representação de vários sistemas completos sendo executados sob um mesmo hardware físico. Resolve problemas de compatibilidade entre software e hardware.

Máquina Virtual é a abstração de um hardware convencional atribuindo a maior parte, ou em algumas soluções, toda a sua funcionalidade ao software, ou seja, um software representando as funcionalidades.

A idéia de virtualização não é recente. A IBM produziu uma máquina virtual que foi o VM/CMS. Criado no final da década de 70 e utilizado até hoje pela IBM, os sistemas de virtualização estão cada vez mais presentes na realidade tecnológica mundial.

Virtualização de soluções tecnológicas no ambiente empresarial, uma tendência crescente, permite operar múltiplos sistemas a partir de uma única infra-estrutura tecnológica, partilhando os recursos de hardware subjacentes e os sistemas de virtualização.

As soluções de virtualização contribuem para uma gestão mais eficiente do investimento em hardware, reduzindo o tempo gasto em upgrades de hardware, simplificando disaster recovery e equipes técnicas menores e mais polivalentes, ao permitirem a consolidação múltipla de aplicações num menor número de servidores.

Problemas solucionados pela virtualização de software:

- A incompatibilidade do hardware com o software no que diz respeito a suas modificações no decorrer do tempo, ou seja, o hardware das empresas estão sendo atualizados a uma velocidade maior que os programas legados que devem ser executados e que são responsáveis por controlar a atividade fim dasempresas;
- Subutilização dos recursos de hardware pelos programas pelo mesmo motivo citado anteriormente, ou seja, os programas legados não conseguem explorar em sua totalidade a capacidade dos hardware atuais.

Princípios de Virtualização:

1) A camada de virtualização deve isolar uma máquina virtual da outra de modo que não exista nenhuma interferência entre ambas. Não é aceitavel que o funcionamento de uma máquina virtual afete a performance de outra máquina virtual;
2) É necessário suportar uma variedade diferente de sistemas operacionais para acomodar os diferentes aplicativos populares existentes;
3) O overhead introduzido pela camada de virtualização deve ser pequeno.

Tipos de Virtualização:

- Emulação de Hardware

Mais complexo devido ao fato de ter que emular de maneira precisa o comportamento de um hardware.
O software deve emular os ciclos de clock, o conjunto de instruções, os estados de execução (pipeline) do processador e a memória cache.

A utilidade desse tipo de virtualização é a facilidade que ele proporciona aos desenvolvedores de firmware e de hardware, pelo fato de não ter necessidade de ter um hardware real para testes. Contudo, essa solução tem menor desempenho em comparação ao uso de um hardware real e também o fato do hardware emulado ser bastante diferente do hardware real, na maioria das vezes.

- Virtualização Completa

É uma técnica de virtualização utilizada para permitir que qualquer software possa ser executado sem alterações. Para isso, esta técnica realiza uma simulação completa do hardware da máquina de modo que qualquer sistema operacional possa ser executado. Esta simulação implica em representar o conjunto de instruções do processador, a memória principal, interrupções, exceções e acesso aos diversos dispositivos existentes.

Diferentemente da emulação de hardware, a simulação é realizada com maior eficácia, pois não necessita representar os estados de execução do hardware. Importante lembrar ainda que a simulação completa do hardware feita por esta técnica de virtualização, geralmente, simula dispositivos padrões do mercado de modo a facilitar a instalação e configuração dos sistemas virtualizados.

- Para-Virtualização

É uma técnica que apresenta uma Application Programming Interface (API) para as máquinas virtuais, similar, mas não identica à hardware real. O sistema operacional rodando dentro da máquina virtual tem a ilusão de estar sendo executado diretamente sobre o hardware. Este tipo de técnica requer que o sistema operacional virtualizado seja explicitamente portado para permitir a sua execução.

Virtualização Completa X Para-Virtualização

A para-virtualização possui melhor desempenho que a virtualização completa. Isso se deve, basicamente, ao fato dos drivers de dispositivos que são executados nas máquinas virtuais para-virtualizadas serem
os drivers reais para os dispositivos físicos, diferentemente dos drivers emulados da virtualização completa.

Virtualização usando VMware

O VMware é um conjunto de software disponibilizado pela VMware Inc, onde o conjunto de ferramentas oferecem virtualização completa. Basicamente, a suite de software deste fabricante se divide em
três produtos: VMware Workstation, VMware Player e VMware ESX Server. Os dois primeiros são utilizados na virtualização de ambientes desktop e o último na virtualização de ambientes servidores.

O software VMware Workstation é utilizado para criar as máquinas virtuais. Criar uma máquina virtual significa definir o hardware desta máquina bem como o tipo de sistema operacional virtualizado que a mesma irá executar. A criação de máquinas virtuais se divide em duas etapas. Na primeira deve-se
definir o sistema operacional a ser virtualizado bem como os dispositivos de hard-ware presentes. Na segunda etapa deve-se instalar o sistema operacional virtualizado seguindo os mesmos procedimentos habituais já utilizados para a instalação do mesmo. A diferença é que o sistema operacional será instalado sobre um hardware virtualizado.

Importante lembrar que o pacote que contém o software VMware Workstation traz consigo o pacote do software VMware Player, não se fazendo necessário instalar o VMware Player separadamente. O utilitário VMware Player pode ser adquirido de maneira independente, ou seja, aqueles usuários que apenas desejam executar uma máquina virtual previamente configurada, podem fazer uso apenas deste software.

Virtualização de Ambientes Servidores

A ferramenta descrita nesta seção não necessita de um sistema operacional nativo instalado na máquina de modo a possibilitar a sua execução. Assim como o VMwareWorkstation, o VMware ESX 3.0 não é gratuito, apesar de utilizar o kernel do linux para controlar a máquina real.

Virtualização utilizando o XEN

O Xen é um virtualizador que permite rodar várias instâncias do Linux, FreeBSD ou Windows no mesmo servidor, algo similar ao VMware, mas implementado de forma diferente.

Em resumo, o Xen utiliza o conceito de para-virtualização. Ele se encarrega de organizar as requisições feitas pelas máquinas virtuais e repassá-las ao sistema principal e se limita a repassar as instruções, sem interpretá-las como faria um emulador (como por exemplo o Qemu), o que causa uma diminuição de desempenho muito pequena.

O VMware usa uma técnica similar, mas incluindo uma série de funções de checagem destinadas a eliminar problemas de compatibilidade com diversos sistemas operacionais. Isso faz com que o VMware rode diretamente a maioria das versões do Windows, Linux e outros sistemas diretamente, bastando instalá-los na máquina virtual.

No caso do Xen, o sistema que vai ser executado dentro da máquina virtual precisa ser modificado. Ou seja, você precisaria de uma versão específica do Fedora, por exemplo, para poder executá-lo dentro do Xen é necessário instalar um patch no Kernel para isso.

O objetivo inicial do Xen não é ser uma solução fácil de usar como o VMware, ele é mais voltado para uso em servidores, permitindo rodar vários servidores virtuais numa única máquina. Mesmo assim o projeto está sendo desenvolvido de forma bastante ativa, com participação de empresas como a IBM, Sun, Red Hat e com o apoio da Microsoft para que seja compatível com o seu sistema. É de se esperar que o Xen se torne um sistema mais conhecido no futuro e que possa suportar outras plataformas.

Conclusão

O obejtivo deste site é mostrar que os sistemas de virtualização existentes atualmente no mercado podem ajudar empresas a resolverem problemas de compatibilidade entre software legado e hardware moderno.

Videos sobre o tema

Palestra sobre virtualização

Windows XP dentro do Ubuntu Linux

Virtualizando XP con Virtual Box

Links

Treinamento de Virtualização

Virtualização a todo vapor

VMWare

IBM Storage

Artigos

Empresa ParaRede desenvolve solução de virtualização de servidores

AMD lança especificação "Pacifica" para tecnologia AMD64

Investimentos na medida e na hora certa

Soluções EMCde virtualização

Virtualização de Servidor

Bibliografia

Monografia de Guilherme Veloso Neves Oliveira Solução de virtualização
www.ginux.ufla.br/files/mono-GuilhermeOliveira.pdf

Para-virtualização utilizando o XEN
www.vivaolinux.com.br/artigos/verArtigo.php?codigo=5349

Equipe
  • Aline Santos
  • Igor Novais
  • Monique Luiza

Pesquisa realizada por Suane S. Freitas, Iranice Carvalho da Silva Soares e José Raimundo em 2007-2

APRESENTAÇÃO

Esta página apresenta uma abordagem sobre diversas soluções de virtualização, mostrando os principais tipos de soluções e como este processo pode oferecer para o usuário capacidades de segurança e vantagens com relação ao compartilhamento de recursos de hardware e software.
Antes mesmo de entrarmos no tema, estaremos fazendo uma rápida abordagem do que é virtualização, bem como suas formas de implementação.

INTRODUÇÃO

A virtualização surgiu para aprimorar a performance dos computadores de hoje e do futuro. Segundo a enciclopédia Wikipédia virtualização é definido como “o modo de apresentação ou agrupamento de um subconjunto lógico de recursos computacionais de modo que possam ser alcançados resultados e benefícios como se o sistema estivesse sobre a configuração nativa”. É uma nova tecnologia que vem se tornando realidade dentro de muitas empresas e organizações, auxiliando no desempenho dos processos. Com a virtualização é possível reduzir os custos de implementação e aumentar de forma significativa a eficácia dos dispositivos, além de permitir um melhor gerenciamento dos servidores e da alocação de recursos de hardware, permitindo que os mesmos aplicativos rodem numa mesma máquina ou servidor.
Segundo Marcelo Okana (Coordenador dos cursos de tecnologia de banco de dados e redes de computadores da Faculdade Módulo), “o princípio da virtualização é a execução de várias máquinas virtuais em um único hardware”.
Uma máquina virtual é uma máquina que nos dá a possibilidade de ter diversos sistemas operacionais trabalhando em paralelo, cada um com vários programas em execução simultaneamente. Consiste num ambiente operacional completo que se comporta como se fosse um computador independente.

FORMAS DE IMPLEMENTAÇÃO DE VIRTUALIZAÇÃO

Existem duas formas pelas quais a virtualização pode ser implementada: por software e por hardware.

VIRTUALIZAÇÃO POR SOFTWARE

As máquinas virtuais são criadas e gerenciadas por um software de virtualização chamado também de servidor de virtualização. Nesta forma de implementação cada máquina tem seu próprio sistema operacional e compartilha os recursos necessários para processá-lo. Cada uma rodará em uma partição exclusiva, com o sistema operacional principal.
Para que se entenda melhor esta forma de implementação é imprescindível conhecer os dois principais componentes existentes num ambiente computacional virtual: o hospedeiro e o convidado.
O hospedeiro é o sistema operacional nativo que é instalado e executado diretamente sobre o hardware físico ou servidor. Já o convidado é o sistema operacional que é executado sobre o hospedeiro, constituindo-se numa máquina virtual.
Qualquer computador que espera hospedar uma ou mais máquinas virtuais deve possuir recursos não apenas para o hospedeiro como também para acomodar os sistemas convidados.
Este tipo de implementação ajuda bastante na redução de recursos de hardware, todavia, pode implicar em limitações no que diz respeito ao uso de memória, discos, placas e outros dispositivos, e isso pode trazer sérios problemas, pois se o S.O. principal falhar, os sistemas convidados também serão afetados, além disso, fica difícil controlar e limitar o uso do processador entre as máquinas virtuais.

VIRTUALIZAÇÃO POR HARDWARE

Esta implementação será realizada através do hardware, isto é, não existirá um software que implementará a virtualização. Neste caso, cada máquina virtual é isolada, implementada por meio de alocação de processadores, de memória, de discos e de interfaces. Isto se constitui numa grande vantagem comparada com a virtualização via software, pois, se uma máquina virtual apresentar problemas, as demais não serão afetadas, por estarem todas isoladas e implementadas com características próprias.
O custo é o que se constitui numa grande desvantagem para este tipo de implementação, pois exige um hardware mais específico, isto é, servidores com características mais sofisticadas como redundância de memórias, processador de serviços e outras.

Paravirtualização

A paravirtualização é um método que consiste em apresentar ao SO que estásendo emulado uma arquitetura virtual que é similar, mas não idêntica à arquitetura física real [XenSource, 2007]. Essa solução aumenta a performance das máquinas virtuais que a utilizam [Barham. 2003]. Entretanto, são necessárias modificações nos sistemas operacionais convidados, que executam na atual arquitetura x86. Ainda assim, as mudanças necessárias nos sistemas convidados devem ser passíveis de implementação, o que já é implementado nas versões mais recentes do Linux(versão 2.6). Recentemente, a Microsoft anunciou uma parceria com a companhia XenSource para que versões futuras do Windows Server, através de virtualização, possam executar distribuições Linux que utilizam o Xen como VMM [Microsoft, 2006]. Isso mostra que a modificação do sistema operacional convidado é possível de ser feita com um esforço não tão grande a ponto de impactar substancialmente na evolução de SOs já consolidados no mercado.

Recompilação Dinâmica

Essa técnica, que é conhecida também pelo nome de tradução dinâmica (dynamic translation), consiste em traduzir durante a execução de um programa as instruções de um formato para outro. Uma aplicação da técnica é vista em compiladores JIT (just-in-time), que traduzem de uma linguagem bytecode para código nativo da CPU onde o compilador executa. A recompilação (ou tradução) é feita em 7 passos, descritos em [Tijms, 2000]. Em um primeiro momento, o código binário é escaneado para que seja identificado uma seqüência de bits correspondente à seção de código do programa em execução. Logo após esse passo, os bits agrupados anteriormente são divididos em instruções, juntamente com os parâmetros delas. Então, as instruções são transformadas para uma representação mais próxima da máquina nativa. Um código em uma linguagem de alto nível é gerado a partir da representação anterior, código esse que é compilado e reescrito na linguagem nativa. Assim, temos uma seqüência de bits agora executável no hardware nativo.
Emuladores como o QEMU utilizam essa técnica para aumentar seu desempenho [Bellard, 2005]. O VMware Workstation também utiliza essa técnica, recompilando apenas parte do código, uma vez que boa parte dele pode executar nativamente (a arquitetura de hardware subjacente é a mesma da máquina virtual). No VMware Workstation apenas instruções que não podem ser executadas diretamente são recompiladas [Laureano, 2006].
Um projeto da antiga DEC (DIGITAL FX! 32) [Chernoff and Hookway, 1997] utilizava um misto de emulação e tradução binária para executar aplicações 32-bit que executavam no sistema operacional Windows NT 4.0 em computadores Alpha.
Enquanto as aplicações executavam, o emulador capturava um perfil de execução, que, por sua vez, era usado pelo tradutor binário para traduzir as partes das aplicações que haviam executado em código nativo do processador Alpha. Outro exemplo de recompilação dinâmica ocorre em interpretadores de linguagens, como no interpretador Sun "Hotspot" da linguagem Java [Sun, 1999]. As instruções geradas para a máquina virtual e armazenadas nos bytecodes das classes Java são traduzidas e executadas no hardware subjacente.
executável no hardware nativo.
Emuladores como o QEMU utilizam essa técnica para aumentar seu desempenho [Bellard, 2005]. O VMware Workstation também utiliza essa técnica, recompilando apenas parte do código, uma vez que boa parte dele pode executar nativamente (a arquitetura de hardware subjacente é a mesma da máquina virtual). No VMware Workstation apenas instruções que não podem ser executadas diretamente são recompiladas [Laureano, 2006].
Enquanto as aplicações executavam, o emulador capturava um perfil de execução, que, por sua vez, era usado pelo tradutor binário para traduzir as partes das aplicações que haviam executado em código nativo do processador Alpha.
Outro exemplo de recompilação dinâmica ocorre em interpretadores de linguagens, como no interpretador Sun "Hotspot" da linguagem Java [Sun, 1999]. As instruções geradas para a máquina virtual e armazenadas nos bytecodes das classes Java são traduzidas e executadas no hardware subjacente.

SOLUÇÕES PARA VIRTUALIZAÇÃO

Atualmente no mercado, existem diversos soluções que atuam no processo de virtualização.Tais produtos oferecem às organizações uma tecnologia segura e confiável, que podem ser disponibilizadas com os melhores recursos. As principais soluções de virtualização que estão disponíveis no mercado são: VMware, Virtual PC, Virtual Server e Xen.

VMware
É uma solução que interage em diferentes sistemas operacionais usando várias versões do Linux e Windows. Ele tenta sempre que possível converter os comandos usados pelo sistema dentro da máquina virtual em comandos que o sistema host entenda e execute diretamente. Segundo o Guia do Hardwares – Máquinas Virtuais: Uma Introdução, “o VMware interpreta e converte instruções o mínimo que possível”.
A principal vantagem, conforme o site Sisnema, é o suporte integral de recursos sem a necessidade de criar código de tradução complexo, pesados ao desempenho da máquina.
Ainda conforme o site Sisnema, as principais características, é que o VMware:
• suporta sistemas operando na tecnologia 64 bits, incluindo Windows e Linux;
• monitora e controla a infra-estrutura em console central de gerência;
• tem suporte a processadores SMP virtual.

Virtual PC
É uma solução da Microsoft desenvolvida principalmente para atender a clientes de Windows XP. Com o virtual PC, os equipamentos podem ser configurados mais rapidamente o que se constitui numa grande vantagem. Ele permite que o usuário troque de sistema operacional sem que precise realizar logins ou logouts.
As principais características, conforme o site Sisnema, são:
• Suporte para até 4 adaptadores de rede por máquina;
• Configurações baseadas na linguagem XML;
• Suporte para até 4GB de memória;
• Possui Virtual Machine Additions, que oferece alto nível de integração entre os sistemas;
• Roda a maior parte dos sistemas x86 sem a necessidade de drivers customizados.

Virtual Server
É outra solução da Microsoft que visa melhorar o máximo a performance e aumentar a eficiência das grandes empresas. Alem disso, reduz os custos totais e otimiza os recursos de hardware proporcionando um melhor desempenho à rede.
As principais características, conforme o site Sisnema, são:
• Suporte para conectividade permitindo cluster de todas as máquinas virtuais que está executando sobre um host;
• Suporta a tecnologia de 64 bits;
• Melhorias no Myper-threading, suporte para F6 Disk e funcionalidades pré-compactador de disco virtual.

Xen
É uma solução para virtualização de servidores oferecida pelo Linux. O Xen se caracteriza por ser uma versão de código aberto (opensource) para virtualização. Segundo o site Sisnema, o Xen utiliza o conceito de paravirtualização. As requisições feitas pelas máquinas virtuais são organizadas e repassadas para o sistema operacional hóspedeiro. Permite a interação com uma quantidade maior de servidores virtuais em um só computador, que é acessível a todos que querem participar deste mundo virtual.
Segundo o site de notícias da Sun, há vários motivos para se considerar o Xen, pois:
• É um programa de código aberto;
• É relativamente leve, pois não consome quantidade grande de recursos de CPU;
• Atinge um alto grau de isolamento entre as tecnologias de máquinas virtuais;
• Suporta combinações variadas de sistemas operacionais e versões, além de executar dinamicamente uma instância do sistema operacional sem afetar o serviço.

RELAÇÃO DA PESQUISA COM A DISCIPLINA COMPILADORES

Dentro da pesquisa realizada, a relação que observamos com a disciplina Compiladores foi a respeito do VMware, pois o mesmo tem como função interpretar e converter instruções o mínimo possível. O VMware tenta sempre que possível converter os comandos usados pelo sistema dentro da máquina virtual em comandos que o sistema host entenda execute e diretamente. Como por exemplo, se o Windows dentro da máquina virtual tenta trocar alguma coisa na placa de som, o VMware simplesmente pega os dados e toca na placa de som "real" do micro, como se fosse outro programa qualquer.
Isso nos faz lembrar o conceito e funcionamento de um compilador, que tem como função traduzir e converter uma determinada entrada (no caso do VMware, os comandos usados pelo sistema)em uma saída que está pronta para ser executada (o VMware transformará as instruções de entrada em comandos que o sistema host entenda e execute posteriormente).

REFERÊNCIAS

WIKIPÉDIA,Enciclopédia.Virtualização.Disponível em: <http://pt.wikipédia.org/wiki/Virtualiza%C3%Ca7%C3%A3o>

OKANA, Marcelo.Virtualização de Servidores.Disponível em: <http://www.fiap.com.br/portal/int_cda_conteudo.jsp?ID=129535 >

HP. O que é virtualização e o que ela pode fazer por minha empresa.Disponível em:
<http://www.compaq.com.br/pyme/solucoes/apr_solucoes_01.html>

MORIMOTO, Carlos. Máquinas Virtuais: Uma Introdução. Disponível em:
<http://www.guiadohardware.net/dicas/maquinas-virtuais-introducao.html>

SISNEMA. Virtualização: Você não pode ficar de fora! Disponível em:
<http://sisnema.com.br/Materias/idmat017392.htm >

SISNEMA. VMware. Disponível em:
<http://sisnema.com.br/Materias/idmat017395.htm>

SISNEMA. Virtual Server. Disponível em:
<http://sisnema.com.br/Materias/idmat017398.htm>

SISNEMA. Virtual PC Disponível em:
<http://sisnema.com.br/Materias/idmat017397.htm>

SISNEMA. Xen. Disponível em:
<http://sisnema.com.br/Materias/idmat017399.htm>

SUN. Site de Notícias. Disponível em:
<http://www.sun.com/emrkt/innercircle/newsletter/brazil/0706vass.html>

DESENVOLVEDORES

Este site foi desenvolvido por Suane de Sousa Freitas, Iranice Carvalho e José Raimundo, alunos do 5º semestre do curso de Bacharelado em Informática da Universidade Católica do Salvador.

CONTATOS
• Suane S. Freitas -> e-mail: moc.liamtoh|6002_satierfenaus#moc.liamtoh|6002_satierfenaus
Cel.: (71)8842-6903
• Iranice Carvalho da Silva Soares -> e-mail: moc.liamtoh|seraossci#moc.liamtoh|seraossci
Cel.: (71)8190-1260
• José Raimundo -> e-mail: moc.liamtoh|avlisrj_rj#moc.liamtoh|avlisrj_rj
Cel.: (71)9111-8471

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License