VIRTUALIZAÇÃO POR CAMADA DE ABSTRAÇÃO DO HARDWARE
4.1 -Introdução
Neste conceito de virtualização existe uma camada de software entre o sistema operacional e o hardware, provendo a intercomunicação entre as partes. Esse software é o monitor de máquinas virtuais e geralmente pode suportar vários sistemas operacionais executando ao mesmo tempo com bom desempenho, característica que deve ser de fundamental importância para construção de softwares deste tipo.
A arquitetura dos monitores de máquinas virtuais que virtualizam por abstração do hardware pode ser de dois tipos principais, são elas: a virtualização total e a paravirtualização. Esse tipo de virtualização está sendo muito difundido nos últimos anos e é atualmente a forma mais utilizada para virtualizar sistemas operacionais. Abaixo os principais softwares classificados nesse tipo de virtualização.
4.2 VMware
O software de virtualização mais difundido atualmente é o VMware, que é um software proprietário que provê uma camada de virtualização que suporta vários sistemas operacionais sobre um hardware. A empresa desenvolvedora do VMware, a VMware Inc. é uma subsidiária da EMC Corporation e localiza-se em Palo Alto, Califórnia, Estados Unidos. As principais versões do VMware são: VMware ESX Server, VMware Server, VMware Workstation e VMware Player.
4.2.1 VMware ESX Server
É a versão comercial do produto VMware voltado para o uso em servidores de grande porte. Ele é uma máquina virtual do tipo I e possui um sistema operacional próprio e otimizado para gerenciar máquinas virtuais, cada máquina virtual representa um sistema completo, com processador, memória, disco e BIOS, provendo um completo ambiente de execução, o que faz com que os sistemas operacionais convidados não precisem ser modificados. Basicamente o sistema virtualiza quatro recursos chaves do servidor: CPU, memória, disco e rede.
4.2.1.1 Virtualização de CPU – Os processadores baseados na arquitetura x86 não possuem suporte nativo a virtualização, e por isso não conseguem capturar certas instruções de modo privilegiado originadas de um sistema operacional executando em uma máquina virtual. Desse modo, não podem contar totalmente com a técnica de captura e emulação dos sistemas tradicionais.
Para suprir esta dificuldade, o VMware usa adicionalmente a técnica de tradução binária. Com isso, o VMware examina todas as instruções antes de serem executadas, substituindo as instruções que não são causam traps por outras. Devido a isso, a técnica causa uma perda de desempenho, contudo há instruções que executam diretamente entre a máquina virtual e a CPU.
É importante salientar que o VMware dá a cada sistema operacional executando em sua máquina virtual, a sua própria CPU virtual, ou seja, os sistemas operacionais “acreditam” possuírem uma CPU dedicada. Cada CPU virtual possui seus próprios
registradores e estruturas de controle.
4.2.1.2 Virtualização de memória – Como o ESX virtualiza a memória das máquinas virtuais por meio da tradução de
endereços, o monitor de máquinas virtuais faz um mapeamento da página de memória do sistema operacional convidado para a página de memória física na subcamada do hardware. Cada máquina virtual tem sua própria página de memória em que o sistema operacional convidado “vê” iniciando do endereço 0. O monitor intercepta instruções da máquina virtual que manipula estruturas de gerenciamento de memória do sistema operacional convidado, de modo que a unidade de gerenciamento da memória (Memory Management Unit – MMU) do processador não seja atualizada diretamente pelo sistema convidado. O ESX mapeia a página da máquina virtual em uma tabela de página sombra (Shadow Page Table – SPT) que é atualizado com o da máquina física.
Quando o sistema operacional convidado estabelece um mapeamento novo em sua tabela de página, o monitor detecta a modificação e atualiza a respectiva entrada na tabela de página sombra, que aponta para a localização real da página de memória no hardware. Quando a máquina virtual está executando, o hardware usa diretamente a tabela de página sombra para a tradução do endereço, o que permite que os acessos de memória normais na máquina virtual executem sem adicionar overhead de traduções de endereços, uma vez que as tabelas de página da sombra já estão definidas.
4.2.1.3 Virtualização de disco – O ESX Server implementa seu próprio sistema de arquivos chamado de VMFS. O VMFS é um sistema de arquivos distribuído que permite que múltiplos hosts acessem arquivos concorrentemente no mesmo volume VMFS. A principal vantagem é que o VMFS é otimizado para operações E/S com arquivos grandes como é o caso dos arquivos que contém as imagens de máquinas virtuais. Outro ponto importante é o armazenamento em áreas de disco que podem ser compartilhadas para acesso entre os sistemas operacionais convidados executando em diferentes máquinas virtuais.
4.2.1.4 Virtualização de rede – No ESX Server é possível definir até quatro adaptadores de rede virtual. Cada adaptador
tem seu próprio endereço MAC e endereço IP. As interfaces de rede virtual das múltiplas máquinas virtuais podem ser conectadas a um switch virtual. Cada switch pode ser configurado sem qualquer conexão ou a uma LAN física por meio dos adaptadores de rede da máquina anfitriã. Esses switches são chamados de “VMnets” e são abstrações que garantem conexões com velocidade entre as máquinas virtuais, o sistema anfitrião e a LAN física.
Continuar a ler