Sdílet prostřednictvím


Paravirtualização, Emulação, Bare-metal…

Há alguns dias recebi 2 perguntas pelo blog e espero respondê-las com este post. A13x e Studytech, desculpem pela demora ;)

Termos e mais termos…

No mundo da virtualização, não faltam termos técnicos: Virtualização Tipo 1, Bare Metal, ou Nativa, Paravirtualização, Dispositivos Sintéticos, Enlightments, Emulação, Virtualização “Full”, Hypervisor, Hardware-Assisted Virtualization, Binary Translation… e se procurar mais, você acha! :)

Uma coisa por vez: Hypervisor

Essa veio do Wikipedia mesmo: Um Hypervisor (ou Monitor de Máquinas Virtuais) é uma plataforma de software que permite executar múltiplos sistemas operacionais simultaneamente em uma máquina física (host). Pasme: existe desde 1960!

Tipo 1 x Tipo 2

Hypervisor Tipo 1, também chamado de nativo ou bare metal, é um software [de virtualização] que conversa diretamente com o hardware. As máquinas virtuais (guests) rodam diretamente sobre ele. O Hyper-V é um hypervisor de Tipo 1.

Já no hypervisor Tipo 2 (ou hosted), o software responsável pela virtualização roda sobre um sistema operacional normal. A máquina virtual (guest) roda sobre estas 2 camadas de software. Claro que existe uma penalização no desempenho. O Virtual Server é um hypervisor de Tipo 2.

Paravirtualização x Virtualização “Full”

Na virtualização “Full”, o hypervisor emula todo o hardware para as máquinas virtuais. O sistema operacional da máquina virtual nem percebe que está rodando em um ambiente virtualizado, e tudo o que ele precisa são os device drivers para os dispositivos que o hypervisor emula (normalmente o hypervisor emula dispositivos reais e populares, para garantir a disponibilidade de drivers). Para realizar isso, o hypervisor usa uma técnica chamada “binary translation” para executar instruções de modo kernel (ring 0) da máquina virtual, substituindo estas instruções críticas por uma seqüência de instruções que simulam o comportamento esperado no hardware virtualizado.
A grande vantagem da virtualização “Full” é a compatibilidade com qualquer sistema operacional que rode no hardware emulado (sem a necessidade de alterações).

Já com paravirtualização, o hypervisor interage de uma forma mais eficiente com o sistema que roda na máquina virtual, mas isso tem um custo: o sistema operacional precisa ser modificado para ser compatível com a paravirtualização. Caso contrário, a emulação tem que entrar em cena, penalizando a performance.

Paravirtualização não é uma coisa absoluta! Um hypervisor pode fazer uso de paravirtualização para interagir com um sistema operacional ou simplesmente com um device driver rodando numa máquina virtual. No Hyper-V, os device drivers que têm conhecimento da sua paravirtualização são chamados “enlightened” e implementam os dispositivos sintéticos (componentes conceituais que nem sempre possuem um equivalente real no mercado). Estes device drivers são instalados através dos “Integraion Components” do Hyper-V.

Hardware Assisted Virtualization

Os fabricantes de processadores desenvolveram tecnologias para “facilitar” o trabalho do hypervisor, visando dispensar a necessidade de binary translation ou de paravirtualização. Claro que os ganhos se traduzem em performance! A Intel desenvolveu o Intel-VT e a AMD, o AMD-V.

Para rodar o Hyper-V, seu processador precisa implementar uma dessas tecnologias.

Comments

  • Anonymous
    August 19, 2009
    Perfeito! Era tudo que eu precisava para melhor compreender as informações divergentes da Internet.