Share via


O Passo a Passo da Virtualização - Passo 5

O assunto de hoje é um dos meus preferidos. A começar pelo nome, que impressiona: Dispositivos sintéticos!

Dentro do modelo de virtualização de servidores e estações, já discutimos a necessidade de emular os componentes de um computador. No último post, vimos até uma lista do hardware que o Virtual Server emula.

Pois bem... o Hyper-V vai além deste conceito!
Claro que por questões de compatibilidade, o Hyper-V mantém a capacidade de emular dispositivos da mesma forma que o Virtual Server o faz. Mas o uso de dispositivos sintéticos é uma grande (e bem-vinda) novidade.

Mas afinal... o que é um dispositivo sintético?

Ao contrário de dispositivos emulados, que reproduzem o mais fielmente possível o comportamento de um componente físico de hardware (não necessariamente aquele instalado no computador host), os dispositivos sintéticos são componentes "conceituais", ou seja, não são baseados em dispositivos físicos existentes no mundo real. Esse "desapego" permite implementar melhorias de performance e mais funcionalidades.

Como assim, Luciano?

Tenho que concordar que o conceito de dispositivo sintético não é tão simples, e que até agora não ajudei muito, né? Mas um nome tão "científico" merece este suspense todo, não merece? ;)

Para entender melhor os dispositivos sintéticos, vamos dar uma olhada na arquitetura do Hyper-V. Existem 3 componentes importantes: VSP (Virtualization Service Provider), VSC (Virtualization Service Client) e VMBus.

VSP - Virtualization Service Provider

O VSP roda na Partição "Parent" (aquela onde roda o Windows Server 2008 e o "virtualization stack"), e conversa diretamente com o driver do dispositivo físico instalado no computador host. Um dos serviços que o VSP fornece é a virtualização de dispositivos (sintéticos), como por exemplo, uma placa de rede virtual. Claro que para "implementar" esta placa de rede virtual (conceitual), no final das contas o VSP utilizará o driver da placa de rede física (real) do computador host para enviar pacotes pelo cabo de rede.

VSC - Virtualization Service Client

Já adivinhou, né? O VSC roda na Partição "Child" e é quem solicita serviços ao VSP. A função do VSC é "implementar" um dispositivo virtual (sintético) para a máquina virtual que está rodando nesta partição. A comunicação entre VSC e VSP se dá através do VMBus...

VMBus

VMBus é um barramento implementado em memória - e portanto de altíssima velocidade - utilizado na comunicação "entre partições" (child e parent). É através dele que VSC e VCP conversam.

Exemplo: Placa de Rede Virtual

RedeVirtual

Na figura acima, um sistema operacional guest roda em uma máquina virtual (na partição child). O VSC que roda nesta partição implementa a placa de rede virtual. Para que os dados sejam enviados fisicamente à rede, o VSC solicita serviços ao VSP através do VMBus. O VSP (que roda no host, na partição parent) interage com o driver da placa de rede física para enviar os pacotes.