• Aucun résultat trouvé

de migrations mais d´egradent la qualit´e de la solution (le nombre de nœuds utilis´es). Ces approches ne disposent d’aucune flexibilit´e et la consid´eration de nouvelles contraintes sp´ecifiques `a la grappe ou mˆeme

`a des machines virtuelles n´ecessite de revoir enti`erement les heuristiques. L’approche exacte d´ecrite dans ce chapitre calcule des configurations optimales n´ecessitant un nombre de migrations r´eduit. Il est possible de sp´ecialiser le probl`eme au besoin par l’ajout de nouvelles contraintes de placement, sans remettre en cause les pr´ec´edentes contraintes. En contrepartie, le calcul d’une configuration est g´en´eralement plus long ; nous d´etaillerons cette comparaison durant l’´evaluation de notre prototype dans le chapitre 10.

Nathujiet al.[NS07, NS08] proposent une infrastructure permettant une gestion coordonn´ee de stra-t´egies d’´economie d’´energie globale, par de la consolidation dynamique et locale, en adaptant la fr´equence de fonctionnement des processeurs aux besoins [EKR02]. Un moniteur observe les requˆetes ACPI des dif-f´erentes machines virtuelles et propose un placement r´eduisant le nombre de nœuds allum´es et si possible la fr´equence de fonctionnement des processeurs. On retrouve ´egalement cette strat´egie dans les travaux de Vermaet al.[VAN08b] qui se focalisent sur des applications de type calculs haute performance. Ces deux approches diff`erent l´eg`erement de notre approche en d´eclarant un objectif qui se focalise ouvertement sur la notion d’´energie alors que notre cas d’´etude se focalise sur la r´eduction du nombre de nœuds utiles.

Wood et al. [WTLS+09] utilisent des hyperviseurs partageant des pages m´emoires entre machines virtuelles afin d’am´eliorer le niveau de consolidation. En plus de calculer une configuration viable, ils consid`erent le«taux d’affinit´e m´emoire» des machines virtuelles en regroupant si possible sur un mˆeme nœud les machines virtuelles partageant le plus de pages m´emoires. Chaque nœud peut alors h´eberger plus de machines virtuelles.

7.5 Conclusion

Bilan

Nous avons pr´esent´e dans ce chapitre un module de d´ecision pour Entropy r´ealisant de la consolidation dynamique de machines virtuelles. Cette approche permet de r´eduire les coˆuts de fonctionnement des grappes en h´ebergeant les machines virtuelles en cours d’ex´ecution sur un nombre minimum de nœud.

En fonction des besoins courant en ressources CPU et m´emoires des machines virtuelles, la configuration utilise le nombre de nœud minimum permettant de satisfaire les besoins en ressources de chacune. Notre approche reposant sur la programmation par contraintes permet de calculer une solution optimale pour ce probl`eme en r´eduisant le nombre de migrations `a r´ealiser. Contrairement aux approches heuristiques, il est possible d’enrichir VMPP en sp´ecifiant de nouvelles contraintes ou de prendre en compte de nouveaux objectifs. En reprenant la fonction d´efinissant l’affinit´e des machines virtuelles d´efinie dans [WTLS+09], nous pouvons rapprocher les machines virtuelles de fa¸con `a maximiser le partage de la m´emoire afin d’am´eliorer la consolidation.

Perspectives

Nous pensons que diff´erentes optimisations permettrait d’am´eliorer la r´esolution de ce probl`eme. Premi`e-rement, l’estimation des bornes de la variable d´ecrivant le nombre de nœuds est bas´ee sur des heuristiques.

Si le calcul d’une bonne borne sup´erieure permet d’assurer de trouver une solution rapidement, il est im-p´eratif de d´efinir une borne inf´erieure la plus proche possible de la solution optimale. Une recherche plus pouss´ee d’algorithmes calculant une borne inf´erieure permettrait ainsi de r´eduire l’espace de recherche.

L’objectif du probl`eme VMPP est de r´eduire le nombre de nœuds utiles. En consid´erant ´egalement la r´eduction du nombre de migrations, nous cherchons `a r´esoudre un probl`eme selon deux objectifs. La r´esolution d’un tel probl`eme consiste `a calculer un compromis entre plusieurs valeurs objectif. Il importe alors de d´efinir une fonction pond´erant chaque objectif. Des ´evaluations de pr´ec´edentes impl´ementations de ce module ont cependant montr´ees que le temps de r´esolution d’un tel probl`eme ainsi que la qualit´e du r´esultat ´etaient moins satisfaisants que la r´esolution d’un probl`eme ayant comme objectif le calcul du nombre minimum de nœuds et r´eduisant le nombre de migrations par une simple heuristique de branchement.

L’architecture actuelle du module de d´ecision maintien l’´etat de toute les machines virtuelles lors du calcul de la nouvelle configuration viable, aucune tˆache en attente ne pourra alors ˆetre ex´ecut´ee. De

plus, notre approche consid`ere des tˆaches ´evolutives ainsi que des partitions dynamiques dont la taille est adapt´ee aux besoins CPU des machines virtuelles. Nous ne pouvons donc pr´edire avec exactitudes leurs besoins et assurer ainsi que le VMPP aura une solution : si les besoins CPU des machines virtuelles sont trop important, alors il n’existera pas de configuration viable et les performances des applications seront d´egrad´ees jusqu’`a ce que les besoins CPU baissent et qu’une nouvelle solution existe. Une solution consiste `a suspendre des tˆaches en cours d’ex´ecution temporairement pour maintenir une configuration viable. Ce point sera trait´e dans le chapitre 9.

Le module de d´ecision est charg´e du calcul d’une configuration viable d´ecrivant la solution que l’on souhaite obtenir. Cette configuration est ensuite soumise au module de reconfiguration charg´e de d´etecter les actions `a r´ealiser ainsi qu’un ordonnancement efficace de celles-ci afin d’assurer la fiabilit´e du processus.

Nous discutons de ce module dans le chapitre suivant.

Chapitre 8

La reconfiguration

O`u nous discutons du processus assurant la transition entre la configuration courante et une nouvelle configuration viable calcul´ee par un module d´ecision. Cette transition n´ecessite ´even-tuellement de passer par des configurations transitoires. Nous mettons en ´evidence l’existence d’inter-d´ependances entre certaines actions et proposons un algorithme pour la cr´eation d’un plan de reconfiguration assurant la faisabilit´e de toute les actions de transition tout en fa-vorisant l’ex´ecution en parall`ele des actions. Nous ´evaluons ´egalement la dur´ee d’ex´ecution des actions ainsi que leur impact sur les performances dans diff´erentes situations. Ces crit`eres sont en effet pr´epond´erant dans un syst`eme auto-adaptatif. Nous d´efinissons alors une approche pour r´eduire la dur´ee d’une reconfiguration en calculant une configuration impliquant une dur´ee d’ex´ecution du plan associ´e minimum.

Sommaire

8.1 D´etection de d´ependances entre actions . . . 64 8.1.1 Le graphe de reconfiguration . . . 64 8.1.2 D´etection des d´ependances . . . 65 8.2 Le plan de reconfiguration . . . 66 8.3 Estimation du coˆut d’une reconfiguration . . . 67 8.3.1 M´ethodologie . . . 67 8.3.2 Dur´ee des actions . . . 69 8.3.3 Impact sur les performances . . . 70 8.4 R´eduction de la dur´ee de la reconfiguration . . . 72 8.4.1 Mod`ele de coˆut . . . 72 8.4.2 Minimisation du coˆut d’un plan . . . 73 8.5 Travaux apparent´es . . . 74 8.6 Conclusion . . . 74

L

epassage de la configuration courante `a une nouvelle configuration viable implique d’ex´ecuter plusieurs actions agissant sur le cycle de vie des machines virtuelles. Le cycle de vie d’une machine virtuelle est assimilable `a une machine `a ´etats finis d´eterministe ; l’observation de la configuration courante et de la configuration destination permet donc d’inf´erer sur l’ensemble des actions `a ex´ecuter. Cette ensemble d’action assurant la transition entre la configuration courante et une nouvelle configuration destination forme une reconfiguration.

Les actions manipulant une machine virtuelle permettent de changer son ´etat ou encore sa position dans la grappe. La Table 8.1 d´ecrit l’impact des actions sur la disponibilit´e des ressources des nœuds impliqu´es dans celles-ci `a savoir le nœud h´ebergeant la machine virtuelle dans la configuration courante (le nœud source) et dans la configuration destination (nœud destination).

Les actions de lancement et de reprise d’activit´e consomment des ressources sur le nœud destination.

La disponibilit´e des ressources sur le nœud destination peut donc ˆetre consid´er´ee comme une pr´econdition 63

n´ecessaire `a l’ex´ecution des actions. Les actions d’arrˆet et de suspension d’activit´e au contraire lib`erent des ressources sur le nœud source. Cette cons´equence est alors une postcondition de l’ex´ecution. Finalement, l’action de migration implique `a la fois une pr´econdition sur la disponibilit´e des ressources sur le nœud destination et d’une postcondition lib´erant des ressources sur le nœud source.

Action Impact sur les ressources Consommateur Lib´erateur

Lancement X

Arrˆet X

Suspension X

Reprise X

Migration X X

Table8.1 – Impact des actions sur les ressources des nœuds source et destination

L’existence de pr´econditions pour l’ex´ecution de certaines actions indique qu’il n’est pas possible de r´ealiser les actions d’une reconfiguration de mani`ere arbitraire. Si une reconfiguration est compos´ee d’actions lib´erant et consommant des ressources, alors il peut ˆetre n´ecessaire d’ex´ecuter des actions lib´erant des ressources en priorit´e afin de rendre des actions consommatrices r´ealisables. Il est donc n´ecessaire de planifier l’ensemble des actions composant un processus de reconfiguration afin d’assurer la faisabilit´e de chaque action.

Un autre enjeu du processus de reconfiguration est li´e `a la consid´eration du temps d’ex´ecution des actions. Bien que le temps d’ex´ecution d’une action peut ˆetre n´egligeable dans certaines situations, la r´ealisation d’un grand nombre d’actions peut n´ecessiter un temps cons´equent lorsque celles-ci sont ex´e-cut´ees s´equentiellement. Durant le processus de reconfiguration, les besoins en ressources des machines virtuelles en cours d’ex´ecution sont susceptibles de varier. Lorsque le temps de reconfiguration est long alors l’auto-adaptation ne sera pas assez r´eactive face `a la dynamicit´e des besoins des machines virtuelles.

Le syst`eme doit donc assurer une reconfiguration la plus rapide possible pour maximiser la r´eactivit´e du syst`eme et limiter son impact sur les performances de la grappe.

Nous discutons dans ce chapitre du processus de reconfiguration. Apr`es une description des probl`emes li´es au s´equencement des actions, nous d´ecrivons notre approche assurant la faisabilit´e des configurations transitoires. Nous discutons de notre approche pour r´eduire le temps de reconfiguration par la r´esolution d’un probl`eme d’optimisation sous contraintes. Finalement, nous positionnons notre approche par rapport aux travaux apparent´es.