Gestion des ressources du processeur hôte Hyper-V
Les contrôles de ressources du processeur hôte Hyper-V introduits dans Windows Server 2016 ou ultérieur permettent aux administrateurs Hyper-V de mieux gérer et allouer les ressources processeur du serveur hôte entre la « racine », ou partition de gestion, et les machines virtuelles invitées. En utilisant ces contrôles, les administrateurs peuvent dédier un sous-ensemble des processeurs d’un système hôte à la partition racine. Ceci peut séparer le travail effectué dans un hôte Hyper-V des charges de travail exécutées dans des machines virtuelles invitées en les exécutant sur des sous-ensembles distincts des processeurs du système.
Pour plus d’informations sur le matériel pour les hôtes Hyper-V, consultez Configuration requise pour Hyper-V sur Windows 10.
Contexte
Avant de définir des contrôles pour les ressources du processeur hôte Hyper-V, il est utile de passer en revue les principes de base de l’architecture Hyper-V. Vous trouverez un résumé général dans la section Architecture d’Hyper-V. Voici des concepts importants pour cet article :
Hyper-V crée et gère des partitions de machines virtuelles, auxquelles les ressources de calcul sont allouées et partagées, sous le contrôle de l’hyperviseur. Les partitions fournissent des limites d’isolation fortes entre toutes les machines virtuelles invitées, et entre les machines virtuelles invitées et la partition racine.
La partition racine est elle-même une partition de machine virtuelle, bien qu’elle ait des propriétés uniques et des privilèges beaucoup plus importants que les machines virtuelles invitées. La partition racine fournit les services de gestion qui contrôlent toutes les machines virtuelles invitées, assure la prise en charge des appareils virtuels pour les invités et gère toutes les E/S des appareils pour les machines virtuelles invitées. Microsoft recommande fortement de n’exécuter aucune charge de travail d’application dans une partition hôte.
Chaque processeur virtuel de la partition racine est mappé en mode 1:1 à un processeur logique sous-jacent. Un processeur virtuel hôte s’exécute toujours sur le même processeur logique sous-jacent : il n’y a pas de migration des processeurs virtuels de la partition racine.
Par défaut, les processeurs logiques sur lesquels les processeurs virtuels hôtes s’exécutent peuvent également exécuter des processeurs virtuels invités.
Un processeur virtuel invité peut être planifié par l’hyperviseur pour s’exécuter sur n’importe quel processeur logique disponible. Alors que le planificateur de l’hyperviseur prendre en compte la localisation du cache temporel, la topologie NUMA et de nombreux autres facteurs lors de la planification d’un processeur virtuel invité, le processeur virtuel peut au final être planifié sur n’importe quel processeur logique hôte.
La racine minimale ou configuration « minroot »
Les premières versions d’Hyper-V avaient une limite maximale en termes d’architecture de 64 processeurs virtuels par partition. Ceci s’appliquait à la fois à la partition racine et aux partitions d’invité. À mesure que des systèmes avec plus de 64 processeurs logiques apparaissaient sur des serveurs haute performance, Hyper-V a également fait évoluer ses limites d’échelle de l’hôte pour prendre en charge ces systèmes plus grands, en prenant en charge un hôte avec jusqu’à 320 processeurs logiques. Cependant, le dépassement de la limite de 64 processeurs virtuels par partition a présenté à ce moment-là plusieurs problématiques et a introduit des complexités qui rendaient prohibitive la prise en charge de plus de 64 processeurs virtuels par partition. Pour résoudre ce problème, Hyper-V a limité à 64 le nombre de processeurs virtuels attribués à la partition racine, même si la machine sous-jacente avait beaucoup plus de processeurs logiques disponibles. L’hyperviseur continuait à utiliser tous les processeurs logiques disponibles pour exécuter des machines virtuelles invitées, mais limitait artificiellement la partition racine à 64. Cette configuration a été appelée « racine minimale » ou « minroot ». Les tests de performances ont confirmé que, même sur des systèmes à grande échelle avec plus de 64 processeurs logiques, la racine n’avait pas besoin de plus de 64 processeurs virtuels racines pour fournir une prise en charge suffisante à un grand nombre de machines virtuelles invitées et de processeurs virtuels invités. En fait, beaucoup moins que 64 processeurs virtuels racines était souvent adéquat, en fonction bien sûr du nombre et de la taille des machines virtuelles invitées, des charges de travail spécifiques exécutées, etc.
Ce concept de « minroot » continue d’être utilisé aujourd’hui. En fait, même si Hyper-V pour Windows Server 2016 a augmenté à 512 sa limite maximale de prise en charge de l’architecture pour les processeurs logiques hôtes, la partition racine sera néanmoins toujours limitée à un maximum de 320 processeurs logiques.
Utilisation de « minroot » pour limiter et isoler les ressources de calcul de l’hôte
Avec le seuil par défaut élevé de 320 processeurs logiques dans Hyper-V pour Windows Server 2016, la configuration « minroot » sera utilisée seulement sur les très grands systèmes de serveurs. Cependant, cette fonctionnalité peut être configurée sur un seuil beaucoup plus bas par l’administrateur de l’hôte Hyper-V, et donc exploitée pour restreindre considérablement la quantité de ressources du processeur hôte disponibles pour la partition racine. Le nombre spécifique de processeurs logiques racines à utiliser doit bien sûr être choisi avec soin pour prendre en charge un nombre maximal de demandes des machines virtuelles et des charges de travail allouées à l’hôte. Cependant, des valeurs raisonnables pour le nombre de processeurs logiques hôtes peuvent être déterminées via une évaluation et une supervision minutieuses des charges de travail de production, et validées dans des environnements hors production avant un déploiement à grande échelle.
Activation et configuration de « minroot »
La configuration de « minroot » est contrôlée via des entrées BCD de l’hyperviseur. Pour activer « minroot », à partir d’une invite de commande avec des privilèges d’administrateur :
bcdedit /set hypervisorrootproc n
Où n est le nombre de processeurs virtuels racines.
Le système doit être redémarré et le nouveau nombre de processeurs racines va être conservé pendant toute la durée de vie du démarrage du système d’exploitation. La configuration de « minroot » ne peut pas être changée dynamiquement à l’exécution.
S’il existe plusieurs nœuds NUMA, chaque nœud va obtenir n/NumaNodeCount
processeurs.
Notez qu’avec plusieurs nœuds NUMA, vous devez veiller à ce que la topologie de la machine virtuelle soit telle qu’il y a suffisamment de processeurs logiques libres (c’est-à-dire des processeurs logiques sans processeurs virtuels racines) sur chaque nœud NUMA pour exécuter les processeurs virtuels du nœud NUMA de la machine virtuelle correspondante.
Vérification de la configuration « minroot »
Vous pouvez vérifier la configuration « minroot » de l’hôte en utilisant le Gestionnaire des tâches, comme illustré ci-dessous.
Quand « minroot » est active, le Gestionnaire des tâches affiche le nombre de processeurs logiques actuellement alloués à l’hôte, en plus du nombre total de processeurs logiques dans le système.