sexta-feira, 21 de dezembro de 2012

Virtualização


Introdução




O conceito de maquina virtual surgiu no começo dos anos 70, pela IBM com sistema operacional operando em mainframe que suportava virtualização que era: OS/370[Goldberg 1973, Goldberg and Mager 1979] . Para fornecer ao usuário um cenário mono-usuario completo com suas próprias aplicações e sistema operacionais, completamente independente dos demais ambiente usuários.

Nos anos 80 a virtualização perdeu mercado pelo custo do hardware que ficou mais barato, não era viável virtualizar ,pois os novos hardware tinha um desempenho modesto com a virtualização . Não precisar mais ter computador de grande porte para suporta várias virtualizações , então era mais viável deixar cada usuário com máquina.

Com surgimento da linguagem Java nos anos 90, permitiu novamente a idéia de virtualização  implementando agora pela empresa Vmware sobre a plataforma Java,mas a Intel não deu todo suporte a virtualização. Agora no Várias linguagens são compiladas para máquinas virtuais portáveis e os processadores mais recentes trazem um suporte nativo à virtualização.


Conceito de virtualização


A virtualização consiste na emulação de ambientes isolados, capazes de rodar diferentes sistemas operacionais dentro de uma mesma máquina, aproveitando ao máximo a capacidade do hardware, que muitas vezes fica ociosa em determinados períodos do dia, da semana ou do mês.  Esse aproveitamento é maior devido à possibilidade de fornecer ambientes de execução independentes a diferentes usuários em um mesmo equipamento físico, concomitantemente.

Além disso, esse procedimento diminui o poder dos sistemas operacionais, que, muitas vezes, restringem o uso do hardware, quanto à utilização de software. Isso acontece porque softwares normalmente só rodam sobre o sistema operacional para o qual foram projetados para rodar. Diferentes sistemas operando em uma mesma máquina aumentam a gama de softwares que podem ser utilizados sobre o mesmo hardware.

Essa técnica, muito empregada em servidores, ainda tem como vantagem oferecer uma camada de abstração dos verdadeiros recursos de uma máquina, provendo um hardware virtual para cada sistema, tornando-se também uma excelente alternativa para migração de sistemas. (Professor Otto Duarte )

   


Virtualização total e para-virtualização

Existem duas formas de implementação dos monitores de máquina virtual: a virtualização total e a para-virtualização.

A virtualização total tem por objetivo fornecer ao sistema operacional visitante uma réplica do hardware subjacente. Dessa forma, o sistema operacional visitante é executado sem modificações sobre o monitor de máquina virtual (VMM), o que traz alguns inconvenientes. O primeiro é que o número de dispositivos a serem suportados pelo VMM é extremamente elevado. Para resolver esse contratempo, as implementações da virtualização total usam dispositivos genéricos, que funcionam bem para a maioria dos dispositivos disponíveis, mas não garantem o uso da totalidade de sua capacidade. Outro inconveniente da virtualização total é o fato de o sistema operacional visitante não ter conhecimento de que está sendo executado sobre o VMM, então as instruções executadas pelo sistema operacional visitante devem ser testadas pelo VMM para que depois sejam executadas diretamente no hardware, ou executadas pelo VMM e simulada a execução para o sistema visitante.Por fim, o último inconveniente da virtualização total é o fato de ter que contornar alguns problemas gerados pela implementação dos sistemas operacionais, já que esses foram implementados para serem executados como instância única nas máquinas física, não disputando recursos com outros sistemas operacionais. Um exemplo desse último inconveniente é uso de paginação na memória virtual, pois há a disputa de recursos entre diversas instâncias de sistemas operacionais, o que acarreta em uma queda do desempenho.


Figura 2: Virtualização total na arquitetura x86.
A para-virtualização é uma alternativa à virtualização total. Nesse modelo de virtualização, o sistema operacional é modificado para chamar o VMM sempre que executar uma instrução que possa alterar o estado do sistema, uma instrução sensível. Isso acaba com a necessidade de o VMM testar instrução por instrução, o que representa um ganho significativo de desempenho. Outro ponto positivo da para-virtualização é que os dispositivos de hardware são acessados por drivers da própria máquina virtual, não necessitando mais do uso de drivers genéricos que inibiam o uso da capacidade total do dispositivo.
Embora a para-virtualização apresentasse um ganho de desempenho significativo frente à virtualização total, essa disparidade tem sido superada devido à presença de instruções de virtualização nos processadores Intel e AMD, que favorecem a virtualização total. A tecnologia de virtualização da Intel é a IVT (Intel Virtualization Technology), codinome Vanderpool. A da AMD é a AMD-V (AMD-Virtualization), codinome Pacífica. Embora tenham sido desenvolvidas para o mesmo propósito, foram desenvolvidas de maneira independentes. Por esse motivo, há alguns problemas na portabilidade de máquinas virtuais de uma arquitetura Intel para a arquitetura AMD e vice-versa.
Portanto, tendo em vista as técnicas de virtualização, a decisão de qual melhor a técnica de virtualização para um dado ambiente está intimamente ligada a qual o processador da máquina física que vai hospedar as virtuais, bem como se o processador possui ou não uma extensão no seu conjunto de instruções que suporte a virtualização.


Figura 3: Para-virtualização na arquitetura x86.

(Diogo Menezes Ferrazani Mattos)


Tipos de Processadores

  • AMD Virtualization (AMD-V ™) Tecnologia


Tecnologia AMD-V é um conjunto de extensões de hardware que lhe permitem fazer melhor uso de seus recursos, em geral, melhorando seus servidores, clientes e data centers. Os processadores AMD Opteron ™ permitem que você alcançar a consolidação tremenda com até 12 núcleos e escalabilidade de memória enorme.
Alimentar notebooks ultrafinos para servidores blade, todos os processadores AMD enviados são projetados para usar AMD-V características.

CARACTERÍSTICAS
BENEFÍCIOS

Extensões de virtualização para o conjunto de instruções x86

Permite que o software de forma mais eficiente criar máquinas virtuais para que vários sistemas operacionais e suas aplicações podem funcionar simultaneamente no mesmo computador.

Tagged TLB

Recursos de hardware que facilitam a troca eficiente entre as máquinas virtuais para a capacidade de resposta melhor aplicação.

Rapid Virtualization Indexing (RVI)
Ajuda a acelerar o desempenho de muitos aplicativos virtualizados, permitindo baseada em hardware de gerenciamento de memória da máquina virtual.

AMD-V ™ Extended Migration
Ajuda o software de virtualização com as migrações de máquinas virtuais entre todos os disponíveis AMD Opteron gerações. Para um olhar em profundidade Migração Extended, leia mais aqui .

I / O de virtualização
Permite o acesso direto do dispositivo por uma máquina virtual, ignorando o hypervisor para o desempenho de 

(AMD)

  • Intel é a IVT (Intel Virtualization Technology)
As tecnologias Intel® VT (Tecnologia de virtualização Intel®) e Intel® TXT (Intel® Trusted Execution Technology) e a arquitetura Intel® 64 exigem um sistema de computador com processador, chipset, BIOS, software e/ou sistema operacional habilitados para elas, drivers de dispositivo e aplicativos criados para esses recursos. O desempenho varia de acordo com a configuração.


Avanços no desempenho do processador estão transformando a maneira comoas organizações de TI utilizam dados de produtividade e melhorar o centro eeficiência energética.

Intel ® Xeon ® baseado em Intel ® Core ™ integrar hardware para virtualizaçãoem todos os componentes do servidor-chave, incluindo a Tecnologia de Virtualização Intel ® (Intel ® VT), ajudando as organizações de TI consolidar mais aplicativos e cargas de trabalho mais pesado em cada servidor para melhorar a confiabilidade, flexibilidade e custo total de propriedade (TCO).

Como a base da tecnologia da Intel de servidor mais avançado, microarquitetura Intel Core melhora o desempenho de virtualização através de cada parte da plataforma de servidor.

Tipos de Virtualização
  • Completa
A virtualização completa é quando utilizar toda infra-estrutura da maquina para virtualizar, isso o hardware precisar entender que estar rodando dentro de uma Virtual maquine. Sendo que não precisar modificar o sistema operacional nativo.

  • Paravirtulização
A paravirtulização consiste a emulação de uma arquitetura virtual maquine dentro de um sistema operacional, mas que não consiste em uma arquitetura física ou real.

  • Emulação
A máquina que simula um hardware completo, que esta sendo executada em um hardware totalmente diferente.