• Aucun résultat trouvé

standards variables comme des services d’authentification, des services DHCP ou des serveurs de fichiers afin d’installer l’application sans pr´e-requis logiciels. On note la possibilit´e d’utiliser plusieurs types d’hy-perviseurs, soit par le biais d’API, soit en utilisant la couche d’abstraction fournie par Libvirt.

Ces solutions proposent une API et une architecture modulaire d´edi´ees au d´eveloppement de modules de d´ecision sp´ecifiques. Grit et al. proposent similairement `a Entropy, avec une extension de Shirako une s´eparation entre la partie d´ecisionnelle et les m´ecanismes permettant de r´ealiser l’adaptation. Les diff´erentes API misent `a disposition se limitent cependant `a l’´ecriture d’heuristiques de placement ou d’ordonnancement standard. OpenNebula propose en sus un moteur de r`egles permettant aux utilisateurs et aux administrateurs de sp´ecifier des contraintes sur le placement des machines virtuelles. Cette approche est cependant limit´ee par les soucis de composition de r`egles et de conflits que nous avons ´evoqu´es dans le chapitre 5.

Cette th`ese se focalise sur la partie d´ecisionnelle et la planification de l’adaptation du placement des machines virtuelles. `A l’oppos´e, les diff´erents environnements expos´es ci-dessus se focalisent sur la d´efinition d’une architecture permettant la manipulation des machines virtuelles. En ce sens, ils sont compl´ementaires et il semble possible d’interfacer Entropy avec ces diff´erents environnements en d´evelop-pant des adaptateurs pour les syst`emes de supervision de ces logiciels et des pilotes pour l’ex´ecution des actions. Cette int´egration faciliterait le d´eploiement du module de d´ecision, de planification et de la base de connaissances d’Entropy ainsi que sa maintenance.

6.5 Conclusion

Bilan

Nous avons pr´esent´e dans ce chapitre l’architecture g´en´erale du logiciel Entropy qui a ´et´e d´evelopp´e au cour de cette th`ese. Il permet une auto-optimisation en continu du placement de machines virtuelles et de l’ordonnancement des tˆaches en agissant sur leur cycle de vie. Les interfaces mises `a disposition assurent de pouvoir utiliser Entropy avec des environnements logiciels sp´ecifiques : le d´eveloppement d’adaptateur pour les syst`emes de supervision usuels tel que Ganglia permet d’extraire la configuration courante tandis que l’utilisation de pilotes permet d’ex´ecuter les actions manipulant les machines virtuelles sur un hyperviseur sp´ecifique tel que Xen. La s´eparation de la partie d´ecisionnelle calculant un nouveau placement id´eal et des m´ecanismes de mise en place de cet agencement permet aux administrateurs de d´evelopper leur propre module de d´ecision en utilisant l’API bˆatie autour du solveur de contraintes Choco.

Perspectives

Notre approche propose un environnement complet permettant de contrˆoler les machines virtuelles durant la totalit´e de leur cycle de vie. Cependant la contribution de cette th`ese se focalise sur l’aspect d´ecisionnel et la planification de l’auto-adaptation. La n´ecessit´e de maintenir la totalit´e d’un environnement de gestion des machines virtuelles est potentiellement un frein au d´eploiement d’Entropy. Utiliser des machines virtuelles dans les grappes n´ecessite en effet de revoir l’architecture de celles-ci, notamment au niveau du stockage ou des plans d’adressage du r´eseaux. Simultan´ement, des suites logicielles comme OpenNebula proposent de faciliter la mise en place d’environnements logiciels pour grappe `a base de machines virtuelles.

Afin de favoriser l’utilisabilit´e d’Entropy, il serait important de choisir apr`es une ´etude des diff´erents environnements disponibles, un environnement de r´ef´erence servant de support `a notre contribution.

Chapitre 7

Consolidation dynamique de machines virtuelles

O`u nous discutons de la mod´elisation et de l’optimisation d’un module de d´ecision r´ealisant de la consolidation dynamique de machines virtuelles. Cette approche permet de concentrer les machines virtuelles en cours d’ex´ecution sur un nombre minimum de nœuds tout en satisfaisant des besoins en ressources CPU et m´emoire variables. Cette strat´egie de placement dynamique permet d’augmenter la capacit´e d’accueil de la grappe en h´ebergeant simultan´ement plus de machines virtuelles ou de r´eduire la consommation ´energ´etique de la grappe en ´eteignant les nœuds inutilis´es.

Sommaire

7.1 Mod´elisation . . . 56 7.2 Optimisation de la r´esolution . . . 57 7.2.1 Estimation du nombre de nœud minimum . . . 57 7.2.2 Utilisation des sym´etries . . . 58 7.2.3 Heuristiques de branchement . . . 58 7.3 Impl´ementation dans Entropy . . . 59 7.4 Travaux apparent´es . . . 60 7.5 Conclusion . . . 61

L

observation du taux moyen d’utilisation des grappes de serveurs met en ´evidence une sous-utilisation de ces infrastructures. En effet, le site Parallel Workload Archive [PWA] met en ´evidence un taux d’utilisation moyen de 53,44% pour les 23 traces d’activit´e renseignant cette information. L’analyse de ces traces montre cependant que les grappes ne sont pas soumises en permanence `a un niveau d’utilisation constant. Elles alternent le plus souvent des pics d’activit´es occupant la quasi-totalit´e des nœuds de calcul avec des p´eriodes calmes o`u la grappe est grandement sous-utilis´ee. Ainsi, malgr´e un taux d’utilisation tr`es variable des grappes, l’architecture reste disponible et op´erationnelle int´egralement. Les coˆuts de fonctionnement de la grappe tels que la consommation ´electrique ou les frais de climatisation ne sont pas li´es `a son utilisation r´eelle. Une partie de ces coˆuts n’est alors pas rentabilis´ee.

La consolidation consiste `a h´eberger plusieurs machines virtuelles sur un mˆeme nœud. En ´eteignant les nœuds inutilis´es, cette approche r´eduit la consommation ´energ´etique des grappes. Elle augmente

´egalement la capacit´e d’h´ebergement d’une grappe en permettant d’h´eberger simultan´ement plus de machines virtuelles. Cependant, si l’allocation des ressources pour les machines virtuelles est dynamique, il peut ˆetre n´ecessaire de revoir cet agencement en fonction des besoins courants afin de maintenir un niveau de performance optimale.

La consolidation pour dans le but d’´eteindre les nœuds inutilis´es est un d´eriv´e de la strat´egie VOVO (Vary On Vary Off) [CIG+03, PBCH02] o`u un r´epartiteur de charges redirige des requˆetes HTTP sur un nombre minimum de serveurs pour ´eteindre les nœuds inutilis´es. En fonction de la charge, des nœuds suppl´ementaires peuvent ˆetre allum´es pour maintenir un niveau de performances correcte. Dans le cadre

55

de la consolidation dynamique, les machines virtuelles peuvent ex´ecuter des applications n´ecessitant un long temps de calcul ou des applications `a haute disponibilit´e. Il n’est donc pas envisageable d’attendre la fin de l’ex´ecution d’une application pour r´e´equilibrer la charge. Dans cette situation, la solution consiste

`a migrer `a chaud les machines virtuelles en cours d’ex´ecution pour concentrer la charge sur un nombre r´eduit de nœuds. Cette approche s’apparente `a une gestion dynamique de tˆaches o`u les machines vir-tuelles appartenant aux tˆaches en cours d’ex´ecution sont assimil´ees `a des tˆaches ´evolutives (les besoins en ressources varient naturellement durant l’ex´ecution) et la migration `a chaud des machines virtuelles dans l’´etatEx´ecutionpermet de r´ealiser un partitionnement spatial dynamique des ressources en fonction des besoins courants en m´emoire et en CPU.

Dans ce chapitre, nous discutons de la mod´elisation d’un probl`eme d’optimisation `a base de contraintes calculant une configuration utilisant un minimum de nœuds tout en satisfaisant les besoins en ressources des machines virtuelles en cours d’ex´ecution. Nous discutons ensuite des diff´erentes strat´egies que nous avons consid´er´ees pour r´eduire le temps de r´esolution du probl`eme. Dans une troisi`eme section, nous pr´esentons l’impl´ementation de ce probl`eme dans Entropy puis nous positionnons notre approche par rapport `a diff´erents travaux apparent´es. Finalement, nous concluons ce chapitre en discutant des limites de notre approche et de ses extensions possibles.