Fonctionnement du mode EVC VMware : aperçu complet
Principe de fonctionnement du mode EVC VMware
Chaque nouvelle génération de processeurs comprend de nouveaux jeux d’instructions en plus des jeux d’instructions disponibles pour la génération de processeurs précédente. Les nouvelles fonctionnalités améliorent généralement les performances ou la sécurité des applications en cours d’exécution. Par exemple, les processeurs de la génération SkyLake disposent d’un nouveau jeu d’instructions (SGX) par rapport aux processeurs de la génération Haswell. Examinons les jeux d’instructions de ces deux générations de processeurs et explorons leurs détails.
Jeux d’instructions Haswell (2013) :
x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, VT-x, VT-d. TSX Les instructions sont désactivées via le microcode pour les processeurs Haswell en raison d’un bug, à l’exception de Haswell-EX.
Jeux d’instructions SkyLake (2017) :
x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, TSX, SGX, VT-x, VT-d.
Cela signifie que si vous sélectionnez le niveau de compatibilité Haswell dans les paramètres EVC, le jeu d’instructions SGX doit être désactivé (ou plus précisément masqué) sur les serveurs équipés de processeurs Skylake. Ainsi, tous les processeurs fonctionneront avec les mêmes jeux d’instructions. Vous disposerez ainsi d’un environnement homogène adapté à la migration de VMs par vMotion. La compatibilité vMotion uniforme est assurée en appliquant la même base de référence d’instructions CPUID pour toutes les VMs s’exécutant sur des hôtes ESXi sans processeurs uniformes. CPUID peut être considéré comme une API pour le processeur.
D’une part, les avantages du jeu d’instructions SGX sont perdus lorsque le mode EVC Haswell est activé, mais d’autre part, les performances de votre cluster existant ne sont pas réduites si vous ajoutez des hôtes équipés de processeurs plus récents au cluster. Si vous ajoutez des hôtes ESXi équipés de processeurs plus anciens au cluster existant, vous pouvez constater une réduction des performances dans certains cas particuliers.
Remarque : SGX (Software Guard Extensions) vous permet d’organiser des fragments protégés de code et de données (également appelés enclaves) afin de garantir un niveau élevé de protection des données pour les applications en cours d’exécution contre les attaques de pirates. Les développeurs qui utilisent les instructions SGX pour leurs applications peuvent protéger ces dernières contre tout accès ou modification non autorisés, même si l’application malveillante dispose de privilèges supérieurs.
Remarque : TSX (Transactional Synchronization Extensions) garantit le transfert de la majorité des tâches en cours d’exécution pour la répartition des ressources entre les cœurs du processeur au niveau matériel (le processeur lui-même). Sans la prise en charge des instructions TSX par un processeur, cette distribution est effectuée au niveau logiciel par un système d’exploitation et des applications. Si le jeu d’instructions TSX est désactivé pour votre processeur Haswell via le microcode, vous devrez peut-être définir le niveau antérieur (Ivy Bridge) pour le mode EVC.
En général, les VMs en cours d’exécution doivent être arrêtées et redémarrées pour appliquer les nouveaux paramètres du mode EVC. Si vous utilisez vCenter 4.1 ou une version ultérieure, les VMs s’exécutant sur l’hôte ESXi équipé du processeur le plus ancien ne doivent pas être arrêtées (vous pouvez les laisser en cours d’exécution). Dans ce cas, le mode EVC doit être égal à la génération du processeur le plus ancien. Les VMs s’exécutant sur des hôtes ESXi équipés de processeurs dotés de fonctionnalités CPU plus récentes doivent être arrêtées avant d’activer le mode EVC dans l’ensemble du cluster . Lorsque l’hôte ESXi est exclu d’un cluster, il continue de fonctionner avec le mode EVC désactivé.
VMware vSphere Version / CPU Compatibility for EVC
Le mode EVC requis dépend des modèles de processeur et de la version de vCenter Server. Le mode EVC de la dernière version de vCenter Server prend en charge les processeurs les plus récents. Envisagez d’utiliser les dernières versions de vCenter si vous disposez de serveurs équipés de processeurs de dernière génération. Le tableau ci-dessous indique les combinaisons de générations de processeurs Intel et de versions de vCenter qui font l’objet d’une prise en charge pour déterminer la base de référence du cluster EVC pour votre environnement.
Le mode EVC le plus approprié est déterminé par le modèle du processeur le plus ancien du serveur ESXi au sein du cluster. Il est techniquement possible de sélectionner un niveau EVC inférieur à celui du processeur le plus ancien, mais il n’y a généralement aucune raison de modifier les paramètres de cette manière. Les anciennes versions d’ESXi et de vSphere prennent en charge les nouveaux processeurs, mais la base EVC maximale est conservée au niveau des anciens processeurs qui fonctionnaient lorsque cette version de vSphere a été lancée et qui étaient considérés comme les plus récents disponibles à l’époque.
Lorsque vous modifiez le niveau du mode EVC, vous devez éteindre et rallumer les VMs en cours d’exécution pour appliquer les paramètres à ces VMs ; il ne suffit pas de redémarrer la VM.
Guide de compatibilité VMware
Vous pouvez vérifier la compatibilité de vos processeurs et le mode EVC le plus élevé disponible pour votre serveur vCenter sur le site Web de VMware. Pour vérifier la compatibilité, ouvrez la page Guide de compatibilité VMware, sélectionnez série de processeurs dans le menu déroulant (c’est-à-dire ce que vous recherchez), dans la liste Version du produitn sélectionnez votre version ESXi dans la liste, dans la liste série de processeurs maintenez le bouton Ctrl enfoncé et sélectionnez les processeurs installés sur vos hôtes ESXi (cliquez avec le bouton gauche de la souris). Une fois que vous avez sélectionné les paramètres nécessaires, cliquez sur le bouton Processeur/EVC Matrix pour afficher le tableau des modes EVC disponibles pour vos serveurs ESXi. Dans l’exemple illustré sur la capture d’écran ci-dessous, ESXi 6.5 (géré par vCenter 6.5), les processeurs Intel Xeon E3-1500-v5, Xeon E5-4600-v3 et Xeon Platinum 8100 ont été sélectionnés. Le niveau le plus élevé du mode EVC pris en charge par tous les processeurs sélectionnés est Intel Haswell Generation.
Conditions à remplir
Pour que vMotion fonctionnent correctement après l’activation du mode EVC, les conditions à remplir sont les suivantes :
- Les processeurs de tous les hôtes ESXi doivent être exclusivement Intel ou AMD.
- Les fonctionnalités de virtualisation des processeurs telles que Intel VT-x ou AMD-V doivent être activées dans l’UEFI/BIOS des hôtes ESXi.
- Les hôtes ESXi doivent être gérés par le même serveur vCenter.
- Les hôtes ESXi doivent être configurés pour utiliser vMotion.
Comment activer et configurer EVC
Après vous être familiarisé avec la théorie, passons en revue la configuration du mode EVC dans la pratique. Vous devrez peut-être éteindre votre machine virtuelle sur l’hôte VMware ESXi dont le niveau EVC doit être dégradé. Assurez-vous qu’aucune fonctionnalité du processeur n’est désactivée dans l’UEFI/BIOS afin d’éviter tout problème éventuel.
Ouvrez VMware vSphere Web Client dans votre navigateur Web en saisissant l’adresse IP de votre vCenter Server dans la barre d’adresse du navigateur. Accédez à vCenter > Hôtes et clusters et sélectionnez chaque hôte ESXi um die Konfiguration des Prozessors (Central Processing Unit) zu überprüfen. Dans l’exemple actuel, nous considérons deux hôtes exécutant ESXi 5.5 qui sont ajoutés au cluster et gérés par vCenter Server 5.5. Comme vous pouvez le voir sur la capture d’écran ci-dessous, le modèle de processeur du premier hôte ESXi est Intel Xeon E3110 et le processeur installé sur le deuxième hôte ESXi est Intel Xeon X3430.
Si des hôtes ESXi ont déjà été ajoutés au cluster, sélectionnez votre cluster (temp-cluster dans notre exemple), cliquez sur l’onglet GESTION , puis ouvrez l’onglet paramètres , sélectionnez l’onglet Configuration > VMware EVC et cliquez sur le bouton Modifier .
Maintenant, avant de sélectionner le mode EVC dans vCenter, ouvrez un nouvel onglet dans votre navigateur Web et ouvrez VMware Compatibility Guide comme indiqué ci-dessus dans cet article de blog. Dans l’exemple actuel, nous devons sélectionner ESXi 5.5, Intel Xeon série 31xx et Intel Xeon série 34xx. Après avoir cliqué sur le bouton Processeur/EVC Matrix , vous pouvez voir sur la capture d’écran que Intel Penryn Generation doit être sélectionné dans les paramètres du mode EVC.
Revenez à l’onglet de votre navigateur Web avec VMware vSphere Web Client et ouvrez les paramètres du mode EVC pour le cluster. Cliquez sur Activez EVC pour les hôtes Intel. Dans le menu déroulant du mode VMware EVC, nous devons sélectionner Génération Intel Penryn. Au bas de la fenêtre, vous devriez voir Validité réussie dans la section Compatibilité . Vous pouvez maintenant cliquer sur OK pour enregistrer les paramètres du mode EVC.
Après cela, dans la section VMware EVC, les informations indiquant que VMware EVC est activé s’affichent. Cliquez sur Détails actuels du CPUID pour développer la section contenant les détails sur les registres et les valeurs de masque.
Le mode EVC peut également être activé lors de la création d’un nouveau cluster ; VMware recommande cette possibilité comme pratique recommandée. L’activation du mode EVC lors de la création d’un nouveau cluster vous évite de rencontrer des problèmes liés à l’arrêt et à la migration des VMs qui sont sous tension dans le cluster (comme vous vous en souvenez, une VM doit généralement être arrêtée et redémarrée pour appliquer les nouveaux paramètres EVC).
Masquage CPUID
En plus du mode EVC global qui s’applique à toutes les VMs et à tous les hôtes ESXi du cluster, vCenter Server vous permet de configurer manuellement les indicateurs CPUID pour une machine virtuelle personnalisée. vCenter compare les paramètres CPUID définis pour la machine virtuelle avec les paramètres CPUID disponibles sur l’hôte ESXi de destination. Si ces paramètres sont identiques, la migration de la machine virtuelle avec vMotion est autorisée. La fonctionnalité de masquage CPUID est plus ancienne que la fonctionnalité de mode EVC.
Pour configurer les masques CPUID pour une machine virtuelle, procédez comme suit :
Sélectionnez la machine virtuelle souhaitée, cliquez avec le bouton droit sur la machine virtuelle et sélectionnez Modifier les paramètres. Dans la fenêtre ouverte Modifier les paramètres , ouvrez Matériel virtuel > processeur, sélectionnez Masque du processeur, puis cliquez sur Avancé.
Dans la fenêtre Masque du processeur , sélectionnez la chaîne de registre nécessaire et cliquez sur la valeur pour modifier le masque au niveau des bits. Cliquez sur le bouton Légende pour afficher la signification de chaque caractère utilisé pour définir les paramètres du masque.
Attention ! Veuillez ne pas modifier les masques avant de vous être familiarisé avec la base de connaissances VMware ou les instructions du support VMware. La modification manuelle des masques de compatibilité pour les processeurs peut entraîner une configuration VM non prise en charge. Par exemple, les VMs Windows peuvent échouer avec un écran bleu (BSOD).
Vérification de la configuration du mode EVC dans PowerCLI
Vous pouvez vérifier la configuration du mode EVC pour l’ensemble du cluster et pour les VMs personnalisées dans VMware PowerCLI par la commande :
Get-VM | Select Name,HardwareVersion,
@{Name='VM_EVC_Mode';Expression={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}},
@{Name='Cluster_Name';Expression={$_.VMHost.Parent}},
@{Name='Cluster_EVC_Mode';Expression={$_.VMHost.Parent.EVCMode}} | ft
Vous pouvez également vérifier le niveau EVC maximal pris en charge pour tous les hôtes de votre cluster après avoir exécuté la commande :
Get-VMHost | Select-Object Name,ProcessorType,MaxEVCMode
Mode EVC par VM
Le mode EVC considéré ci-dessus est une option au niveau du cluster. VMware vSphere 6.7 offre la possibilité de définir un mode EVC par VM, ce qui peut être utile pour la migration de VMs entre différents clusters ou serveurs vCenter et vous offre une plus grande granularité. Un mode EVC par VM est défini comme un attribut des paramètres de la machine virtuelle et offre plus de flexibilité pour la gestion des VMs qui doivent être migrées avec vMotion. La compatibilité matérielle de la VM doit être de version 14 ou supérieure. La configuration du mode EVC par VM est enregistrée dans le fichier de configuration VMX de la VM sous forme de lignes qui contiennent featMask.vm.cpuid string. Lorsqu’une VM configurée en mode EVC par VM est migrée, sa configuration EVC stockée dans le fichier VMX est migrée avec la VM. Les paramètres du mode EVC par VM peuvent être modifiés lorsque la VM est hors tension (éteignez et rallumez la VM pour appliquer les paramètres modifiés du mode EVC par VM).
Si vous activez un mode EVC par VM pour une VM résidant dans le cluster qui dispose déjà d’un mode EVC global configuré, un mode EVC par VM peut être égal ou inférieur au mode EVC défini dans l’ensemble du cluster. Il est donc possible de configurer simultanément le mode EVC global et le mode EVC par VM. Après le clonage d’une VM, les paramètres EVC par VM sont clonés avec la VM.
Pour configurer le mode EVC par VM, ouvrez le client VMware vSphere HTML5, accédez à Hôtes et clusters, puis sélectionnez la VM souhaitée. Ouvrez l’onglet Configure , sélectionnez More > VMware EVC et cliquez sur Modifier.
Comment activer le mode EVC dans le cluster sans interruption de service
Dans certains cas, vous pouvez activer le mode EVC dans l’ensemble du cluster sans interruption de service des VMs (en général, les VMs doivent être arrêtées et redémarrées pour appliquer les paramètres du mode EVC du cluster). Cela est possible si les conditions suivantes sont remplies :
- Les VMs en cours d’exécution résident sur l’hôte ESXi doté du processeur le plus ancien
- Le mode EVC dans le cluster est configuré pour utiliser les jeux d’instructions du processeur le plus ancien
Activation du mode EVC pour la machine virtuelle vCenter
Vous pouvez rencontrer la situation suivante, courante dans les environnements VMware vSphere :
vCenter Server s’exécute en tant que machine virtuelle sur un hôte VMware ESXi qui doit être ajouté à un cluster pour lequel le mode EVC est activé.
Le problème est qu’un hôte ESXi exécutant des VMs (y compris la machine virtuelle exécutant vCenter) ne peut pas être ajouté au cluster après l’activation d’EVC tant que toutes les VMs ne sont pas arrêtées. D’autre part, la machine virtuelle exécutant vCenter est nécessaire pour gérer le cluster, et nous ne pouvons pas arrêter la machine virtuelle vCenter car elle est actuellement utilisée. Ce problème est particulièrement aigu lorsque la machine virtuelle vCenter s’exécute sur l’hôte ESXi avec un processeur plus récent.
Remarque : Il est recommandé d’utiliser un commutateur réseau standard (et non un commutateur réseau distribué) pour connecter la machine virtuelle exécutant vCenter au réseau dans ce cas.
(et non un commutateur vSwitch distribué) pour connecter la machine virtuelle exécutant vCenter au réseau dans ce cas. >Une solution possible. Considérez l’algorithme qui peut vous aider à résoudre le problème pour VMware vSphere 5.5 :
- Déplacez un autre serveur ESXi (qui n’exécute pas de machine virtuelle vCenter) vers le cluster s’il n’y a pas encore de serveurs ESXi dans le cluster. Les VMs sur le serveur ESXi qui est déplacé vers le cluster doivent être mises hors tension.
- Arrêtez la machine virtuelle qui exécute vCenter Server. Connectez-vous à l’hôte VMware ESXi sur lequel réside la machine virtuelle vCenter par VMware Host Client pour désenregistrer la machine virtuelle ou connectez-vous à l’aide d’un client SSH pour copier les fichiers. Dans VMware Host Client, cliquez avec le bouton droit sur la machine virtuelle vCenter et sélectionnez Désenregistrer. Copiez manuellement tous les fichiers de la machine virtuelle vCenter vers le Magasin de données connecté au serveur ESXi que vous avez déjà déplacé vers le cluster à l’étape 1. Si un stockage partagé NFS ou iSCSI est utilisé par les deux hôtes ESXi, vous n’avez pas besoin de copier les fichiers de la machine virtuelle vers un autre emplacement.
Remarque : Vous devrez peut-être définir manuellement l’adresse MAC de la carte réseau virtuelle de la machine virtuelle exécutant vCenter Server avant de déplacer la machine virtuelle d’un hôte ESxi à un autre.
- Enregistrez la machine virtuelle vCenter sur l’hôte VMware ESXi qui a été déplacé vers le cluster (connectez-vous à l’hôte VMware ESXi avec VMware Host Client, ouvrez le magasin de données, localisez les fichiers de la machine virtuelle vCenter, sélectionnez le fichier VMX, cliquez avec le bouton droit sur le fichier et cliquez sur Enregistrer la machine virtuelle). Exécutez la machine virtuelle vCenter sur cet hôte VMware ESXi dans le cluster. Connectez-vous à vCenter avec VMware vSphere Client pour vous assurer que vous pouvez gérer votre environnement vSphere avec vCenter. Vous devrez peut-être désactiver temporairement le contrôle d’admission.
- Déplacez l’hôte ESXi source sur lequel la machine virtuelle vCenter fonctionnait à l’origine vers le cluster. Arrêtez les autres VMs sur cet hôte ESXi si nécessaire avant de déplacer l’hôte.
Conclusion
La fonctionnalité vMotion améliorée (EVC) est une fonctionnalité VMware vSphere utile qui garantit la scalabilité de votre cluster et vous permet d’ajouter des nœuds avec des processeurs de différentes générations au cluster afin d’effectuer une migration en direct des machines virtuelles entre les hôtes VMware ESXi avec vMotion. Le mode EVC masque les fonctionnalités des processeurs de nouvelle génération afin de créer une base commune correspondant aux fonctionnalités de la génération de processeurs la plus ancienne utilisée par les hôtes VMware ESXi du cluster. Vous disposez ainsi d’un environnement homogène dans lequel tous les processeurs utilisent les mêmes jeux d’instructions et les VMs en cours d’exécution peuvent migrer avec vMotion. Un grand nombre de clients VMware qui utilisent des clusters utilisent le mode EVC. Il est recommandé d’activer le mode EVC lors de la création du cluster afin d’éviter d’éventuels problèmes liés à l’ajout d’hôtes VMware ESXi et à la migration des VMs en cours d’exécution, y compris la VM exécutant vCenter Server.
Que vous utilisiez ou non un cluster, n’oubliez pas de sauvegarder les machines virtuelles VMware. NAKIVO Backup & Replication est une solution de protection des données rapide, fiable et abordable qui peut protéger vos machines virtuelles VMware même si celles-ci migrent entre des hôtes VMware ESXi dans des clusters.











