Brevet FR3023945A1 — publié le 20160122

Système et procédé de management dynamique de machines virtuelles dans un environnement informatique en nuage La présente invention concerne un système de management dynamique de machines virtuelles dans un environnement informatique en nuage, ainsi qu'un procédé correspondant. Elle trouve notamment une application à la gestion optimisée du placement de machines virtuelles sur des serveurs dans cet environnement, et du déplacement de telles machines virtuelles d'un serveur vers un autre dans cet environnement dans le but de consolider l'infrastructure physique. Un environnement informatique en nuage, ou « cloud », est une infrastructure informatique regroupant un certain nombre de moyens de calcul et de moyens de stockage de données, dans des centres de données ou « data centers », qui sont répartis géographiquement et interconnectés. Ces derniers sont partagés par plusieurs utilisateurs et « tenants ». Ces centres de données comprennent chacun un ou plusieurs serveurs incluant leurs propres ressources, dont des moyens de calcul propres et des moyens de stockage de données propres. Ces serveurs accueillent des environnements virtualisés d'exécution d'applications et de services, le plus souvent identifiés par des machines virtuelles. A chacune de ces machines virtuelles sont allouées, pour l'exécution des applications ou services concernés, des ressources propres, notamment une partie des moyens de calcul et de stockage du serveur sur lequel elles sont hébergées. Ces machines virtuelles constituent en quelque sorte des sous-systèmes d'exploitation installés dans le système d'exploitation du serveur qui les héberge. Un environnement de type « cloud » (informatique en nuage) est géré par un fournisseur qui utilise un système informatique de gestion, qui peut lui-même être hébergé sur l'un des serveurs de l'environnement, ou sur un serveur dédié de cet environnement, notamment pour gérer le placement de ces machines virtuelles. L'utilisation d'un tel environnement informatique présente pour un utilisateur l'avantage notamment d'éviter des investissements importants en ressources informatiques, grâce à des services dimensionnés en fonction du besoin ponctuel en ressources et dont le coût refacturé par le fournisseur à l'utilisateur est donc fonction de l'utilisation effective et sur mesure des ressources. Du point de vue du gestionnaire d'un tel environnement informatique en nuage, il est nécessaire de disposer de moyens efficaces pour réduire les coûts opérationnels, la consommation d'énergie, les coûts de maintenance et de configuration. Du point de vue de l'utilisateur final des services « cloud », il est nécessaire de réduire les frais et coûts des services prérequis ou demandés. Par ailleurs, on définit généralement des règles de gestion visant à maintenir un certain niveau de qualité de services offert aux utilisateurs. Pour faire en sorte que ces règles soient respectées, ou violées le moins souvent possible, on est confronté à de nombreux problèmes d'optimisation. On cherche ainsi à mieux exploiter les ressources virtualisées dans le but d'atteindre des revenus plus élevés, du point de vue des fournisseurs, tout en satisfaisant les exigences des utilisateurs avec des violations négligeables des règles fixées pour le niveau de service fourni (SLA pour « Service Level Agreement »). Il est donc important de gérer le placement des machines virtuelles sur les différents serveurs disponibles de la façon la plus optimale, notamment en automatisant l'allocation dynamique des ressources aux différentes machines virtuelles en temps réel. Les demandes des utilisateurs prennent la forme de machines virtuelles, tel qu'expliqué ci-dessus, ou noeuds virtuels, destinées à encapsuler des applications et des services. On cherche à héberger (placer) l'ensemble des machines virtuelles sur un nombre minimum de serveurs physiques, dans le but de réduire la consommation énergétique ainsi que tous les coûts opérationnels associés. Cette problématique est considérée comme un problème de type « NP-difficile » en termes de complexité algorithmique. Il est également nécessaire d'optimiser les processus de consolidation des machines virtuelles en cours d'exécution, pour réduire le coût global, tout en rendant l'ensemble de l'infrastructure plus performant, ce qui constitue deux objectifs contradictoires. Généralement, lorsqu'une nouvelle requête de placement d'un ou plusieurs nouvelles machines virtuelles arrive dans le système, ces machines virtuelles sont placées sur certains serveurs disponibles, en respectant certaines règles et en recherchant un certain degré d'optimisation, sans prendre en compte les ressources utilisées par les machines virtuelles en cours d'exécution sur les différents serveurs. Ensuite, par exemple à intervalles réguliers, une consolidation est mise en oeuvre sur l'ensemble des machines virtuelles hébergées sur les serveurs à un moment donné, visant là encore à optimiser l'utilisation des ressources. En effet, il est nécessaire de mettre à jour régulièrement le placement des machines virtuelles sur les différents serveurs, pour que ce placement reste optimal, par exemple pour prendre en compte le départ d'une machine virtuelle qui quitte un serveur, par exemple dans le cas d'une machine virtuelle à durée d'exécution limitée. Cette consolidation est également nécessaire pour minimiser les coûts d'hébergement, la consommation d'énergie et les coûts d'exploitation. Le placement des nouvelles machines virtuelles et la consolidation de l'ensemble des machines virtuelles hébergées dans l'infrastructure, sont donc traités séparément. Cela génère ce que l'on appelle l'effet "ping-pong" : une première machine virtuelle est hébergée sur un premier serveur, puis sur un autre serveur suite à consolidation périodique, puis une nouvelle machine virtuelle est placée sur l'un des serveurs, et la première machine virtuelle revient sur le premier serveur suite à la consolidation périodique suivante. Par ailleurs, compte tenu de la complexité algorithmique du problème d'optimisation mentionné plus haut, il est difficile d'obtenir systématiquement la solution optimale en temps réel, ce qui conduit à utiliser des solutions de type heuristique plutôt que des solutions exactes, et donc qui conduit à un gaspillage de ressources. Le problème de placement des machines virtuelles consiste donc à accueillir de manière optimale toutes les machines virtuelles, sur les serveurs les plus appropriés pour réduire efficacement la consommation d'énergie et les coûts d'hébergement au même temps On connait des systèmes qui utilisent des approches donnant des solutions approximatives, tels que dans mvw.vmware.comtproducts/vsphere ou dans Q. Zhang, Q. Zhu, M.F. Zhani, and R. Boutaba, « Dynamic service placement in geographocally distributed clouds », in ICDCS, pages 562-535, 2012. Dans ce type d'approche, on réalise tout d'abord une analyse de marché pour déterminer une prévision de la demande sur chaque type de marché, puis une programmation dynamique qui alloue des ressources spécifiques à chaque type de marché afin de maximiser le revenu total. Une autre recherche de solution approximative est proposée dans G. D'osa, « The tight bound of first fit decreasing bin-packing algorithm is ffd(i) Dans la solution VMware © mentionnée plus haut, les ressources sont allouées de manière heuristique. Cette solution est basée sur l'approche dite du « First-Fit Decreasing », combinée avec un mécanisme de migration en tandem. Concernant la consolidation du placement des machines virtuelles en cours d'hébergement sur les différents serveurs de l'infrastructure, l'une des principales références est la publication O.S. Murtazaev, A. « Sercon : Server consolidation algorithm using live migration of virtual machines for green computing », in ietejournals, 2011. Dans cette approche, on cherche à minimiser simultanément le nombre de serveurs et les migrations utilisées, pour réaliser la consolidation. Comme cette approche est de type heuristique, elle ne permet pas toujours de trouver la solution optimale, ce qui conduit à l'utilisation inefficace des ressources. Une autre référence traitant de la consolidation peut être trouvée dans M. Sedaghat et al. « A virtual machine repacking approach to the horizontal vs. vertical elasticity tradeoff for cloud autoscaling », in CAC 2013. Dans cette publication, on compare l'automatisation de l'élasticité horizontale par rapport à l'élasticité verticale dans les environnements en nuage. Le compromis prix-performances est analysé par rapport à la taille des machines virtuelles, afin de pouvoir traiter des charges croissantes. L'approche de consolidation est combinée avec des stratégies mise à l'échelle, et une réduction du coût total de l'utilisation des ressources est obtenue. Cette approche reste néanmoins basée sur un ensemble de paramètres choisis de manière heuristique, conduisant donc là encore à des solutions sous-optimales. Par conséquent, outre le problème de l'effet ping-pong mentionné plus haut, les solutions connues d'optimisation du placement des machines virtuelles sur les serveurs d'un environnement informatique en nuage, sont toutes élaborées sur des approches heuristiques et ne permettent donc pas d'atteindre le placement optimal. L'approche de type heuristique conduit à une utilisation inefficace des ressources de l'infrastructure, avec des serveurs qui peuvent rester inactifs et des ressources qui sont donc gaspillées. Un des buts de l'invention est donc de résoudre les problèmes précités. Ainsi, l'invention a notamment pour objectif de proposer un dispositif qui permette de gérer de façon optimale l'arrivée de nouvelles machines virtuelles en les plaçant de façon à réduire les coûts d'hébergement et les coûts de migration d'une machine virtuelle d'un serveur vers un autre. Ainsi, l'invention a pour objet, selon un premier aspect, un système de management dynamique de machines virtuelles, dans un environnement informatique en nuage comportant plusieurs serveurs chacun apte à héberger une ou plusieurs machines virtuelles, le système étant apte à recevoir une requête de placement sur tout ou partie des serveurs de N nouvelles machines virtuelles, avec N>_1, et comprenant un module de détermination apte à déterminer un plan de placement des N nouvelles machines virtuelles sur tout ou partie des serveurs, et un module de placement apte à placer les N nouvelles machines virtuelles sur tout ou partie des serveurs en fonction du plan de placement déterminé. Le module de détermination est apte à déterminer un plan de placement des N nouvelles machines virtuelles et de tout ou partie des machines virtuelles déjà hébergées sur tout ou partie des serveurs, qui comprend le plan de placement des N nouvelles machines virtuelles sur tout ou partie des serveurs et un plan de déplacement de tout ou partie des machines virtuelles déjà hébergées sur tout ou partie des serveurs, et le module de placement est apte à déplacer tout ou partie des machines virtuelles déjà présentes sur tout ou partie des serveurs en fonction du plan de déplacement déterminé. Suivant certains modes de réalisation, le système comprend en outre une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : - le système est apte à détecter la suppression d'une ou plusieurs machines virtuelles de tout ou partie des serveurs, le module de détermination est apte à déterminer un nouveau plan de placement de tout ou partie des machines virtuelles restant hébergées sur tout ou partie des serveurs qui comprend un plan de déplacement de tout ou partie de ces machines virtuelles restant hébergées sur tout ou partie des serveurs, le module de placement est apte à déplacer tout ou partie des machines virtuelles restant hébergées sur tout ou partie des serveurs en fonction du nouveau plan de déplacement ; - le module de détermination est apte à déterminer le plan de placement qui minimise la fonction de coût suivante sur tous les plans de placement possibles, pour l'ensemble des machines virtuelles comprenant les machines virtuelles déjà hébergées sur tout ou partie des serveurs et les N nouvelles machines virtuelles, et pour l'ensemble des serveurs : u J + R1,1 (1,J) avec H I, : coût de l'hébergement de la machine virtuelle VIVlisur le serveur Si, R I, : coût du déplacement de la machine virtuelle VIVlisur le serveur Si, 1:11,; = 0 si la machine virtuelle VIVlifait partie des N nouvelles machines virtuelles, u I,; = 0, si la machine virtuelle VIV11 est déjà hébergée sur le serveur Si et 1 sinon, - x = 1, si le plan de placement en question comprend le placement de la machine virtuelle VIVlisur le serveur Sj, et 0 sinon ; - le système comprend des moyens de stockage dans lesquels est stockée la cartographie du placement courant des machines virtuelles sur tout ou partie des serveurs, et le module de détermination est apte à modifier la cartographie stockée dans les moyens de stockage en fonction du plan de placement déterminé ; - le système apte à contrôler le nombre de serveurs surutilisés dont les ressources, telles que les moyens de calculs ou la mémoire, se trouvent en dessous d'un seuil donné, et le module de détermination est apte à déterminer le plan de placement en sorte que le nombre de serveurs surutilisés soit inférieur ou égal à un nombre de serveurs donné ; - le module de détermination est apte à déterminer le plan de placement, en sorte que le nombre de serveurs surutilisés soit égal à zéro lorsque, d'une part le nombre N de nouvelles machines virtuelles à placer sur tout ou partie des serveurs plus le nombre des machines virtuelles déjà hébergées sur tout ou partie des serveurs est inférieur à un nombre de machines virtuelles donné, et d'autre part l'environnement comprend un nombre de serveurs inférieur à un nombre de serveurs donné, et en sorte que le nombre de serveurs surutilisés soit supérieur ou égal à zéro lorsque, d'une part ledit nombre N de nouvelles machines virtuelles plus le nombre des machines virtuelles déjà hébergées sur tout ou partie des serveurs est supérieur ou égal à un nombre de machines virtuelles donné, et d'autre part l'environnement comprend un nombre de serveurs supérieur ou égal à un nombre de serveurs donné ; - le système comprend une zone de stockage d'un historique d'un nombre donné de plans de placement déterminés par le module de détermination, et le module de détermination est apte à déterminer le plan de placement en prenant en compte l'historique stocké dans la zone de stockage. L'invention concerne également, selon un deuxième aspect, un procédé de management dynamique de machines virtuelles, dans un environnement informatique en nuage comportant plusieurs serveurs chacun apte à héberger une ou plusieurs machines virtuelles, le procédé comprenant la détermination, par un module de détermination, d'un plan de placement de N nouvelles machines virtuelles, avec N>_1, sur tout ou partie des serveurs, et le placement, par un module de placement, des N nouvelles machines virtuelles sur tout ou partie des serveurs en fonction du plan de placement déterminé. Le procédé comprend également la détermination, par le module de détermination, d'un plan de placement des N nouvelles machines virtuelles et de tout ou partie des machines virtuelles déjà hébergées sur tout ou partie des serveurs, cedit plan de placement comprenant le plan de placement des N nouvelles machines virtuelles sur tout ou partie des serveurs et un plan de déplacement de tout ou partie des machines virtuelles déjà hébergées sur tout ou partie des serveurs, et en ce que le placement des N nouvelles machines virtuelles comprend le déplacement de tout ou partie des machines virtuelles déjà hébergées sur tout ou partie des serveurs en fonction du plan de déplacement déterminé. Suivant certains modes de mise en oeuvre, le procédé comprend en outre une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : - le procédé comprend la détection de la suppression d'une ou plusieurs machines virtuelles de tout ou partie des serveurs, la détermination, par le module de détermination, d'un nouveau plan de placement de tout ou partie des machines virtuelles restant hébergées sur tout ou partie des serveurs qui comprend un plan de déplacement de tout ou partie de ces machines virtuelles restant hébergées sur tout ou partie des serveurs, et le déplacement, par le module de placement, de tout ou partie des machines virtuelles restant hébergées sur tout ou partie des serveurs en fonction du nouveau plan de déplacement ; - la détermination du plan de placement, par le module de détermination, détermine le plan de placement qui minimise la fonction de coût suivante sur tous les plans de placement possibles, pour l'ensemble des machines virtuelles comprenant les machines virtuelles déjà hébergées sur tout ou partie des serveurs et les N nouvelles machines virtuelles, et pour l'ensemble des serveurs : avec H I, : coût de l'hébergement de la machine virtuelle VIVlisur le serveur Si, R I, : coût du déplacement de la machine virtuelle VIVlisur le serveur Si, 1:11,; = 0 si la machine virtuelle VIVlifait partie des N nouvelles machines virtuelles, u ,; = 0, si la machine virtuelle VIVliest déjà hébergée sur le serveur S; et 1 sinon, - x ; = 1, si le plan de placement en question comprend le placement de la machine virtuelle VIVlisur le serveur Si, et 0 sinon. - la cartographie du placement courant des machines virtuelles sur tout ou partie des serveurs est stockée dans des moyens de stockage, et cette cartographie est modifiée en fonction du plan de placement déterminé ; - le nombre de serveurs surutilisés dont les ressources, telles que les moyens de calculs ou la mémoire, se trouvent en dessous d'un seuil donné, est contrôlé, et la détermination d'un plan de placement est réalisée en sorte que le nombre de serveurs surutilisés soit inférieur ou égal à un nombre de serveurs donné ; - la détermination d'un plan de placement est réalisée en sorte que le nombre de serveurs surutilisés soit égal à zéro lorsque, d'une part le nombre N de nouvelles machines virtuelles à placer sur tout ou partie des serveurs plus le nombre des machines virtuelles déjà hébergées sur tout ou partie des serveurs est inférieur à un nombre de machines virtuelles donné, et d'autre part l'environnement comprend un nombre de serveurs inférieur à un nombre de serveurs donné, et en sorte que le nombre de serveurs surutilisés soit supérieur ou égal à zéro lorsque, d'une part ledit nombre N de nouvelles machines virtuelles plus le nombre des machines virtuelles déjà hébergées sur tout ou partie des serveurs est supérieur ou égal à un nombre de machines virtuelles donné, et d'autre part l'environnement comprend un nombre de serveurs supérieur ou égal à un nombre de serveurs donné ; - un historique d'un nombre donné de plans de placement déterminés est stocké dans une zone de stockage, et la détermination d'un plan de placement prend en compte l'historique stocké dans la zone de stockage. Ainsi, le système et le procédé de l'invention permettent de gérer l'arrivée d'une requête contenant des nouvelles machines virtuelles à placer sur les serveurs de façon optimale, en évitant notamment l'effet ping-pong mentionné plus haut, grâce à la détermination d'un plan de placement des nouvelles machines virtuelles qui intègre un plan de déplacement des machines virtuelles déjà hébergées sur les serveurs. Les caractéristiques et avantages de l'invention apparaitront à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, et non limitative, en référence aux figures annexées suivantes : - figure 1 : représentation schématique d'un exemple de gestion du placement de nouvelles machines virtuelles dans un environnement informatique en nuage, selon l'invention ; - figure 2: représentation schématique d'un exemple de module de détermination des plans de placement selon l'invention ; - figure 3 : représentation schématique d'un exemple de mise en oeuvre d'un plan de placement de nouvelles machines virtuelles dans un environnement informatique en nuage selon l'invention. Comme vu précédemment, une machine virtuelle correspond à un sous-système d'exploitation, ou sous-environnement, disposant de ses ressources propres provenant des serveurs qui les héberge, en vue de permettre l'exécution d'applications ou services déterminés dans ce sous-environnement. C'est pourquoi les machines virtuelles {VIV11}, {VM,} sont représentées sur les figures 1 et 3 par des blocs subdivisés en une partie pour le sous-système d'exploitation (OS) et une partie pour l'exécution du ou des services, ou du ou des applications (App). L'environnement informatique en nuage 1 comprend donc un certain nombre de serveurs, en l'occurrence k serveurs {Si, S2, ..., Sj, Sk dans notre exemple. Ces serveurs peuvent être regroupés dans différents centre de données, mais pour simplifier, on assimilera dans la présente description un centre de données à un seul serveur disposant des capacités et ressources cumulées des serveurs physiques qu'il comprend. Ainsi, à l'arrivée d'une requête de placement de plusieurs nouvelles machines virtuelles {VM,,} telles que représentées à la figure 1, le système de management dynamique des machines virtuelles va déterminer sur lesquels des k serveurs {Si, S2, Si, ..., Sk ces nouvelles machines virtuelles doivent être placées, d'une manière optimale. Sur tout ou partie des serveurs {Si , jk} , un certain nombre de machines virtuelles {VM,} sont déjà hébergées lors de l'arrivée des nouvelles machines virtuelles. Précisément, un module de détermination 2 permet l'élaboration d'un plan de placement (xn,i) des nouvelles machines virtuelles {VM,} sur tout ou partie des serveurs {Si}, et un module de placement 3 permet le placement de ces nouvelles machines virtuelles sur tout ou partie des serveurs {Si} en fonction du plan de placement (xn,i) déterminé préalablement par le module de détermination. De façon schématique, ce module de détermination 2 et ce module de placement 3 sont regroupés sur la figure 1 dans un module de gestion 4. Ainsi, un plan de placement (x,,,1) des nouvelles machines virtuelles sur tout ou partie des serveurs {Si}, est déterminé, dans lequel )(ri, = 1, si le plan de placement en question comprend le placement de la machine virtuelle VM,, sur le serveur Si, et 0 sinon. Comme on le voit représenté sur la figure 3, à titre d'exemple, le système de l'invention ne se contente pas de placer les nouvelles requêtes de machines virtuelles sur les serveurs {Si} encore disponibles, mais prévoit éventuellement le déplacement, ou la migration, de tout ou partie des machines virtuelles {VIV11} déjà hébergées sur les serveurs {Si}. Autrement dit, le système prend en compte toutes les ressources théoriquement disponibles (restantes), pour déterminer la meilleure solution de placement des nouvelles machines virtuelles, y compris les ressources déjà utilisées par une autre machine virtuelle VIV11 mais libérables par déplacement (migration) de cette dernière vers un autre des serveurs {S1}. Ainsi, à l'arrivée d'une requête comprenant N nouvelles machines virtuelles {VM,}, le module de détermination 2 détermine un plan de placement (x1,1) non seulement des N nouvelles machines virtuelles mais aussi de tout ou partie des machines virtuelles {VIV11} déjà hébergées sur tout ou partie des serveurs {S1}. Ce plan de placement (x1,1), avec xi, ; = 1, si le plan de placement en question comprend le placement de la machine virtuelle VIVlisur le serveur Si, et 0 sinon, comprend le plan de placement (x,,1) des nouvelles machines virtuelles {VM,} sur tout ou partie des serveurs {Si} et un plan de déplacement de tout ou partie des machines virtuelles {VIV11} déjà hébergées sur tout ou partie des serveurs {S1}. Par ailleurs, le module de placement 3, non seulement place les nouvelles machines virtuelles {VM,}, mais également déplace les machines virtuelles {VIV11} déjà présentes sur tout ou partie des serveurs {Si}, en fonction du plan de déplacement (x1,1) déterminé par le module de détermination 2. Généralement, chaque machine virtuelle VIV1n, VIV11 possède une durée d'exécution limitée sur le serveur physique Si qui l'héberge. Aussi, au bout d'un certain temps, et après le départ de certaines de ces machines virtuelles VIV1n, VIV11 dont la durée d'exécution est dépassée, on peut observer une sous-utilisation de certains des serveurs {S1}. C'est pourquoi on prévoit que le système permette de détecter la suppression, ou départ, d'une ou plusieurs machines virtuelles VIV11 des serveurs {Si} qui les hébergeaient jusqu'alors, et que le module de détermination 2 déclenche alors la détermination d'un nouveau plan de placement (x1,1) de tout ou partie des machines virtuelles {VIV11} restant hébergées sur tout ou partie des serveurs {Si} qui intègre un plan de déplacement de tout ou partie de ces machines virtuelles {VIV11} restant hébergées sur tout ou partie des serveurs {S1}. Le module de placement 3 peut alors déplacer (migrer) tout ou partie des machines virtuelles {VIV11} restant hébergées sur tout ou partie des serveurs {Si} en fonction de ce nouveau plan de déplacement. On considère qu'une machine virtuelle VIV11 hébergée sur un serveur Si génère un coût d'hébergement Hi, J. En outre, la migration ou le déplacement d'une machine virtuelle VIVlid'un serveur Sr à un serveur Si génère un coût de reconfigurations Si le plan de placement (x1,1) déterminé par le module de détermination 2 prévoit le placement d'une machine virtuelle VM; sur le serveur Sj, alors que cette machine virtuelle VM; est déjà hébergée sur ce serveur Sj, alors le coût de déplacement ou coût de reconfiguration Ri, j est égal à 0 et seul le coût d'hébergement Hi, j intervient dans le coût du placement de cette machine virtuelle VM; sur ce serveur S. A l'arrivée d'une nouvelle requête contenant une ou plusieurs nouvelles machines virtuelles {VM,}, le module de détermination 2 calcule le coût du placement, incluant le déplacement éventuel des machines virtuelles {VM;} déjà hébergées, pour tous les plans de placement possibles (x1,1), et sélectionne le plan dont le coût est minimal. Dans un exemple de réalisation la demanderesse a constaté que le module de détermination 2 permettait d'obtenir un nouveau plan de placement optimal de toutes les machines virtuelles {VM;}, incluant à la fois les nouvelles machines virtuelles {VM,} et les machines virtuelles {VM;} déjà hébergées sur les serveurs {Si}, en quelques secondes seulement : 3 secondes pour un environnement 1 comprenant 900 serveurs et hébergeant 3000 machines virtuelles. Comme on peut le voir sur la figure 2, le module de détermination 2, qui reçoit en entrée 5 l'information selon laquelle un certain nombre de nouvelles machines virtuelles arrivent ou partent, peut aussi intégrer la prise en compte de contraintes 6 telles que des règles de fonctionnement fixées par un opérateur, qui peuvent être liées par exemple au niveau de service en-dessous duquel on ne souhaite pas descendre. Le module de détermination 2 peut aussi maintenir un graphe 15 de la topologie physique des serveurs, dans une zone 15 prévue à cet effet. Des moyens 7 de supervision permettent également d'interagir avec le module de détermination 2. Le module de détermination contrôle par ailleurs le coût d'hébergement 9, la consommation d'énergie 10, le coût du trafic 11, et prend en compte un historique de données 12 pour procéder aux différentes déterminations. Une fois le plan de placement optimal (x1,1) déterminé, l'information sur celui-ci est transmise au module de placement 3 pour mise en oeuvre. La figure 3 donne un exemple de cette mise en oeuvre. Dans cet exemple, l'environnement informatique en nuage 1 comprend trois serveurs Si, S2, S3, et héberge à un instant donné sept machines virtuelles VM, à VM, (la machine virtuelle VM8 venant de quitter le serveur S3), selon le plan suivant : - VM, et VM3 sont hébergées sur Si, - VM2, VM8 et VM, sont hébergées sur S2, - VM4 et VM6 sont hébergées sur 53, Suite à un évènement déclencheur bien défini tel que l'arrivée d'une nouvelle requête contenant la nouvelle machine virtuelle VM,,, le module de détermination 2 détermine le plan de placement optimal (xi, i) suivant , pour une utilisation optimale de l'environnement 1 : X1,1 = 1, Xi, 2 = 0, X1,3 = 0, X2, 1 = 1, X2, 2 = 0, X2, 3 = 0, X3, 1 = 0, X3, 2 = 1, X3, 3 = 0, X4, 1 = 0, X4, 2 = 1 , X4, 3 = 0, X5, 1 = 0, X5, 2 = 1, X5, 3 = 0, X6, 1 = 0, X6, 2 = 0, X6, 3 = 1 , X7, 1 = 1, X7, 2 = 0, X7, 3 = 0, Xn,1 = 1, Xn, 2 = 0, Xn, 3 = 0, Autrement dit, ce plan (x1,1) recommande de : 15 conserver VM1 sur le serveur 51, VM6 sur le serveur S2, et VM6 sur le serveur S3, migrer ou déplacer VM2 du serveur S2 vers le serveur 51, VM3 du serveur 51 vers le serveur S2, VM4 du serveur S3 vers le serveur S2, et VM7 du serveur S2 vers le serveur 51, 20 placer la nouvelle VM,, sur le serveur 51. Une fois ce plan (xi, i) optimal déterminé par le module de détermination 2, il est donc mis en oeuvre par le module de placement 3. Ainsi, le module de détermination 2 permet de déterminer le plan de placement (x1,1) qui minimise la fonction de coût suivante, sur tous les plans de placement (x1,1) 25 possibles, pour l'ensemble des machines virtuelles {VM,} comprenant les machines virtuelles déjà hébergées sur tout ou partie des serveurs {S;} et les nouvelles machines virtuelles {VM,,}, et pour l'ensemble des serveurs {Si}: = + Ri du, d ).xid (i,J) avec 30 - 1-11,; : coût de l'hébergement de la machine virtuelle VIVI, sur le serveur Si, - 1:11, ; : coût du déplacement (ou migration) de la machine virtuelle VIVI, (initialement sur un serveur Sr) vers le serveur Si, - 1:11,; = 0 si la machine virtuelle VIVI, fait partie des N nouvelles machines virtuelles {VM,,}, - u I = 0, si la machine virtuelle VIVI, est déjà hébergée sur le serveur Si et 1 sinon, 10 - x = 1, si le plan de placement en question (x i , j) comprend le placement de la machine virtuelle VIVlisur le serveur Sj, et 0 sinon. Comme représenté à la figure 2, des moyens de stockage 13 sont prévus pour stocker la cartographie du placement courant des machines virtuelles VIV11 sur tout ou partie des serveurs {Sll. Le module de détermination 2 permet alors de modifier cette cartographie stockée dans les moyens de stockage 13 en fonction du plan de placement (x1,1) qui a déterminé et qui va être mis en oeuvre par le module de placement 3. Le système peut contrôler le nombre de serveurs {S1} surutilisés, c'est-à-dire dont les ressources disponibles, telles que les moyens de calculs ou la mémoire, se trouvent en dessous d'un seuil donné. Le module de détermination 2 permet alors de tracer le plan de placement (x1,1) optimal, en sorte que le nombre de serveurs {S,} surutilisés soit inférieur ou égal à un nombre de serveurs {S,} donné (inférieur ou égal à une borne supérieure). On peut prévoir également que le module de détermination fonctionne différemment, selon que l'environnement est de taille importante, en termes de nombre de serveurs {S,} et de nombres de machines virtuelles hébergées {VIV11} et à héberger {VM,}. Ainsi, le module de détermination 2 peut déterminer le plan de placement (x1,1), en sorte que le nombre de serveurs {S}j surutilisés soit égal à zéro dans le cas où, d'une part le nombre de nouvelles machines virtuelles {VM,} à placer sur les serveurs {S1} plus le nombre des machines virtuelles {VIV11} déjà hébergées sur les serveurs {S1} est inférieur à un nombre de machines virtuelles donné, et d'autre part l'environnement 1 comprend un nombre de serveurs {S1} inférieur à un nombre de serveurs donné. Par ailleurs, le module de détermination 2 peut déterminer le plan de placement (x1,1) en sorte que le nombre de serveurs {S1} surutilisés soit supérieur ou égal à zéro, mais de préférence inférieur à une valeur donnée, dans le cas où, d'une part ledit nombre de nouvelles machines virtuelles {VM,} plus le nombre des machines virtuelles {VIV11} déjà hébergées sur les serveurs {S1} est supérieur ou égal à un nombre de machines virtuelles donné, et d'autre part l'environnement 1 comprend un nombre de serveurs {S1} supérieur ou égal à un nombre de serveurs donné. Comme représenté à la figure 2, on peut prévoir une zone de stockage 8 d'un historique d'un nombre donné de plans de placement (x1,1) déterminés précédemment par le module de détermination 2, de sorte que ce module de détermination 2 puisse prendre en compte cet historique lors de la détermination d'un prochain plan de placement optimal (x1,1), et ne pas recalculer des solutions de placement optimales dans une certaine configuration, déjà calculées auparavant. La présente description est donnée à titre d'exemple et n'est pas limitative de l'invention. REVENDICATIONS1.- Système de management dynamique de machines virtuelles (VIV11), dans un environnement (1) informatique en nuage comportant plusieurs serveurs (S;) chacun apte à héberger une ou plusieurs machines virtuelles (VIV11), le système étant apte à recevoir une requête de placement sur tout ou partie des serveurs (S;) de N nouvelles machines virtuelles (VM,), avec Nkl, et comprenant un module de détermination (2) apte à déterminer un plan de placement (xn,1) des N nouvelles machines virtuelles (VIV1n) sur tout ou partie des serveurs (S;), et un module de placement (3) apte à placer les N nouvelles machines virtuelles (VIV1n) sur tout ou partie des serveurs (S;) en fonction du plan de placement (xn,1) déterminé, caractérisé en ce que le module de détermination (2) est apte à déterminer un plan de placement (x1,1) des N nouvelles machines virtuelles (VIV1n) et de tout ou partie des machines virtuelles (VIV11) déjà hébergées sur tout ou partie des serveurs (S;), qui comprend le plan de placement (xn,1) des N nouvelles machines virtuelles (VIV1n) sur tout ou partie des serveurs (S;) et un plan de déplacement de tout ou partie des machines virtuelles (VIV11) déjà hébergées sur tout ou partie des serveurs (S;), et en ce que le module de placement (3) est apte à déplacer tout ou partie des machines virtuelles (VIV11) déjà présentes sur tout ou partie des serveurs (S;) en fonction du plan de déplacement déterminé. 2.- Système selon la revendication 1, caractérisé en ce qu'il est apte à détecter la suppression d'une ou plusieurs machines virtuelles (VIV11) de tout ou partie des serveurs (S;), et en ce que le module de détermination (2) est apte à déterminer un nouveau plan de placement (x1,1) de tout ou partie des machines virtuelles (VIV11) restant hébergées sur tout ou partie des serveurs (S;) qui comprend un plan de déplacement de tout ou partie de ces machines virtuelles (VIV11) restant hébergées sur tout ou partie des serveurs (S;), et en ce que le module de placement (3) est apte à déplacer tout ou partie des machines virtuelles (VIV11) restant hébergées sur tout ou partie des serveurs (S;) en fonction du nouveau plan de déplacement. 3.- Système selon l'une quelconque des revendications 1 et 2, caractérisé en ce que le module de détermination (2) est apte à déterminer le plan de placement (x1,1) qui minimise la fonction de coût suivante sur tous les plans de placement (x1,1) possibles, pour l'ensemble des machines virtuelles (VIV11) comprenant les machines virtuelles (VIV11) déjàhébergées sur tout ou partie des serveurs (S;) et les N nouvelles machines virtuelles (VM,), et pour l'ensemble des serveurs (S;) : Z=1(11 + Ru avec -1-11,; : coût de l'hébergement de la machine virtuelle VIVlisur le serveur Si, - 1:11,; : coût du déplacement de la machine virtuelle VIVlisur le serveur Si, - 1:11,; = 0 si la machine virtuelle VIVlifait partie des N nouvelles machines virtuelles (VM,), - u = 0, si la machine virtuelle VIVliest déjà hébergée sur le serveur Si et 1 sinon, - x I,; = 1, si le plan de placement en question (x ;,;) comprend le placement de la machine virtuelle VIVlisur le serveur Si, et 0 sinon. 4.- Système selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comprend des moyens de stockage (13) dans lesquels est stockée la cartographie du placement courant des machines virtuelles (VIV11) sur tout ou partie des serveurs (S;), et en ce que le module de détermination (2) est apte à modifier la cartographie stockée dans les moyens de stockage (13) en fonction du plan de placement (x1,1) déterminé. 5.- Système selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il est apte à contrôler le nombre de serveurs (Si) surutilisés dont les ressources, telles que les moyens de calculs ou la mémoire, se trouvent en dessous d'un seuil donné, et en ce que le module de détermination (2) est apte à déterminer le plan de placement (x1,1) en sorte que le nombre de serveurs (Sj) surutilisés soit inférieur ou égal à un nombre de serveurs (Sj) donné. 6.- Système selon la revendication 5, caractérisé en ce le module de détermination (2) est apte à déterminer le plan de placement (x1,1), en sorte que le nombre de serveurs (Sj) surutilisés soit égal à zéro lorsque, d'une part le nombre N de nouvelles machines virtuelles (VM,) à placer sur tout ou partie des serveurs (Si) plus le nombre des machines virtuelles (VIV11) déjà hébergées sur tout ou partie des serveurs (Si) est inférieur à un nombre de machines virtuelles donné, et d'autre part l'environnement (1) comprend un nombre de serveurs (Si) inférieur à un nombre de serveurs donné, et en sorte que le nombre de serveurs (Si) surutilisés soit supérieur ou égal à zéro lorsque, d'une part ledit nombre N de nouvelles machines virtuelles (VM,) plus le nombre des machines virtuelles (VIV11) déjà hébergées sur tout ou partie des serveurs (Si) est supérieur ou égal à unnombre de machines virtuelles donné, et d'autre part l'environnement (1) comprend un nombre de serveurs (S1) supérieur ou égal à un nombre de serveurs donné. 7.- Système selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il comprend une zone de stockage (8) d'un historique d'un nombre donné de plans de placement (x1,1) déterminés par le module de détermination (2), et en ce que le module de détermination (2) est apte à déterminer le plan de placement (x1,1) en prenant en compte l'historique stocké dans la zone de stockage (8). 8.- Procédé de management dynamique de machines virtuelles (VIV11), dans un environnement (1) informatique en nuage comportant plusieurs serveurs (Sk) chacun apte à héberger une ou plusieurs machines virtuelles (VIV11), le procédé comprenant la détermination, par un module de détermination (2), d'un plan de placement (xn,1) de N nouvelles machines virtuelles (VM,), avec N>_1, sur tout ou partie des serveurs (S;), et le placement, par un module de placement (3), des N nouvelles machines virtuelles (VM,) sur tout ou partie des serveurs (S;) en fonction du plan de placement (xn,1) déterminé, caractérisé qu'il comprend la détermination, par le module de détermination (2), d'un plan de placement (x1,1) des N nouvelles machines virtuelles (VM,) et de tout ou partie des machines virtuelles (VIV11) déjà hébergées sur tout ou partie des serveurs (S;), cedit plan de placement (x1,1) comprenant le plan de placement (xn,1) des N nouvelles machines virtuelles (VM,) sur tout ou partie des serveurs (S;) et un plan de déplacement de tout ou partie des machines virtuelles (VIV11) déjà hébergées sur tout ou partie des serveurs (S;), et en ce que le placement des N nouvelles machines virtuelles (VM,) comprend le déplacement de tout ou partie des machines virtuelles (VIV11) déjà hébergées sur tout ou partie des serveurs (S;) en fonction du plan de déplacement déterminé. 9.- Procédé selon la revendication 8, caractérisé en ce qu'il comprend la détection de la suppression d'une ou plusieurs machines virtuelles (VIV11) de tout ou partie des serveurs (S;), la détermination, par le module de détermination (2), d'un nouveau plan de placement (x1,1) de tout ou partie des machines virtuelles (VIV11) restant hébergées sur tout ou partie des serveurs (S;) qui comprend un plan de déplacement de tout ou partie de ces machines virtuelles (VIV11) restant hébergées sur tout ou partie des serveurs (S;), et le déplacement, par le module de placement (3), de tout ou partie des machines virtuelles (VIV11) restant hébergées sur tout ou partie des serveurs (S;) en fonction du nouveau plan de déplacement. 10.- Procédé selon l'une quelconque des revendications 8 et 9, caractérisé en ce que la détermination du plan de placement (x1,1), par le module de détermination (2), détermine le plan de placement (x1,1) qui minimise la fonction de coût suivante sur tous les plans de placement (x1,1) possibles, pour l'ensemble des machines virtuelles (VIV11) comprenant les machines virtuelles (VIV11) déjà hébergées sur tout ou partie des serveurs (S;) et les N nouvelles machines virtuelles (VM,), et pour l'ensemble des serveurs (S;) : Z=1(11 + avec -1-11,; : coût de l'hébergement de la machine virtuelle VIVlisur le serveur Si, - R : coût du déplacement de la machine virtuelle VIVlisur le serveur Si, - 1:11,; = 0 si la machine virtuelle VIVlifait partie des N nouvelles machines virtuelles (VM,), - u I, ; = 0, si la machine virtuelle VIVliest déjà hébergée sur le serveur Si et 1 sinon, - x 1,1 = 1, si le plan de placement en question (x ;,;) comprend le placement de la machine virtuelle VIVlisur le serveur Si, et 0 sinon. 11.- Procédé selon l'une quelconque des revendications 8 à10, caractérisé en ce que la cartographie du placement courant des machines virtuelles (VIV11) sur tout ou partie des serveurs (Si) est stockée dans des moyens de stockage (13), et en ce que cette cartographie est modifiée en fonction du plan de placement (x1,1) déterminé. 12.- Procédé selon l'une quelconque des revendications 8 à 11, caractérisé en ce le nombre de serveurs (Si) surutilisés dont les ressources, telles que les moyens de calculs ou la mémoire, se trouvent en dessous d'un seuil donné, est contrôlé, et en ce que la détermination d'un plan de placement (x1,1) est réalisée en sorte que le nombre de serveurs (Sj) surutilisés soit inférieur ou égal à un nombre de serveurs (Sj) donné. 13.- Procédé selon la revendication 12, caractérisé en ce que la détermination d'un plan de placement (x1,1) est réalisée en sorte que le nombre de serveurs (Sj) surutilisés soit égal à zéro lorsque, d'une part le nombre N de nouvelles machines virtuelles (VM,) à placer sur tout ou partie des serveurs (Si) plus le nombre des machines virtuelles (VIV11) déjà hébergées sur tout ou partie des serveurs (Si) est inférieur à un nombre de machines virtuelles donné, et d'autre part l'environnement (1) comprend un nombre de serveurs (Si) inférieur à un nombre de serveurs donné, et en sorte que le nombre de serveurs (Si) surutilisés soit supérieur ou égal à zéro lorsque, d'une part ledit nombre N de nouvelles machines virtuelles (VM,) plus le nombre des machines virtuelles(VIV11) déjà hébergées sur tout ou partie des serveurs (S1) est supérieur ou égal à un nombre de machines virtuelles donné, et d'autre part l'environnement (1) comprend un nombre de serveurs (S1) supérieur ou égal à un nombre de serveurs donné. 14.- Procédé selon l'une quelconque des revendications 8 à 13, caractérisé en ce qu'un historique d'un nombre donné de plans de placement (x1,1) déterminés est stocké dans une zone de stockage (8), et en ce que la détermination d'un plan de placement (x1,1) prend en compte l'historique stocké dans la zone de stockage (8).