Migration à chaud : attention aux promesses de VMware EVC
Enhanced vMotion Compatibility porte la promesse de migrer à chaud les VMs d’un datacenter vers des infrastructures différentes. Mais il s’agit seulement d’un dépannage ponctuel.
La fonction Enhanced vMotion Compatibility (EVC) proposée par VMware sert à migrer des machines virtuelles sur des matériels différents, notamment ceux sur lesquels reposent les offres de cloud public ou privé. Mais les administrateurs de VMware qui espèrent tirer parti de cette fonctionnalité doivent garder à l’esprit que des inconvénients existent et posent des risques d’instabilité sur les environnements de production.
Un facteur clé du succès de VMware a été que les administrateurs de VMware peuvent déplacer rapidement et de manière transparente machines virtuelles au sein de leurs infrastructures VMware. VMware vMotion, le service de VMware pour la migration à chaud des machines virtuelles en cours de fonctionnement, agit de manière transparente quand les bonnes conditions sont réunies. Des années après sa sortie initiale, la possibilité de migrer une VM à l’autre bout du pays, vers un autre datacenter ou vers un cloud reste impressionnante. D’autant que le système est fiable, avec peu de problèmes rencontrés pour la plupart des utilisateurs. Mais une partie essentielle de ce succès est due à la similitude du matériel des deux côtés de la migration.
En revanche, la migration vers VMotion repose sur la similitude des matériels à la source et à la destination, car elle déplace en temps réel l’image des contenus en RAM et les instructions du processeur. Cette similitude permet de s'assurer qu'il n'y aura pas de problèmes de continuité d’activité, ce qui pourrait être d’autant plus préoccupant que la migration se déroule alors que les VM sont encore en cours d’exécution.
EVC, un vMotion sans la contrainte des machines similaires
Pour résoudre la difficulté d’avoir des matériels similaires de part et d’autre,
VMware a donc par la suite lancé EVC. Censée soulager les informaticiens d’une difficulté, cette nouvelle fonctionnalité pose surtout question.
Le mode EVC de VMware fait en sorte que les processeurs d'une même famille se ressemblent et fonctionnent de manière suffisamment similaire pour que la VM ne soit pas consciente que des différences existent. Ce dispositif va au-delà de la vitesse processeur ou de son nombre de cœurs. Le mode EVC va jusqu’à masquer les fonctions propres aux processeurs en demandant à l'hyperviseur de les détourner.
Lorsqu'un administrateur active le mode EVC de VMware, le cluster auquel il s'applique se réduit au plus petit dénominateur commun des processeurs présents. L'hyperviseur ne peut dès lors plus proposer de virtualiser des fonctions avancées si elles n’existent pas sur certains processeurs présents dans le cluster. En pratique, l'hyperviseur masque les fonctions récentes et donne l'impression que les processeurs d’un serveur sont plus vieux de quelques générations.
Les inconvénients d’EVC
La réduction des performances ou des fonctionnalités possibles est un inconvénient. Notons que les problèmes de compatibilité se posent rarement : EVC exigeant que les processeurs soient de la même famille, l'effet de retour en arrière n’empêche généralement pas d’exécuter une application.
En revanche, un problème d’instabilité se pose. Aussi rapides et complexes que soient les capacités d'un hyperviseur moderne, la suppression ou la manipulation des fonctions du processeur à des vitesses de l'ordre de la microseconde engendrera des problèmes de synchronisation dans les échanges entre les codes. Les hyperviseurs vérifient dans une certaine mesure la génération de ce type d’erreurs, mais la migration engendrera néanmoins des dégradations.
Depuis la version 6.7 de vSphere, par configuration, il est possible de contourner certaines règles de rétrogradation, mais tôt ou tard des problèmes se poseront.
Enfin, notons qu’EVC pose aussi un problème indirect : sachant que sa bonne pratique consiste à rétrograder les capacités des processeurs, les entreprises déduisent rapidement qu’il ne leur sert à rien de payer pour des fonctionnalités du processeur qui ne seront pas utilisées. Mais privilégier l’achat de processeurs plus anciens est une mauvaise idée. Les productions de puces sont si souvent mises à jour que l'achat d'un processeur plus ancien est en réalité difficile et coûteux : un modèle est retiré du marché au bout d'un an, voire un an et demi. De plus, il est rarement pratique de stocker des serveurs pour les utiliser à terme dans un cluster VMware, ne serait-ce qu’en raison du coût initial d'achat et du coût permanent pour en assurer la maintenance.
En réalité, la migration à chaud des machines virtuelles vers une infrastructure différente devrait toujours être considérée comme une exception plutôt qu’une règle.