Mode de compatibilité du processeur dans Hyper-V

S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2, Hyper-V Server 2019, Hyper-V Server 2016, Hyper-V Server 2012 R2

Hyper-V offre le mode de compatibilité du processeur, une fonctionnalité qui a été introduite pour la première fois dans Windows Server 2008 R2. Le mode de compatibilité du processeur vous permet de déplacer un ordinateur virtuel en cours d’exécution ou d’enregistrer l’état entre les hôtes de virtualisation qui utilisent différentes générations de processeurs. Cette fonctionnalité désactive de nombreuses fonctionnalités de processeur modernes, ce qui peut affecter les performances de la machine virtuelle. Ce document fournit des détails sur le mode de compatibilité du processeur pour Hyper-V.

À quel moment utiliser le mode de compatibilité du processeur

Le mode de compatibilité du processeur s’applique à tout scénario de mobilité de machine virtuelle qui n’implique pas de redémarrage de la machine virtuelle. Il s’agit notamment de la migration dynamique, de l’enregistrement et de la restauration, et des points de contrôle de production des machines virtuelles.

Les machines virtuelles ne peuvent pas être migrées en direct, enregistrées et restaurées sur des hôtes de virtualisation qui utilisent des processeurs de différents fabricants. Par exemple, vous ne pouvez pas déplacer des machines virtuelles en cours d’exécution ou des machines virtuelles d’état enregistré à partir d’un ordinateur hôte avec processeurs Intel vers un ordinateur hôte avec processeurs AMD. Si vous devez déplacer une machine virtuelle dans ce cas, la machine virtuelle doit d’abord être arrêtée, puis redémarrée sur le nouvel hôte.

Si vous envisagez de déplacer des machines virtuelles sans les redémarrer, entre des hôtes de virtualisation qui peuvent utiliser différentes générations de processeurs, vous devez activer le mode de compatibilité du processeur. Par exemple, vous activez le mode de compatibilité du processeur pour vous assurer que vous pouvez migrer en direct vos machines virtuelles entre des nœuds de cluster qui utilisent différents ensembles de fonctionnalités de processeur. Vous pouvez également utiliser le mode de compatibilité du processeur pour enregistrer une machine virtuelle et la restaurer sur un ordinateur hôte qui a un ensemble de fonctionnalités de processeur différent de celui de l’hôte source.

Pourquoi le mode de compatibilité du processeur est-il nécessaire

Les extensions ISA (Instruction Set Architecture) sont des optimisations et des fonctionnalités introduites par les fabricants de processeurs. Ces fonctionnalités améliorent souvent les performances ou la sécurité en utilisant du matériel spécialisé pour une tâche particulière. Par exemple, de nombreuses applications multimédias utilisent des fonctionnalités de processeur afin d’accélérer les calculs de vecteur. Ces fonctionnalités sont rarement requises pour l’exécution des applications, elles améliorent simplement les performances.

L’ensemble des fonctionnalités disponibles sur un processeur varie en fonction de sa marque, de son modèle et de son âge. Les systèmes d’exploitation et les logiciels d’application énumèrent généralement l’ensemble des fonctionnalités du processeur du système défini lors de son premier lancement. Le logiciel ne s’attend pas à ce que les fonctionnalités du processeur soient modifiées au cours de sa durée de vie, et cela ne peut jamais se produire lors de l’exécution sur un ordinateur physique, car les fonctionnalités du processeur sont statiques.

Toutefois, les fonctionnalités de mobilité des machines virtuelles permettent de migrer une machine virtuelle en cours d’exécution vers un nouvel hôte de virtualisation. Si le logiciel de la machine virtuelle a détecté et a commencé à utiliser une fonctionnalité de processeur particulière, et que la machine virtuelle est déplacée vers un nouvel hôte de virtualisation qui ne dispose pas de cette fonctionnalité, le logiciel risque d’échouer. Cela peut entraîner un incident au niveau de la machine virtuelle.

Pour éviter ces défaillances, Hyper-V effectue des vérifications préliminaires chaque fois qu’une opération de migration dynamique de machine virtuelle ou d’enregistrement/de restauration est lancée. Ces vérifications comparent l’ensemble des fonctionnalités du processeur disponibles pour la machine virtuelle sur l’hôte source par rapport à l’ensemble des fonctionnalités disponibles sur l’ordinateur hôte cible. Si ces ensembles de fonctionnalités ne correspondent pas, l’opération de migration ou de restauration est annulée.

Fonctionnement du mode de compatibilité du processeur

Le mode de compatibilité du processeur garantit que l’ensemble des fonctionnalités de processeur disponibles pour les machines virtuelles sur un ensemble disparate d’hôtes de virtualisation correspond en ne présentant qu’un ensemble limité de fonctionnalités de processeur à la machine virtuelle. Le mode de compatibilité du processeur masque les ensembles d’instructions de processeur plus récents, généralement ceux introduits au cours des 10 dernières années. Toutefois, le fait de masquer ces fonctionnalités signifie que le système d’exploitation invité et le logiciel d’application ne peuvent pas tirer parti de ces améliorations apportées au jeu d’instructions du processeur.

Pour obtenir la liste complète des fonctionnalités masquées pour le mode de compatibilité du processeur, reportez-vous à la section 5.2.11 de la Spécification fonctionnelle générale de l’hyperviseur.

Processor compatibility mode hides newer processor instructions sets for smooth VM migrations between host servers

Ramifications de l’utilisation du mode de compatibilité du processeur

Il est difficile de quantifier les effets globaux sur les performances du mode de compatibilité du processeur. La perte de performances dépend principalement de la charge de travail en cours d’exécution sur la machine virtuelle. Certaines charges de travail ne sont pas affectées, tandis que d’autres présentent une différence notable. Les logiciels qui reposent fortement sur les optimisations matérielles (comme le chiffrement, la compression ou les calculs à virgule flottante intensifs) seront les plus affectés.

L’exemple suivant décrit comment le chiffrement AES est affecté par l’utilisation du mode de compatibilité du processeur, et il y en a beaucoup d’autres. Si vous êtes préoccupé par l’impact sur les performances du mode de compatibilité du processeur, il est préférable de comparer les performances de la charge de travail de machine virtuelle avec le mode de compatibilité du processeur activé et désactivé.

Exemple : chiffrement AES

Un exemple d’opération qui est affectée par le mode de compatibilité du processeur est le chiffrement AES (une forme courante de chiffrement). De nombreux processeurs Intel et AMD récents incluent une extension ISA qui accélère AES à l’aide du matériel. Intel affirme que cette optimisation offre accélère les performances de 2 à 3 fois, et jusqu’à 10 fois pour certaines implémentations. (Pour plus d’informations, consultez Instructions Advanced Encryption Standard d’Intel.)

Les applications qui chiffrent ou déchiffrent une grande quantité de données bénéficient de cette fonctionnalité de processeur. Par conséquent, sa désactivation en activant le mode de compatibilité du processeur aura un impact sur les performances de ces opérations spécifiques.

Utiliser le mode de compatibilité du processeur

Il existe des concepts importants à comprendre lors de l’utilisation du mode de compatibilité du processeur dans Hyper-V :

  • Les machines virtuelles en cours d’exécution ne peuvent être migrées qu’entre des hôtes de virtualisation qui utilisent des processeurs du même fabricant.

  • Vous devez arrêter la machine virtuelle avant de pouvoir activer ou désactiver le mode de compatibilité du processeur.

  • Le mode de compatibilité du processeur n’est pas nécessaire pour les déplacements de machine virtuelle qui impliquent un arrêt et un redémarrage de la machine virtuelle.

  • Chaque fois qu’une machine virtuelle est redémarrée, le système d’exploitation invité énumère les compatibilités du processeur disponibles sur le nouvel ordinateur hôte.

Notes

Dans Windows Server, Microsoft recommande d’activer le mode de compatibilité du processeur uniquement avant les scénarios de migration de machine virtuelle, puis de le désactiver une fois la migration terminée.

Activer le mode de compatibilité du processeur avec le gestionnaire Hyper-V

Pour activer le mode de compatibilité du processeur pour une machine virtuelle à l’aide du Gestionnaire Hyper-V :

  1. Arrêtez la machine virtuelle.

  2. Cliquez sur Démarrer, pointez sur Outils d'administration, puis cliquez sur Gestionnaire Hyper-V.

  3. Sélectionnez le serveur exécutant Hyper-V et la machine virtuelle souhaitée.

  4. Si la machine virtuelle est en cours d’exécution, vous devez l’arrêter pour activer le paramètre de mode de compatibilité du processeur.

  5. Dans le volet Action, cliquez sur Paramètres, puis sur Processeur.

  6. Développez Processeur, puis cliquez sur Compatibilité.

  7. Sélectionnez Migrer vers un ordinateur physique avec un autre processeur, puis cliquez sur OK.

  8. Redémarrez la machine virtuelle.

Désactiver le mode de compatibilité du processeur avec le gestionnaire Hyper-V

Pour désactiver le mode de compatibilité du processeur pour une machine virtuelle à l’aide du Gestionnaire Hyper-V :

  1. Arrêtez la machine virtuelle.

  2. Cliquez sur Démarrer, pointez sur Outils d'administration, puis cliquez sur Gestionnaire Hyper-V.

  3. Sélectionnez le serveur exécutant Hyper-V et la machine virtuelle souhaitée.

  4. Si la machine virtuelle est en cours d’exécution, vous devez l’arrêter pour désactiver le paramètre de mode de compatibilité du processeur.

  5. Dans le volet Action, cliquez sur Paramètres, puis sur Processeur.

  6. Développez Processeur, puis cliquez sur Compatibilité.

  7. Décochez Migrer vers un ordinateur physique avec un autre processeur, puis cliquez sur OK.

  8. Redémarrez la machine virtuelle.

Activer le mode de compatibilité du processeur avec PowerShell

Pour activer le mode de compatibilité du processeur pour une machine virtuelle à l’aide de PowerShell, arrêtez la machine virtuelle et exécutez la cmdlet Set-VMProcessor, en définissant CompatibilityForMigrationEnabled sur $true :

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $true

Ensuite, redémarrez la machine virtuelle.

Avertissement

Vous pourriez voir des paramètres supplémentaires pour Set-VMProcessor destinés à être utilisés avec Azure Stack HCI. N’essayez pas de les utiliser avec Windows Server, ou vous obtiendrez un message d’erreur. Le CompatibilityForMigrationMode par défaut et le seul disponible pour Windows Server est MinimumFeatureSet. Découvrez le mode de compatibilité du processeur dynamique dans Azure Stack HCI.

Désactiver le mode de compatibilité du processeur avec PowerShell

Pour désactiver le mode de compatibilité du processeur pour une machine virtuelle à l’aide de PowerShell, arrêtez la machine virtuelle et exécutez la cmdlet Set-VMProcessor, en définissant CompatibilityForMigrationEnabled sur $false :

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $false

Ensuite, redémarrez la machine virtuelle.

Étapes suivantes

Voir aussi :