Máquina Virtual – Itens mais cobrados

Por: Rodrigo Borges

Caro aluno,

a virtualização é uma forma de executar um sistema operacional em cima de outro. Pode ser que o sistema operacional seja apenas uma camada simples da própria máquina virtual (como veremos que o Xen faz), mas o mais comum é ser o seu próprio sistema operacional (Windows, Linux, Unix).

Um uso muito grande de virtualização ocorre com servidores. As grandes empresas compram máquinas com muitos recursos (memória, processadores, disco) para poderem criar várias máquinas virtuais e dividir esses recursos entre essas máquinas. Assim, levantam e param as máquinas conforme a demanda, podendo atender a diversas demandas (mais máquinas de banco num momento em que processam operações batch, mais servidor web para atender algumas páginas num outro momento, mais servidor de e-mail se a demanda aumentar) e ainda conseguem economizar energia desativando as máquinas ociosas em períodos de baixa demanda e garantir  máquinas reservas para atender no lugar de alguma que venha a ter algum problema (contingência).

Um dos componentes principais dessa técnica de virtualização é o hypervisor ou monitor de máquina virtual (VMM) e sua finalidade é ser uma camada responsável pelo fornecimento de uma abstração ao sistema operacional visitante.

Em termos de concurso, A maioria das questões abordam a parte da classificação das máquinas virtuais. Por isso, irei falar a seguir sobre as características que mais são cobradas segundo as 2 classificações que abordam quase todo o assunto.

1. Espécie de virtualização (técnica)

Diz respeito a como o sistema operacional hospedado interage com o hypervisor, se percebe ou não que existe um outro sistema operacional que realmente atua com sendo o verdadeiro.

Virtualização total

O hypervisor se passa pelo hardware disponibilizando drivers genéricos, pois o sistema operacional hospedado desconhece o fato de estar sendo executado em uma máquina virtual. Deixa a mais  execução lenta do que na próxima técnica, uma vez que tem que analisar cada comando do sistema operacional hospedado e verificar se é um comando normal ou de modo núcleo. Outro problema é que o hypervisor fornece drivers genéricos dos recursos e isso não permite o uso completo do potencial de cada recurso, degradando também no desempenho deles.

Abaixo, temos uma imagem de como as aplicações do usuário e o sistema operacional trabalham e podemos ver no anel (ring) 1 que o sistema operacional convidado faz as solicitações à VMM e esta é que traduz os pedidos para ir ao hardware.

 

Fonte: [2] (GTA – UFRJ, 2020)

Para-virtualização

O sistema operacional visitante é modificado e sabe da existência de uma camada virtual abaixo dele. Com isso, ele pode usar drivers específicos e decidir o que pode ser executado diretamente por ele e o que precisa do sistema operacional hospedeiro (vmm) para executar. Irão para a vmm apenas as operações que modificam o estado do sistema, o que deixa a camada mais enxuta e o sistema bem mais rápido.

 


Fonte: [2] (GTA – UFRJ, 2020)

 

2. Posicionamento do hypervisor (arquitetura)

A caracterização relativa ao posicionamento do hypervisor indica se ele é um programa normal como muitos de nós usamos em nossas casas para rodar uma máquina virtual ou se ele é um kernel específico onde todos os sistemas operacionais que conhecemos (Windows, Linux, Unix, etc) rodarão virtualizados.

Hypervisor tipo 1(bare metal)

O hypervisor é o próprio SO, sendo o único programa em modo núcleo. Ele gerencia todas as cópias do hardware real. Podemos ver a sua configuração na imagem abaixo e o hypervisor neste caso será o Xen.

 

Fonte: [1] (GTA – UFRJ, 2020)

 

Hypervisor tipo 2 (hosted)

O hypervisor é apenas um programa de usuário sendo executado para prover funcionalidades ao sistema operacional hospedado e fazê-lo pensar que está se comunicando com o hardware diretamente. Esse é o tipo que usamos normalmente em nossas casas, onde o SO que roda sobre o hardware é o hospedeiro. Podemos ver essa configuração a seguir.


Fonte: [1] (GTA – UFRJ, 2020)

 

 

Referências Bibliográficas:

[1]Tipos de virtualização. Disponível em: <https://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2010_2/luizaugusto/tipos_arq.html >. Acesso em: 05 jun. 2020.

[2]3. Virtualização total e para-virtualização. Disponível em: <https://www.gta.ufrj.br/grad/08_1/virtual/Virtualizaototalepara-virtualizao.html >. Acesso em: 05 jun. 2020.

Rodrigo Borges

Bacharel em Ciência da Computação (PUC-Rio) 2003 Pós Graduação em Criptografia e Segurança em Redes (UFF) 2009 MBA Gerenciamento de Projetos (FGV-Rio) 2012 Aprovado e classificado nos seguintes concursos: EAOT-FAB/2006, Dataprev/2012, TRE-MT/2015, TRT-MT/2016, TRE-Pe/2017, TRE-Pr/2017, TRE-RJ/2017, STM/2018, TRT-SP, entre outros.