logo

Home
Aprendendo sobre os Tipos de Virtualização PDF Imprimir E-mail
Escrito por Alexander Manfrin   

Na arquitetura X86, os sistemas operacionais foram escritos para rodar diretamente sobre o hardware (bare-metal), assumindo completo controle do hardware do computador para si. Nessa arquitetura são oferecidos 4 níveis de privilégios de acesso para operações de sistemas e acesso das aplicações ao hardware, estes são conhecidos como Ring 0, 1, 2 e 3. Aplicações de usuários (user level) rodam tipicamente em Ring 3. O sistema operacional por sua vez precisa ter acesso direto à memória e ao hardware e necessita executar as instruções em nível privilegiado, nível 0.

 

Assim, a arquitetura x86 requer que a camada de virtualização esteja presente nos níveis mais privilegiados de execução e o sistema operacional espera estar em Ring 0 para criar e gerenciar os recursos oferecidos às máquinas virtuais conforme pode ser visto na figura a seguir:

Figura - Hardware sem virtualização

Três técnicas alternativas de virtualização de instruções privilegiadas na CPU estão presentes para a arquitetura x86: Virtualização Full, Paravirtualização e Hardware Assist.

 

Paravirtualização


Paravirtualização é uma técnica de virtualização de segunda geração que apresenta uma interface de software para as máquinas virtuais, que é similar, mas não idêntica ao hardware adjacente. Nesta técnica, a paravirtualização refere-se à comunicação entre o guest OS e o hypervisor para prover performance e eficiência. A paravirtualização envolve a modificação do kernel do OS virtual, a fim de substituir instruções não virtualizadas que se comunicam diretamente com a camada de virtualização (hypercalls). O hypervisor então provê interfaces de comunicação para operações críticas de kernel, como gerenciamento de memória, controle de interrupções e time keeping.

Isso faz com que a paravirtualização não suporte sistemas operacionais não modificados tais como Windows 2000/XP/Vista, tendo assim, desvantagens de compatibilidade e portabilidade.

 



Figura - Paravirtualização


O projeto Xen open source é um exemplo de paravirtualização que virtualiza o processador e memória, usando kernel modificado do Linux e virtualizando o I/O usando drivers de dispositivos customizados.


Virtualização Full


A Virtualização Full como tecnologia de primeira geração utiliza traduções binárias e é atualmente a tecnologia disponível mais estável e confiável disponível. Implementações utilizando essa técnica oferecem alta performance de virtualização para sistemas operacionais como Windows e Linux sem a necessidade de alteração do código destes sistemas.

 


Figura - Virtualização cheia

 

A Virtualização Full difere da Paravirtualização, pois o guest OS não é modificado e não sofre alteração fazendo com que todas as operações críticas e sensíveis do OS virtual, sejam capturados usando tradução binária. A proposta da paravirtualização sobre o overhead é menor, mas as vantagens da paravirtualização sobre a virtualização full podem variar de acordo com o workload.

 


Hardware Assisted

 


Os fabricantes de hardware rapidamente abraçaram a virtualização e desenvolveram novas características para simplificar as técnicas de virtualização x86. A próxima geração de hardware possui aprimoramentos que incluem as tecnologias de virtualização Intel (VT-x) e AMD (AMD-v), ambos privilegiam a execução de instruções de CPU com uma nova tecnologia que permite que a VMM rode em um novo modo root abaixo do Ring 0. Este método privilegia as chamadas sensíveis que são automaticamente capturadas pelo hypervisor, removendo a necessidade de tradução binária ou paravirtualização.

 


Figura - Virtualização assistida

 


Nesta técnica, o estado da máquina virtual é armazenado no Virtual Machine Control Structures (VT-x) para família Intel de processadores ou Virtual Machine Control Blocks (AMD-V) para processadores AMD. Essas características representam as futuras gerações de hypervisors que utilizarão os benefícios do hardware assistido para oferecer performance e confiabilidade para as máquinas virtuais.

 

Última atualização em Seg, 17 de Maio de 2010 13:38
 

Fornecido por VMworld Brazil - Tecnologia e Informação
Brasília - DF (61) 8110 2665 contato@vmworld.com.br