vCenter Server exécute un certain nombre de contrôles de compatibilité avant de permettre la migration des machines virtuelles en cours d'exécution ou suspendues afin de s'assurer que la machine virtuelle est compatible avec l'hôte cible.
vMotion transfère l'état de fonctionnement d'une machine virtuelle entre des systèmes sous-jacents d'ESXi. Une migration en direct réussie exige que les processeurs de l'hôte cible puissent fournir à la machine virtuelle, après la migration, des instructions identiques à celles que fournissaient les processeurs de l'hôte source avant la migration. Vitesse d'horloge, taille du cache, et le nombre de noyaux peuvent différer entre la source et les processeurs cibles. Cependant, les processeurs doivent provenir de la même catégorie de fournisseur (AMD ou Intel) pour être compatible avec vMotion.
Les migrations des machines virtuelles interrompues exigent également que la machine virtuelle puisse reprendre l'exécution sur l'hôte cible en utilisant des instructions équivalentes.
Lorsque vous lancez une migration avec vMotion ou la migration d’une machine virtuelle interrompue, l’assistant Migrer la machine virtuelle vérifie l’hôte de destination pour garantir la compatibilité. Si des problèmes de compatibilité empêchent la migration, l'assistant affiche un message d'erreur.
L'instruction du CPU mise à la disposition du système d'exploitation et des applications en cours d'exécution sur une machine virtuelle est déterminée au moment où une machine virtuelle est allumée. Cet ensemble de fonctionnalités du CPU est déterminé en fonction des éléments suivants:
- Famille et modèle du CPU de l'hôte
- Paramètres dans le BIOS qui peuvent désactiver les fonctionnalités du CPU
- Version d'ESXi en cours d'exécution sur l'hôte
- Paramètre de compatibilité de la machine virtuelle
- Système d'exploitation invité de la machine virtuelle
Pour améliorer la compatibilité du CPU entre des hôtes ayant des ensembles de fonctionnalités différents, certaines fonctionnalités du CPU des hôtes peuvent être cachées à la machine virtuelle en plaçant l'hôte dans un cluster de Compatibilité améliorée de vMotion (EVC). Pour plus d'informations sur EVC, consultez À propos d'EVC (Enhanced vMotion Compatibility).
Les fonctionnalités de CPU des hôtes peuvent également être cachées à la machine virtuelle en appliquant un masque de compatibilité personnalisé à la machine virtuelle, mais cela n'est pas recommandé. VMware, en partenariat avec les fournisseurs de CPU et de matériel, fonctionne pour maintenir la compatibilité de vMotion sur la gamme la plus large possible de processeurs. Pour des informations supplémentaires, recherchez dans la base de connaissances de VMwareFAQ sur la compatibilité de vMotion et de CPU.
Scénarios de compatibilité vSphere vMotion et CPU
Sans l'utilisation d'EVC, si les contrôles de compatibilité de CPU de vCenter Server détectent toute incohérence entre les fonctionnalités de niveau utilisateur des hôtes, la migration est bloquée, que la machine virtuelle elle-même ait accès ou non à ces fonctionnalités. Cependant, une incohérence entre les fonctionnalités au niveau du noyau des hôtes bloque la migration uniquement lorsque la machine virtuelle a accès à une fonctionnalité dont l'hôte cible ne dispose pas.
Les contrôles de compatibilité de CPU de vCenter Server comparent les fonctionnalités CPU disponibles sur l'hôte source, le sous-ensemble de fonctions auxquelles la machine virtuelle a accès et les fonctionnalités disponibles sur l'hôte cible.
Les fonctionnalités au niveau utilisateur sont des instructions non privilégiées utilisées par des applications de machine virtuelle. Celles-ci incluent SSE3, SSSE3, SSE4.1, SSE4.2 et AES. Comme il s'agit d'instructions au niveau utilisateur qui ignorent la couche de virtualisation, ces instructions peuvent entraîner une instabilité des applications en cas de non-correspondance après une migration avec vMotion.
Les fonctionnalités au niveau du noyau sont des instructions privilégiées utilisées par le système d'exploitation de la machine virtuelle. Celles-ci incluent les fonctions de sécurité No eXecute (NX) d''AMD et eXecute Disable (XD) d'Intel.
Lorsque vous essayez de migrer une machine virtuelle avec vMotion, l'un des scénarios suivants s'applique :
- L'ensemble des fonctionnalités de l'hôte de destination correspond à l'ensemble des fonctionnalités de CPU de la machine virtuelle. Les exigences de compatibilité de CPU sont respectées et la migration avec vMotion s'effectue.
- L'ensemble de fonctionnalités de CPU de la machine virtuelle inclut des fonctionnalités non prises en charge par l'hôte de destination. Les exigences de compatibilité de CPU ne sont pas respectées et la migration avec vMotion ne peut pas s'effectuer.
Note : EVC permet de s'affranchir d'une telle incompatibilité en fournissant un ensemble de fonctionnalités de « ligne de base » défini pour toutes les machines virtuelles en cours d'exécution dans un cluster. Cet ensemble de fonctionnalités de ligne de base masque aux machines virtuelles les différences entre les CPU des hôtes en cluster.
- L'hôte de destination prend en charge l'ensemble de fonctionnalités de la machine virtuelle, ainsi que des fonctionnalités supplémentaires de niveau utilisateur (telles que SSE4.1) introuvables dans l'ensemble de fonctionnalités de la machine virtuelle. Les exigences de compatibilité de CPU ne sont pas respectées et la migration avec vMotion ne peut pas s'effectuer.
Note : Ce type d'incompatibilité est ignoré pour les migrations entre les hôtes de clusters d'EVC.
- L'hôte de destination prend en charge l'ensemble de fonctionnalités de la machine virtuelle, ainsi que des fonctionnalités supplémentaires au niveau du noyau (telles que NX ou XD) introuvables dans l'ensemble de fonctionnalités de la machine virtuelle. Les exigences de compatibilité de CPU sont respectées et la migration avec vMotion s'effectue. La machine virtuelle conserve son ensemble de fonctionnalités de CPU pendant qu'elle est sous tension, ce qui lui permet de remigrer librement vers l'hôte initial. Cependant, si la machine virtuelle est redémarrée, elle acquiert un nouvel ensemble de fonctionnalités à partir du nouvel hôte. Ce processus peut entraîner l'incompatibilité de vMotion si vous tentez de remigrer la machine virtuelle vers l'hôte d'origine.
Compatibilité des familles de CPU et des ensembles de fonctionnalités avec vSphere vMotion
Les processeurs sont regroupés par familles. Les processeurs d'une famille donnée présentent généralement des ensembles de caractéristiques similaires.
Les fournisseurs de processeurs définissent des familles de processeurs. On peut distinguer différentes versions de processeur dans une même famille en comparant le modèle des processeurs, le niveau de progression et les fonctions étendues. Dans certains cas, les fournisseurs ont apporté des modifications d'architecture importantes au sein d'une même famille de processeurs, telles que les instructions SSSE3 et SSE4.1, et des fonctionnalités de sécurité de CPU NX/XD.
Par défaut, vCenter Server identifie les incohérences au niveau des fonctionnalités accessibles aux applications comme incompatibles pour garantir la stabilité des machines virtuelles après des migrations avec vMotion.
Les caractéristiques du CPU du matériel serveur indiquent habituellement si les CPU contiennent ou non des fonctionnalités qui affectent la compatibilité avec vMotion.
Pour plus d'informations sur l'identification des processeurs d'Intel et leurs fonctions, voir la note d'application 485 : Identification de processeur d'Intel® et instruction de CPUID, fournie par Intel. Pour plus d'informations sur l'identification des processeurs d'AMD et leurs fonctions, voir la spécification de CPUID, fournie par AMD.
Masques de compatibilité de CPU et vSphere vMotion
Les masques de compatibilité de CPU permettent une personnalisation des fonctionnalités du CPU visibles par une machine virtuelle.
vCenter Server compare les fonctionnalités du CPU mises à la disposition d'une machine virtuelle aux fonctionnalités du CPU de l'hôte de destination afin de déterminer s'il faut autoriser ou non des migrations avec vMotion.
Pour garantir la stabilité des machines virtuelles après une migration avec vMotion, VMware définit les valeurs par défaut pour les masques de compatibilité de CPU.
Lorsqu’il faut choisir entre compatibilité du CPU ou fonctionnalités du système d'exploitation invité (telles que NX/XD), VMware fournit des cases à cocher pour configurer chaque machine virtuelle. Les options de configuration sont accessibles via l’option Paramètres avancés du CPU de la machine virtuelle. Pour plus de contrôle sur la visibilité des fonctionnalités du CPU, vous pouvez modifier le masque de compatibilité du CPU de la machine virtuelle au niveau binaire.
Les masques de compatibilité de CPU ne peuvent pas empêcher des machines virtuelles d'accéder aux fonctions masquées de CPU dans toutes les circonstances. Dans certaines circonstances, les applications peuvent détecter et utiliser les fonctions masquées même si elles sont cachées du système d'exploitation hôte. En outre, sur n'importe quel hôte, les applications qui utilisent des méthodes de détection des fonctionnalités de CPU non prises en charge plutôt que d'utiliser l'instruction de CPUID peuvent accéder aux fonctions masquées. Les applications actives des machines virtuelles qui utilisent des méthodes de détection non prises en charge de CPU risquent de rencontrer des problèmes de stabilité une fois la migration réalisée.
Compatibilité améliorée de vMotion
Vous pouvez utiliser la fonction de compatibilité améliorée (EVC) de vMotion pour garantir la compatibilité de vMotion pour les hôtes d'un cluster. EVC s'assure que tous les hôtes d'un cluster présentent les mêmes caractéristiques de CPU sur les machines virtuelles, même si les CPU virtuelles sont différentes sur les hôtes. L'utilisation d'EVC permet d'éviter l'échec des migrations avec vMotion en cas d'incompatibilité de CPU.
Configurez l'EVC à partir de la boîte de dialogue des paramètres du cluster. Quand vous configurez l'EVC, vous configurez l'ensemble des processeurs hôtes du cluster afin de présenter l'ensemble des caractéristiques d'un processeur de base. On appelle cet ensemble de caractéristiques de fonction de base le mode d'EVC. EVC utilise la technologie de migration étendue par AMD-V (pour les hôtes AMD) et la technologie Intel FlexMigration (pour des hôtes Intel) pour masquer les fonctionnalités du processeur de sorte que les hôtes puissent présenter l'ensemble des fonctionnalités des processeurs de génération précédente. Le mode EVC doit être équivalent à, ou un sous-ensemble, de l'ensemble des caractéristiques de l'hôte avec le plus petit ensemble de caractéristiques du cluster.
L'EVC masque seulement les caractéristiques du processeur qui affectent la compatibilité de vMotion. Activer l'EVC n'empêche pas une machine virtuelle de profiter des vitesses plus rapides du processeur, de nombres accrus de cœurs de CPU ou du support de virtualisation du matériel qui pourrait être disponible sur des hôtes plus récents.
L'EVC ne peut en aucun cas empêcher des machines virtuelles d'accéder aux fonctionnalités cachées de CPU. Les applications qui ne suivent pas les méthodes CPU de détection de fonction recommandées par le fournisseur pourraient se comporter inopinément dans un environnement EVC. VMware EVC ne peut pas être pris en charge par les applications qui ne suivent pas les recommandations du fournisseur de CPU. Pour plus d'informations concernant la création d'applications au comportement correct, recherchez dans la base de connaissances de VMware, l'article Détection et utilisation des nouvelles fonctionnalités dans les CPU.
À partir de vSphere 7.0 Update 1, vous pouvez tirer parti de la fonctionnalité EVC pour vSGA (Virtual Shared Graphics Acceleration). vSGA permet à plusieurs machines virtuelles de partager les GPU installés sur les hôtes ESXi et d'exploiter les capacités d'accélération graphique 3D.
Conditions requises pour la compatibilité améliorée de vMotion pour les hôtes
Pour améliorer la compatibilité du CPU entre des hôtes ayant divers ensembles de fonctions du CPU, certaines fonctionnalités du CPU des hôtes peuvent être « cachées » aux machines virtuelles en plaçant l'hôte dans un cluster Compatibilité améliorée de vMotion (EVC). Les hôtes dans un cluster EVC et les hôtes que vous ajoutez à un cluster existant EVC doivent satisfaire les exigences EVC.
Mettez hors tension toutes les machines virtuelles du cluster qui s'exécutent sur des hôtes avec un ensemble de fonctionnalités plus grand que le mode EVC que vous avez l'intention d'activer. Vous pouvez également migrer ces machines virtuelles hors du cluster.
Tous les hôtes du cluster doivent répondre aux exigences suivantes.
Configuration requise |
Description |
---|---|
Version d'ESXi prise en charge |
ESXi6.7 ou version ultérieure. |
vCenter Server |
L'hôte doit être connecté à un système vCenter Server. |
CPU |
Un seul fournisseur, AMD ou Intel. |
Fonctions avancées du processeur activées |
Activez ces caractéristiques du CPU dans le BIOS si elles sont disponibles:
Note :
Les fournisseurs de matériel désactivent parfois des fonctionnalités spécifiques de CPU dans le BIOS par défaut. Vous pouvez rencontrer des problèmes en activant EVC, car les contrôles de compatibilité d'EVC détectent l'absence de fonctionnalités qui devraient être présentes pour un CPU particulier. Si vous ne pouvez pas activer l'EVC sur un système avec un processeur compatible, assurez-vous que toutes les fonctions sont activées dans le BIOS. |
CPU pris en charge par l'EVC que vous souhaitez activer |
Pour vérifier la prise en charge d'EVC pour un processeur ou un modèle de serveur spécifique, reportez-vous au Guide de compatibilité de VMware sur http://www.vmware.com/resources/compatibility/search.php. |
Configuré pour vMotion |
Reportez-vous à la section Configuration de l'application pour vSphere vMotion. |
Activation de vSphere EVC sur un cluster existant
Découvrez comment activer la compatibilité améliorée de vMotion (EVC) pour vSphere sur un cluster existant pour garantir la compatibilité de CPU vMotion entre les hôtes du cluster. Les autres fonctions du cluster telles que vSphere DRS et vSphere HA sont entièrement compatibles avec l'EVC.
Conditions préalables
Procédure
Modification du mode vSphere EVC pour votre cluster
Découvrez comment configurer vSphere EVC pour garantir que les migrations de machines virtuelles entre hôtes dans le cluster n'échouent pas à cause des incompatibilités de caractéristiques du CPU.
Plusieurs approches EVC sont disponibles pour assurer la compatibilité du CPU :
Si tous les hôtes d'un cluster sont compatibles avec un mode EVC CPU ou Graphique (vSGA) plus récent, vous pouvez changer le mode EVC CPU ou Graphique (vSGA) d'un cluster EVC existant.
Vous pouvez activer EVC pour un cluster pour lequel EVC n'est pas activé.
Vous pouvez augmenter le mode EVC pour exposer davantage de fonctionnalités du processeur.
Vous pouvez abaisser le mode EVC pour cacher caractéristiques de CPU et augmenter la compatibilité.
Conditions préalables
Vérifiez que tous les hôtes du cluster possèdent des CPU prises en charge pour le mode EVC à activer. Consultez l'article KB 1003212 de la base de connaissances pour découvrir la liste des CPU pris en charge.
Vérifiez que tous les hôtes du cluster soient connectés et inscrits sur vCenter Server. Le cluster ne peut pas contenir un hôte déconnecté.
Les machines virtuelles doivent être dans les états d'alimentation suivants, selon que vous augmentez ou réduisez le mode EVC.
Mode EVC
Action d'alimentation de machine virtuelle
Augmenter le mode EVC à une ligne de base du CPU avec plus de fonctionnalités.
Les machines virtuelles en fonctionnement peuvent rester sous tension. Les nouvelles fonctionnalités du mode EVC ne sont pas disponibles pour les machines virtuelles jusqu'à ce qu'elles soient mises hors tension et remises sous tension. Un cycle d'alimentation complet est nécessaire. Le redémarrage du système d'exploitation client ou l'interruption et la reprise de la machine virtuelle ne suffit pas.
Info-bulle :Vous pouvez configurer une machine virtuelle pour qu'elle effectue un cycle d'alimentation au redémarrage de son système d'exploitation invité en définissant le paramètre de machine virtuelle vmx.reboot.powerCycle sur TRUE. Lorsque la machine virtuelle est remise sous tension, ce paramètre de configuration est supprimé. Pour modifier les paramètres de configuration de la machine virtuelle, vous pouvez utiliser VMware Host Client. Reportez-vous à la rubrique Modifier les paramètres du fichier de configuration dans VMware Host Client du guide Gestion individuelle des hôtes vSphere - VMware Host Client. Consultez cet article du Blog VMware vSphere pour obtenir des informations sur la définition de ce paramètre sur un groupe de machines virtuelles à l'aide de VMware PowerCLI.
Abaissez le mode EVC à une ligne de base de CPU avec moins de fonctionnalités.
Mettez hors tension toutes les machines virtuelles sous tension fonctionnant en un mode EVC plus élevé que celui que vous avez l'intention d'activer.
Note :Lorsque vous effectuez un snapshot d'une machine virtuelle dans un cluster EVC, gardez à l'esprit les cas d'utilisation suivants :
- Si vous effectuez un snapshot d'une machine virtuelle en cours d'exécution avant une rétrogradation VMware Enhanced vMotion Compatibility, une tentative de restauration de ce snapshot après la rétrogradation VMware Enhanced vMotion Compatibility échoue et la machine virtuelle est laissée dans un état interrompu.
- Si vous prenez un snapshot d'une machine virtuelle avant une mise à niveau d'EVC. Vous pouvez revenir à ce snapshot avant ou après la mise à niveau d'EVC.
Pour vérifier le mode EVC pour les machines virtuelles, consultez Déterminer le mode EVC de votre machine virtuelle.
Procédure
Déterminer le mode EVC de votre machine virtuelle
Le mode EVC d'une machine virtuelle détermine les fonctions de CPU et les fonctionnalités graphiques dont un hôte doit disposer afin que la machine virtuelle puisse migrer vers cet hôte et se mettre sous tension. Le mode EVC d'une machine virtuelle est indépendant du mode EVC que vous configurez pour le cluster dans lequel la machine virtuelle s'exécute.
Le mode EVC d'une machine virtuelle est déterminé lorsque la machine virtuelle est mise sous tension. À la mise sous tension, la machine virtuelle détermine également le mode EVC du cluster dans lequel elle s'exécute. Si le mode EVC d'une machine virtuelle active ou le cluster EVC complet est augmenté, la machine virtuelle ne change pas de mode EVC avant d'avoir été mise hors tension puis à nouveau sous tension. Cela signifie que la machine virtuelle n'utilise aucune fonction de CPU proposée par le nouveau mode EVC tant qu'elle n'a pas été mise hors tension puis à nouveau sous tension.
Par exemple, vous créez un cluster EVC qui contient des hôtes dotés de processeurs Intel et vous définissez le mode EVC sur Intel « Merom » Generation (Xeon Core 2). Lorsque vous mettez sous tension une machine virtuelle dans ce cluster, il s'exécute en mode EVC Intel « Merom » Generation (Xeon Core 2). Si le mode EVC est augmenté pour devenir Intel « Penryn » Generation (Xeon 45 nm Core 2), la machine virtuelle conserve le mode inférieur EVC Intel « Merom » Generation (Xeon Core 2). Pour utiliser l'ensemble de fonctions du mode EVC supérieur, comme SSE4.1, la machine virtuelle doit être mise hors tension et remise sous tension.
Procédure
Migration vMotion et hôtes ESXi avec processeurs AMD sans 3DNow!
Si des hôtes d'un cluster vSphere ont différentes générations de processeurs AMD, certains avec des ensembles d'instructions 3DNow! et d'autres sans, vous ne pouvez pas migrer correctement les machines virtuelles entre les hôtes. Vous devez utiliser un mode EVC ou un masque de compatibilité CPU pour cacher les instructions.
Les nouvelles générations de processeurs AMD ne comprennent pas les instructions 3DNow! du processeur. vCenter Server AMD Opteron Gen. 3 (no 3DNow!) Le mode EVC masque les instructions 3DNow! aux machines virtuelles. Vous pouvez appliquer ce mode EVC aux clusters d'EVC contenant uniquement des hôtes AMD de troisième génération. L'application de ce mode permet aux clusters de maintenir la compatibilité de vMotion avec les hôtes AMD Opteron qui ne disposent pas de 3DNow ! Instructions : Les clusters contenant des hôtes AMD Opteron de première ou deuxième génération ne peuvent être rendus compatibles avec vMotion avec les hôtes dépourvus d'instructions 3DNow!
Conditions préalables
Assurez-vous que le cluster ne contient que des hôtes dotés de processeurs AMD Opteron de troisième génération ou plus récents.
Procédure
- ♦ Activez AMD Opteron Gen. 3 (no 3DNow!) Mode EVC pour votre cluster EVC.
La procédure d'activation du mode EVC varie selon que vous créez un cluster ou activez le mode sur un cluster existant, et selon que le cluster existant contient des machines virtuelles sous tension.
Option Description Création d'un cluster Dans l'assistant Nouveau cluster, activez EVC pour les hôtes AMD et sélectionnez AMD Opteron Gen. 3 (no 3DNow!) Mode EVC. Modifier un cluster sans machines virtuelles sous tension Dans la boîte de dialogue des paramètres de cluster, modifiez les paramètres VMware EVC et sélectionnez AMD Opteron Gen. 3 (no 3DNow!) Mode EVC. Modifier un cluster avec des machines virtuelles sous tension AMD Opteron Gen. 3 (no 3DNow!) Le mode EVC ne peut être activé tant qu'il y a des machines virtuelles sous tension dans le cluster. - Mettez hors tension toutes les éventuelles machines virtuelles en fonctionnement dans le cluster, ou transférez-les hors du cluster à l'aide de vMotion.
Transférer les machines virtuelles hors du cluster avec vMotion vous permet de retarder la mise hors tension des machines virtuelles jusqu'à un moment plus commode.
- Dans la boîte de dialogue des paramètres de cluster, modifiez les paramètres VMware EVC et sélectionnez AMD Opteron Gen. 3 (no 3DNow!) Mode EVC.
- Si vous avez transféré des machines virtuelles hors du cluster, mettez-les hors tension et retransférez-les à froid les dans le cluster.
- Mettez les machines virtuelles sous tension.
- Mettez hors tension toutes les éventuelles machines virtuelles en fonctionnement dans le cluster, ou transférez-les hors du cluster à l'aide de vMotion.
Résultats
Vous pouvez maintenant ajouter au cluster des hôtes équipés de processeurs AMD sans instructions 3DNow! et préserver la compatibilité avec vMotion entre les nouveaux hôtes et les hôtes existants du cluster.
Affichage des détails des fonctionnalités de votre cluster EVC
L'ensemble de fonctions exposé par un cluster EVC correspond à l'ensemble de fonctions d'un type particulier de processeur. Les ensembles de fonctions de processeur sont décrits par un ensemble d'indicateurs de fonction que vous pouvez consulter à l'aide de l'instruction CPUID.
Vous pouvez afficher les indicateurs de fonction CPUID actuellement exposés par les hôtes dans un cluster EVC.
Procédure
Résultats
Ce panneau VMware EVC affiche les indicateurs de fonction CPUID que EVC applique aux hôtes de ce cluster. Pour plus d'informations sur les indicateurs de fonctionnalité de CPUID, reportez-vous aux sites Web d'Intel et d'AMD.