Architecture Hyper-V

Hyper-V est une technologie de virtualisation basée sur un hyperviseur pour certaines versions de x64 de Windows. L’hyperviseur est essentiel à la virtualisation. Cette plateforme de virtualisation spécifique du processeur permet à plusieurs systèmes d’exploitation isolés de partager une seule plateforme matérielle.

Hyper-V prend en charge l’isolation en termes de partition. Une partition est une unité logique d’isolation, prise en charge par l’hyperviseur, dans laquelle des systèmes d’exploitation s'exécutent. L’hyperviseur Microsoft doit avoir au moins une partition parente, ou racine, qui exécute Windows. La pile de gestion de la virtualisation s’exécute dans la partition parente et dispose d'un accès direct aux périphériques matériels. La partition racine crée ensuite des partitions enfants qui hébergent les systèmes d’exploitation invités. La partition racine crée des partitions enfants à l’aide de l’interface de programmation d’application (API) hypercall.

Les partitions n’ont pas accès au processeur physique, ni ne gèrent les interruptions processeur. En revanche, elles disposent d'un affichage virtuel du processeur et s’exécutent dans une région d’adresse de mémoire virtuelle qui est privée pour chaque partition invité. L’hyperviseur gère les interruptions du processeur et les redirige vers les partitions respectives. Hyper-V permet également des accélérations matérielles de la traduction d’adresses entre différents espaces d’adressage virtuels invités à l'aide d'une unité IOMMU (unité de gestion de mémoire d’entrée/sortie) qui fonctionne indépendamment du matériel de gestion de mémoire utilisé par le processeur. L'unité IOMMU permet de remapper les adresses de mémoire physique sur les adresses utilisées par les partitions enfants.

Les partitions enfants n'ont également pas d'accès direct aux autres ressources matérielles. Elles disposent d'un affichage virtuel des ressources, en tant qu'appareils virtuels (VDev). Les demandes pour des appareils virtuels sont redirigées par le VMBus ou l’hyperviseur vers les appareils de la partition parente, qui gère les demandes. Le VMBus est un canal logique qui permet la communication entre les partitions. La partition parente héberge des fournisseurs de services de virtualisation (VSP, Virtualization Service Providers) qui communiquent sur le VMBus pour gérer les demandes d’accès aux périphériques des partitions enfants. Les partitions enfants hébergent des consommateurs de services de virtualisation (VSC, Virtualization Service Consumers) qui redirigent les demandes vers les VSP de la partition parente via le VMBus. Ce processus est complètement transparent pour le système d’exploitation invité.

Les appareils virtuels peuvent également tirer parti d’une fonctionnalité de virtualisation de Windows Server, appelée Enlightened I/O, pour les sous-systèmes de stockage, de mise en réseau, de graphisme et d'entrée. Enlightened I/O est une implémentation spécialisée prenant en charge la virtualisation de protocoles de communication de haut niveau (par exemple, SCSI), qui utilisent le VMBus directement, en contournant la couche d’émulation de n’importe quel appareil. Cela améliore l’efficacité de la communication, mais nécessite un invité compatible qui prend en charge l'hyperviseur et VMBus. Hyper-V Enlightened I/O et un noyau prenant en charge l'hyperviseur sont compris dans l’installation des services d’intégration Hyper-V. Des composants d’intégration, notamment des pilotes de client serveur virtuel (VSC), sont également disponibles pour les autres systèmes d’exploitation. Hyper-V nécessite un processeur avec virtualisation assistée par le matériel, comme l'offre la technologie Intel VT ou AMD-V (AMD Virtualization).

Le schéma suivant fournit une vue d’ensemble de l’architecture d’un environnement Hyper-V.

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

Glossaire

  • APIC (Advanced Programmable Interrupt Controller) : le contrôleur d'interruption programmable avancé est un appareil qui permet d'attribuer des niveaux de priorité à ses sorties d’interruption.
  • Partition enfant : partition qui héberge un système d’exploitation invité. Tous les accès d'une partition enfant à la mémoire physique et aux appareils sont fournis par l’intermédiaire du bus VMBus ou de l’hyperviseur.
  • Hypercall : interface de communication avec l’hyperviseur. L’interface hypercall gère l’accès aux optimisations fournies par l’hyperviseur.
  • Hyperviseur : couche logicielle qui se trouve entre le matériel et un ou plusieurs systèmes d’exploitation. Son travail principal consiste à fournir des environnements d’exécution isolés appelés partitions. L’hyperviseur contrôle et régit l’accès au matériel sous-jacent.
  • IC (Integration component) : composant d'intégration qui permet aux partitions enfants de communiquer avec les autres partitions et l’hyperviseur.
  • Pile d'E/S : pile d’entrée/sortie
  • MSR (Memory Service Routine) : routine de service de mémoire
  • Partition racine : parfois appelée partition parente. Gère les fonctions au niveau de l’ordinateur telles que les pilotes de périphérique, la gestion de l’alimentation et l'ajout ou la suppression à chaud de périphérique. La partition racine (ou parente) est la seule qui a un accès direct à la mémoire physique et aux périphériques.
  • VID (Virtualization Infrastructure Driver) : pilote d’infrastructure de virtualisation qui fournit des services de gestion partition, de gestion de processeur virtuel et de gestion de la mémoire pour les partitions.
  • VMBus – mécanisme de canal de communication utilisé pour la communication entre les partitions et l’énumération des périphériques sur les systèmes à plusieurs partitions virtuelles actives. Le VMBus est installé avec les Services d’intégration Hyper-V.
  • VMMS (Virtual Machine Management Service) : service de gestion d’ordinateurs virtuels qui permet de gérer l’état de l'ensemble des ordinateurs virtuels dans les partitions enfants.
  • VMWP (Virtual Machine Worker Process) : processus de travail de l’ordinateur virtuel qui est un composant en mode utilisateur de la pile de virtualisation. Le processus de travail fournit des services de gestion d’ordinateurs virtuels à partir de l’instance de Windows Server 2008 de la partition parente pour les systèmes d’exploitation invités des partitions enfants. Le service de gestion d’ordinateurs virtuels génère un processus de travail distinct pour chaque ordinateur virtuel en cours d’exécution.
  • VSC (Virtualization Service Client) : client de service de virtualisation, instance de périphérique synthétique qui se trouve dans une partition enfant. Les VSC utilisent les ressources matérielles fournies par les fournisseurs de services de virtualisation (VSP) dans la partition parente. Ils communiquent avec le VSP correspondant dans la partition parente sur le VMBus pour répondre aux demandes d'E/S de périphérique des partitions enfant.
  • VSP (Virtualization Service Provider) : fournisseur de services de virtualisation situé dans la partition racine qui fournit aux partitions enfants la prise en charge des périphériques synthétiques sur le bus VMBus.
  • WinHv : bibliothèque d’Interface de l'hyperviseur Windows. WinHv est essentiellement un pont entre les pilotes d’un système d’exploitation partitionné et l’hyperviseur, qui permet aux pilotes d’appeler l’hyperviseur à l'aide des conventions d’appel standard de Windows
  • WMI : le service de gestion d'ordinateurs virtuels expose un ensemble d’API Windows Management Instrumentation (WMI) pour gérer et contrôler les ordinateurs virtuels.