Arquitetura do Hyper-V

Hyper-V é uma tecnologia de virtualização baseada em hipervisor para determinadas versões x64 do Windows. O hipervisor é essencial para a virtualização. Ele é a plataforma de virtualização específica por processador que permite que vários sistemas operacionais isolados compartilhem uma única plataforma de hardware.

O Hyper-V oferece suporte ao isolamento em termos de uma partição. Uma partição é uma unidade lógica de isolamento, com suporte do hipervisor, na qual os sistemas operacionais são executados. O hipervisor da Microsoft deve ter pelo menos uma partição pai ou raiz executando o Windows. A pilha de gerenciamento de virtualização é executada na partição pai e tem acesso direto aos dispositivos de hardware. A partição raiz cria as partições filho que hospedam os sistemas operacionais convidados. A partição raiz cria partições filho usando a API (interface de programação de aplicativo) de hiperchamada.

As partições não têm acesso ao processador físico, nem controlam as interrupções do processador. Em vez disso, elas têm uma exibição virtual do processador e são executadas em uma região de endereço de memória virtual que é particular para cada partição convidada. O hipervisor controla as interrupções no processador e as redireciona para a respectiva partição. O Hyper-V também pode acelerar o hardware da conversão de endereço entre vários espaços de endereço virtual convidados usando uma IOMMU (Input Output Memory Management Unit) que opera independentemente do hardware de gerenciamento de memória usado pela CPU. A IOMMU é usada para mapear novamente os endereços da memória física para os endereços que são usados pelas partições filho.

As partições filho também não têm acesso direto a outros recursos de hardware e são apresentadas a uma exibição virtual dos recursos, como dispositivos virtuais (VDevs). As solicitações para os dispositivos virtuais são redirecionadas por meio do VMBus ou do hipervisor para os dispositivos na partição pai, que controla as solicitações. O VMBus é um canal lógico de comunicação entre as partições. A partição pai hospeda os VSPs (Provedores de Serviços de Virtualização) que se comunicam pelo VMBus para controlar as solicitações de acesso de dispositivo das partições filho. As partições filho hospedam os VSCs (Virtualization Service Consumers) que redirecionam as solicitações de dispositivo para os VSPs na partição pai via VMBus. Todo esse processo é transparente para o sistema operacional convidado.

Os dispositivos virtuais também podem tirar proveito de um recurso do Windows Server Virtualization, chamado Enlightened I/O, para o armazenamento, as redes, os elementos gráficos e os subsistemas de entrada. O Enlightened I/O é uma implementação com reconhecimento de virtualização especializada de protocolos de comunicação de alto nível (por exemplo, SCSI) que utilizam o VMBus diretamente, ignorando qualquer camada de emulação de dispositivo. Isso torna a comunicação mais eficiente, mas exige um convidado capacitado que reconheça o hipervisor e o VMBus. O recurso Enlightened I/O do Hyper-V e um kernel que reconheça o hipervisor são fornecidos por meio de instalação dos serviços de integração do Hyper-V. Os componentes de integração, que incluem drivers do VSC (Virtual Server Client), também estão disponíveis para outros sistemas operacionais cliente. O Hyper-V requer um processador que inclua a virtualização assistida por hardware, como os fornecidos com a tecnologia Intel VT ou AMD-V (AMD Virtualization).

O diagrama a seguir fornece uma visão geral de alto nível da arquitetura de um ambiente do Hyper-V.

Diagram of the Hyper V High Level Architecture, showing the four partitions and Hypervisor sections.

Glossário

  • APIC – Controlador de Interrupção Programável Avançado – um dispositivo que permite que os níveis de prioridade sejam atribuídos às suas saídas de interrupção.
  • Partição filho – a partição que hospeda um sistema operacional convidado – todo o acesso à memória física e aos dispositivos por uma partição filho é fornecido por meio do VMBus (Barramento da Máquina Virtual) ou do hipervisor.
  • Hiperchamada – interface para a comunicação com o hipervisor – a interface de hiperchamada acomoda o acesso às otimizações fornecidas pelo hipervisor.
  • Hipervisor – uma camada de software que fica entre o hardware e um ou mais sistemas operacionais. Seu trabalho principal é fornecer ambientes de execução isolados chamados partições. O hipervisor controla e arbitra o acesso ao hardware subjacente.
  • IC – Componente de Integração – o componente que permite que as partições filho se comuniquem com outras partições e com o hipervisor.
  • Pilha de E/S – pilha de entrada/saída
  • MSR – Memory Service Routine
  • Partição raiz – às vezes chamada de partição pai. Gerencia funções no nível do computador, como drivers de dispositivo, gerenciamento de energia e adição/remoção automática de dispositivos. A partição raiz (ou pai) é a única partição que tem acesso direto à memória física e aos dispositivos.
  • VID – Virtualization Infrastructure Driver – fornece serviços de gerenciamento de partição, serviços de gerenciamento de processador virtual e serviços de gerenciamento de memória para partições.
  • VMBus – mecanismo de comunicação baseado em canais usado para a comunicação entre partições e a enumeração de dispositivos em sistemas com várias partições virtualizadas ativas. O VMBus é instalado com serviços de integração do Hyper-V.
  • VMMS – Serviço Gerenciamento de Máquinas Virtuais – é responsável por gerenciar o estado de todas as máquinas virtuais nas partições filho.
  • VMWP – Processo de Trabalho de Máquina Virtual – um componente de modo de usuário da pilha de virtualização. O processo de trabalho fornece serviços de gerenciamento de máquina virtual a partir da instância do Windows Server 2008 na partição pai para os sistemas operacionais convidados das partições filho. O Serviço de Gerenciamento de Máquina Virtual gera um processo de trabalho separado para cada máquina virtual em execução.
  • VSC – Virtualization Service Client – uma instância de dispositivo sintético que reside em uma partição filho. Os VSCs utilizam recursos de hardware que são fornecidos pelos VSPs (Virtualization Service Providers) na partição pai. Eles se comunicam com os VSPs correspondentes na partição pai pelo VMBus para atender às solicitações de E/S das partições filho de um dispositivo.
  • VSP – Provedor de Serviços de Virtualização – reside na partição raiz e fornece suporte a dispositivos sintéticos para as partições filho pelo VMBus (Barramento de Máquina Virtual).
  • WinHv – Windows Hypervisor Interface Library - a WinHv é basicamente uma ponte entre os drivers de um sistema operacional particionado e o hipervisor, que permite que os drivers chamem o hipervisor usando convenções de chamada padrão do Windows
  • WMI – o Serviço Gerenciamento de Máquinas Virtuais expõe um conjunto de APIs baseadas em WMI (Instrumentação de Gerenciamento do Windows) para gerenciar e controlar máquinas virtuais.