Architecture et composants Hyper-V

1. Introduction

Source : https://technet.microsoft.com/fr-fr/windows-server-docs/compute/hyper-v/hyper-v-technology-overview

Hyper-V est un produit de virtualisation de matériel de Microsoft. Il vous permet de créer et exécuter une version logicielle d’un ordinateur, appelé une machine virtuelle.Chaque ordinateur virtuel agit comme un ordinateur complet, avec un système d’exploitation et des programmes en cours d’exécution. Lorsque vous avez besoin de ressources informatiques, des ordinateurs virtuels vous offrent davantage de flexibilité, du gain de temps et de l’argent. C'est aussi un moyen plus efficace d’utiliser du matériel.

Hyper-V exécute chaque ordinateur virtuel dans son propre espace isolé, ce qui signifie que vous pouvez exécuter plusieurs machines virtuelles sur le même matériel en même temps.Vous souhaiterez peut-être faire cela afin d’éviter des problèmes tels que d’un blocage d’affecter les autres charges de travail, ou pour permettre à l’accès des personnes, des groupes ou des services accordé aux différents systèmes.

1.1. Capacité de Hyper-V

  • Établir ou développer un environnement de nuage privé.

  • Utiliser plus efficacement votre matériel.

  • Améliorer la continuité des activités.

  • Établir ou développer une infrastructure VDI (Virtual Desktop Infrastructure).

  • Rendre le développement et le test plus efficace.

1.2. Hyper-V et autres produits de virtualisation

Hyper-V dans Windows et Windows Server remplace les produits de virtualisation matérielle plus anciens, tels que Microsoft Virtual PC, Microsoft Virtual Server et Windows Virtual PC. Hyper-V offre des fonctionnalités de mise en réseau, de performances, de stockage et de sécurité non disponibles dans ces produits plus anciens.

La plupart des applications de virtualisation tiers qui nécessitent les mêmes fonctionnalités de processeur et Hyper-V ne sont pas compatibles. C’est parce que les fonctionnalités de processeur, extensions de virtualisation matérielle, appelées sont conçues ne pas être partagées. Pour plus d’informations, voir des applications de virtualisation ne fonctionnent pas conjointement avec Hyper-V, Device Guard et des informations d’identification Guard.

2. Hyperviseurs

2.1. Hyperviseur de type 2

Un hyperviseur de type 2 est un logiciel (généralement assez lourd) qui tourne sur l'OS hôte. Ce logiciel permet de lancer un ou plusieurs OS invités. La machine virtualise ou/et émule le matériel pour les OS invités, ces derniers croient dialoguer directement avec ledit matériel.

Hyperviseur de type 2

Cette solution est très comparable à un émulateur, et parfois même confondue. Cependant l’unité centrale de calcul, c'est-à-dire le microprocesseur, la mémoire de travail (ram) ainsi que la mémoire de stockage (via un fichier) sont directement accessibles aux machines virtuelles, alors que sur un émulateur l’unité centrale est simulée, les performances en sont donc considérablement réduites par rapport à la virtualisation.

Cette solution isole bien les OS invités, mais elle a un coût en performance. Ce coût peut être très élevé si le processeur doit être émulé, comme cela est le cas dans l’émulation. En échange cette solution permet de faire cohabiter plusieurs OS hétérogènes sur une même machine grâce à une isolation complète. Les échanges entre les machines se font via les canaux standards de communication entre systèmes d’exploitation (TCP/IP et autres protocoles réseau), un tampon d’échange permet d’émuler des cartes réseaux virtuelles sur une seule carte réseau réelle.

Exemples :

2.2. Hyperviseur de type 1

Un hyperviseur de type 1 est comme un noyau système très léger et optimisé pour gérer les accès des noyaux d'OS invités à l'architecture matérielle sous-jacente. Si les OS invités fonctionnent en ayant conscience d'être virtualisés et sont optimisés pour ce fait, on parle alors de paravirtualisation.

Hyperviseur de type 1

Actuellement l’hyperviseur est la méthode de virtualisation d'infrastructure la plus performante mais elle a pour inconvénient d’être contraignante et onéreuse, bien que permettant plus de flexibilité dans le cas de la virtualisation d'un centre de traitement de données.

Exemples :

2.3. Architecture Hyper-V

Source : https://fr.wikipedia.org/wiki/Hyper-V

Hyper-V utilise le concept des partitions pour isoler les machines virtuelles. Une partition est une unité logique d’isolation, supportée par l’hyperviseur, dans laquelle s’exécute un système d'exploitation. L’instance de l’hyperviseur requiert la présence d’au moins une partition parente qui exécute Windows Server. La couche de virtualisation s’exécute dans la partition parente et dispose d’un accès direct aux périphériques matériels. La partition parente crée ensuite des partitions enfants dans lesquelles s’exécutent les systèmes d’exploitation. Elle appelle pour cela l’Interface de programmation Hypercall.

Une partition virtuelle n’a pas accès au microprocesseur. En fait, elle a une vue virtuelle du microprocesseur et s’exécute dans le Guest Virtual Address, qui en fonction de la configuration de l’hyperviseur, peut ou pas être la totalité de l’espace d’adressage virtuel. Un hyperviseur peut choisir de n’exposer qu’un sous ensemble des processeurs à chaque partition. L’hyperviseur intercepte les interruptions du processeur et les redirige vers les partitions respectives en utilisant la logique de Synthetic Interrupt Controller (SynIC). Hyper-V utilise les accélérations matérielles pour traduire les adresses entre les différents espaces d’adressage virtuels des partitions enfants en utilisant IOMMU (I/O Memory Management Unit) (en) qui fonctionne indépendamment du gestionnaire de la mémoire vive utilisé par le processeur.

Les partitions enfants n’ont pas accès directement aux ressources matérielles, bien qu’elles aient une vue virtuelle de celles-ci en termes de périphériques virtuels. Chaque appel a un périphérique virtuel est redirigé via le VMBus vers son périphérique correspondant dans la partition parent qui prendra en charge la requête. Le VMBus est un canal logique qui permet la communication entre les partitions. La réponse est aussi redirigée par le VMBus. Si les périphériques de la partition parent sont aussi des périphériques virtuels, ils seront redirigés jusqu’à ce qu’ils atteignent la partition parent ou ils pourront accéder aux périphériques physiques. La partition parent exécute une Virtualization Service Provider (VSP) qui est connecté au VMBus et intercepte les requêtes des périphériques des partitions enfants. Les périphériques virtuels des partitions enfants exécutent un Virtualization Service Consumer (VSC) qui redirige les requêtes vers les VSP de la partition parent via le VMBus. Ce processus est complètement transparent pour le système d’exploitation de la partition enfant.

Les périphériques virtuels peuvent aussi tirer parti d’une fonctionnalité de Windows Server Virtualization, appelée Enlightened I/O, pour le stockage, le réseau et le sous-système graphique. Enlightened I/O permet à des protocoles de haut niveau, comme SCSI, de bénéficier directement des avantages du VMBus en détournant tout accès à la couche émulée d’un périphérique. Cela rend les communications plus efficaces mais nécessite que le système d’exploitation de la partition enfant supporte les fonctions Enlightened I/O.

3. Hyper-V requirements and processor features

Source : https://technet.microsoft.com/fr-fr/windows-server-docs/compute/hyper-v/system-requirements-for-hyper-v-on-windows

Quel que soient les fonctionnalités Hyper-V que vous souhaitez utiliser, vous devez avoir sur l'hôte :

  • Un processeur 64 bits avec la traduction d’adresses de second niveau (SLAT).Pour installer les composants de virtualisation Hyper-V comme l’hyperviseur Windows, le processeur doit avoir SLAT activé. Toutefois, il n’est pas nécessaire d’installer les outils de gestion Hyper-V, comme la connexion de l’ordinateur virtuel (VMConnect), le Gestionnaire Hyper-V et les applets de commande Hyper-V pour Windows PowerShell. Voir « vérifier les exigences de Hyper-V, » ci-dessous, pour savoir si votre processeur a SLAT.

  • Extensions du Mode de surveillance de machine Virtuelle

  • Mémoire vive - _au moins_4 Go de RAM. Plus de mémoire est préférable.Vous aurez besoin de suffisamment de mémoire pour l’hôte et tous les ordinateurs virtuels que vous souhaitez exécuter en même temps.

  • Prise en charge de la virtualisation activée dans le BIOS ou UEFI :

    • Virtualisation à assistance matérielle.Elle est disponible dans les processeurs qui incluent une option de virtualisation - en particulier avec la technologie de virtualisation Intel (VT Intel) ou la technologie AMD Virtualization (AMD-V).

    • La prévention de l’exécution des données par le matériel doit être disponible et activée.Pour les systèmes Intel, ceci est le bit XD (bit de verrouillage).Pour les systèmes AMD, ceci est le bit NX (aucun bit de non-exécution).

4. Procédure de vérification de la configuration requise pour Hyper-V

Ouvrez Windows PowerShell ou d’une invite de commandes et tapez :

Systeminfo.exe

Accédez à la section Configuration requise pour Hyper-V pour consulter le rapport.

Notes

  • Memory configuration

  • Non-Uniform Memory Access (NUMA) architecture

  • Dynamic memory

  • Dynamic memory configuration

  • Memory buffer

  • Memory weight

  • Smart Paging

5. Exercice : Installation de Windows Server

  1. Installation de Windows Server

Note : http://www.settlersoman.com/how-to-installrun-hyper-v-host-as-a-vmnested-on-vsphere-5-or-6/