Architecture d’Hyper-V (Project Server 2007)
Dernière rubrique modifiée : 2009-03-25
Hyper-V est une technologie de virtualisation de type hyperviseur pour les éditions 64 bits du système d’exploitation Windows Server 2008. L’hyperviseur est la plateforme de virtualisation propre au processeur, qui permet à plusieurs systèmes d’exploitation isolés de partager une même 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 s’exécutent des systèmes d’exploitation. L’hyperviseur Microsoft doit avoir au moins un parent (ou partition racine), exécutant une édition 64 bits du système d’exploitation Windows Server 2008. La pile de virtualisation s’exécute dans la partition parente et a un accès direct aux périphériques matériels. La partition racine crée ensuite les partitions enfants qui hébergent les systèmes d’exploitation invités. Une partition racine crée des partitions enfants à l’aide de l’API d’hyperappel.
Les partitions n’ont pas accès au processeur physique et elles ne gèrent pas non plus les interruptions processeur. Au lieu de cela, elles ont une vue virtuelle du processeur et s’exécutent dans une zone d’adresses de la mémoire virtuelle qui est privée pour chaque partition invitée. L’hyperviseur gère les interruptions sur le processeur et les redirige vers leur partition respective. Hyper-V peut également utiliser l’accélération matérielle pour accélérer la traduction d’adresses entre les différents espaces d’adressage virtuel invités à l’aide d’une unité IOMMU (Input Output Memory Management Unit) qui fonctionne indépendamment du matériel de gestion de la mémoire utilisé par le processeur. Une unité IOMMU est utilisée pour remapper les adresses de la mémoire physique avec des adresses utilisées par les partitions enfants.
Les partitions enfants n’ont pas non plus accès aux autres ressources matérielles ; une vue virtuelle des ressources leur est présentée, où elles apparaissent sous la forme de périphériques virtuels. Les demandes effectuées auprès des périphériques virtuels sont redirigées via le VMBus ou l’hyperviseur vers les périphériques de la partition parente, qui gère ces demandes. Le VMBus est un canal de communication entre les partitions logiques. La partition parente héberge les fournisseurs de services de virtualisation qui communiquent sur le VMBus pour gérer les demandes d’accès aux périphériques émanant des partitions enfants. Les partitions enfants hébergent des consommateurs de services de virtualisation qui redirigent les demandes de périphériques vers les fournisseurs de services de virtualisation de la partition parente, via le VMBus. Ce processus est entièrement transparent pour le système d’exploitation invité.
Les périphériques virtuels peuvent aussi tirer profit d’une fonctionnalité de virtualisation de Windows Server, appelée « E/S intelligentes », pour les sous-systèmes de stockage, de mise en réseau, d’affichage et d’entrée. Les « E/S intelligentes » sont une implémentation spécialisée adaptée à la virtualisation des protocoles de communication de haut niveau (tels que SCSI), qui utilise directement le VMBus, en ignorant toutes les couches d’émulation de périphériques. Ceci rend la communication plus efficace, mais nécessite un invité intelligent, capable de reconnaître l’hyperviseur et le VMBus. Les « E/S intelligentes » d’Hyper-V et un noyau capable de reconnaître l’hyperviseur sont fournis via l’installation des services d’intégration Hyper-V. Les composants d’intégration, qui incluent les pilotes VSC (Virtual Service Client), sont aussi disponibles pour d’autres systèmes d’exploitation clients. Hyper-V requiert un processeur qui inclut l’assistance matérielle à la virtualisation, telle qu’elle est fournie avec la technologie de virtualisation Intel VT ou AMD (AMD-V).
Présentation de l’architecture d’Hyper-V
L’illustration suivante montre une représentation globale de l’architecture d’un environnement Hyper-V s’exécutant sur Windows Server 2008.
Les acronymes et les termes utilisés dans cette illustration sont décrits ci-dessous :
APIC (Advanced Programmable Interrupt Controller) : contrôleur programmable d’interruptions évolué. Périphérique qui permet l’affectation de niveaux de priorité à ses sorties d’interruption.
Partition enfant : partition qui héberge un système d’exploitation invité. Tous les accès à la mémoire et aux périphériques physiques effectués par une partition enfant sont fournis par le VMBus (Virtual Machine Bus) ou par l’hyperviseur.
Hyperappel : interface pour la communication avec l’hyperviseur. L’interface d’hyperappel permet 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. Sa tâche principale est de fournir des environnements d’exécution isolés, appelés partitions. L’hyperviseur contrôle et arbitre les accès au matériel sous-jacent.
IC (Integration Component) : composant d’intégration qui permet à des partitions enfants de communiquer avec les autres partitions et avec l’hyperviseur.
Pile d’E/S : pile d’entrées/sorties.
MSR (Memory Service Routine) : routine de service mémoire.
Partition racine : gère les fonctions de niveau ordinateur, telles que les pilotes de périphérique, la gestion de l’alimentation et l’ajout/suppression à chaud de périphériques. La partition racine (ou parente) est la seule partition à avoir un accès direct à la mémoire et aux périphériques physiques.
VID (Virtualization Infrastructure Driver) : pilote d’infrastructure de virtualisation. Fournit des services de gestion de partition, de gestion de processeur virtuel et de gestion de la mémoire pour les partitions.
VMBus : bus de machine virtuelle. Mécanisme de communication reposant sur des canaux logique ; utilisé pour la communication entre les partitions et l’énumération des périphériques sur les systèmes ayant plusieurs partitions virtualisées actives. Le VMBus est installé avec les services d’intégration Hyper-V.
VMMS (Virtual Machine Management Service) : service de gestion des ordinateurs virtuels chargé de la gestion de l’état de tous les ordinateurs virtuels des partitions enfants.
VMWP (Virtual Machine Worker Process) : processus de travail d’ordinateur virtuel. Composant du mode utilisateur de la pile de virtualisation. Le processus de travail fournit des services de gestion d’ordinateur virtuel depuis l’instance de Windows Server 2008 de la partition parente aux systèmes d’exploitation invités des partitions enfants. Ce service de gestion produit un processus de travail pour chaque ordinateur virtuel qui s’exécute.
VSC (Virtualization Service Client) : client de service de virtualisation. Instance de périphérique synthétique qui se trouve dans une partition enfant. Les clients de service de virtualisation utilisent les ressources matérielles qui sont fournies par les fournisseurs de services de virtualisation dans la partition parente. Ils communiquent avec les fournisseurs de services de virtualisation correspondants de la partition parente via le VMBus pour satisfaire les demandes d’E/S des périphériques d’une partition enfant.
VSP (Virtualization Service Provider) : fournisseur de services de virtualisation. Réside dans la partition racine et fournit une prise en charge des périphériques synthétiques aux partitions enfants via le VMBus.
WinHv : bibliothèque de l’interface de l’hyperviseur Windows. Essentiellement un pont entre les pilotes d’un système d’exploitation partitionné et l’hyperviseur, qui permet aux pilotes d’appeler l’hyperviseur en utilisant les conventions d’appel Windows standard.
WMI : le service de gestion des ordinateurs virtuels expose un ensemble d’API WMI (Windows Management Instrumentation) pour la gestion et le contrôle des ordinateurs virtuels.
Voir aussi
Concepts
Virtualisation de Project Server 2007
Déploiement de Project Server 2007 sur Hyper-V
Meilleures pratiques pour l’utilisation de Project Server 2007 sur Hyper-V
Installation et configuration de Project Server 2007 et d’Hyper-V
Coûts en ressources système d’Hyper-V (Project Server 2007)