Systèmes distribués à grande
échelle : déploiement et mise à jour à base
de composants Responsable : Vania Maragozova |
Description |
Résumé
Le déploiement d'un système à grande échelle est un processus complexe qui inclut l'installation, la configuration et l'activation de logiciels divers allants du système d'exploitation aux applications utilisateur. Il implique la gestion d'un très grand nombre de machines, de liens de réseau hétérogènes et d'une multitude de versions logicielles. La gestion de tous ces aspects nécessite des outils adaptés qui permettent le contrôle et l'automatisation du processus de déploiement.
Dans le cadre des plates-formes
de calcul scientifique hautes performances, où il s'agit
d'effectuer des calculs sur des milliers de machines pendant des heures
(des exemples sont le calcul du génome humain ou la simulation
d'une explosion nucléaire), les exigences envers les outils de
déploiement sont encore plus importantes. En effet, en plus de
contrôler le processus de déploiement, les outils doivent
minimiser le temps de déploiement et adapter le processus de
déploiement aux spécificités du calcul à
effectuer.
L'objectif de ce stage est d'étudier et de proposer des
mécanismes de déploiement qui, tout en restant efficaces
dans le temps, permettent de prendre en compte la structure du logiciel
déployé afin d'adapter le processus de déploiement.
Description
Ce stage s'inscrit dans la
recherche d'outils de déploiement pour les systèmes
à grande échelle utilisés pour le calcul
scientifique [1]. Dans ces systèmes, les utilisateurs effectuent
des calculs sur un grand nombre de machines et ont souvent besoin de
logiciels et de configurations spécifiques. Le calcul s'effectue
pendant un certain temps après lequel les machines sont
affectées à d'autres calculs avec des besoins
différents. L'objectif est donc d'être capable de
déployer (d'adapter) l'environnement logiciel d'un grand nombre
de machines en peu de temps et de manière à
répondre aux besoins de l'utilisateur en cours.
De nombreuses recherches se sont intéressées au
problème de déploiement logiciel, proposant toujours de
nouveaux outils de déploiement. Toutefois, peu d'outils se sont
intéressés simultanément au déploiement de
l'intégralité de la pile logicielle (système
d'exploitation, librairies, applications), aux aspects de performances
(temps de déploiement) et aux aspects d'architecture du logiciel
déployé. Dans le domaine du génie logiciel, par
exemple, les outils s'adressent généralement à un
seul logiciel et considèrent son architecture en vue de la
gestion des versions et des mises à jour [2]. Dans le domaine
des intergiciels distribués, les outils traitent les
dépendances et la précédence d'installation et
d'activation des composants du niveau middleware, mais en
considérant que la couche système est
préalablement installée [3]. Enfin, dans le domaine du
calcul scientifique, les outils visent un temps de déploiement
minimal et déploient des blocs de logiciels qui incluent toute
la pile logicielle [4]. Ils ne s'intéressent pas à la
structure interne des blocs déployés, ni à
l'architecture logicielle globale.
L'objectif de ce stage de DEA est de proposer une solution de
déploiement qui permette de marier ces différentes
approches. La recherche portera sur des mécanismes de
déploiement permettant (1) de supporter la grande échelle
(2) rester efficace dans le temps et (3) utiliser une
modélisation à base de composants de la structure du
logiciel afin de permettre l'adaptation lors de son déploiement.
La proposition d'utiliser une approche à composants est
motivée par l'application réussie des composants dans les
cas d'adaptation de grands systèmes logiciels distribués
[5].
Le projet de DEA s'effectuera
dans le projet MESCAL du laboratoire ID (projet joint
INRIA-CNRS-UJF-INPG). MESCAL travaille sur les problèmes de
construction de middleware efficace pour les systèmes à
grande échelle et un des acteurs majeurs dans la construction de
la plate-forme nationale Grid'5000. Lors du stage, l'étudiant
travaillera sur les outils de déploiement
développés au sein du projet et étudiera les
possibilités d'application d'une approche à base de
composants.
[1] The Grid: Blueprint for a New Computing Infrastructure, 2nd Edition, Morgan Kaufmann, 2004. ISBN: 1-55860-933-4.
[2] Lars Bendix: Fundamental Tasks in Software Development
Environments in INFORMATICA - An International Journal of
Computing and Informatics, Volume 19, Number 3, September 1995
[3] Sara Bouchenak, Fabienne Boyer, Daniel Hagimont, Sacha Krakowiak,
Adrian Mos, Noël de Palma, Vivien Quema, and Jean-Bernard Stefani.
Architecture-Based Autonomous Repair Management: An Application to J2EE
Clusters. The 24th IEEE Symposium on Reliable Distributed Systems
Orlando, FL, USA, October 2005.
[4] http://www-id.imag.fr/Logiciels/kadeploy/index.html
[5] http://en.wikipedia.org/wiki/Software_componentry
Mots-Clés
Déploiement, Grande échelle, Systèmes distribués, Composants
Résultats théoriques attendus
L'étudiant devra expliciter la structure d'une pile logicielle d'une machine et proposer une modélisation en termes de composants. Après une étude bibliographique dans le domaine du déploiement et des composants, il devra (1) proposer une structuration générique des environnements logiciels déployés (2) étudier les modèles à composants et choisir un modèle adapté au contexte du déploiement et (3) exprimer les actions de déploiement en termes d'actions sur des composants.
Résultats pratiques attendus
L'étudiant devra valider sa proposition en travaillant sur l'outil kadeploy développé au sein de MESCAL. La validation sera faite sur la plate-forme Grid'5000 qui compte 9 sites et 3000 processeurs environ.
Contact
Vania dot Marangozova at imag dot fr
Coallocation de ressources dans les grilles hierarchiques
Responsable : Guillaume Huard |
Description |
Résumé
L'objectif proposé par ce sujet est la mise en place de solutions
théoriques et
pratiques pour la collaboration et la coordination d'un
ensemble de gestionnaires de ressources afin de permettre la coallocation d'une
partie des
ressources d'une grille à structure hiérarchique.
Sujet détaillé
Etude des solutions de déploiement d'exécutions distantes
Responsable : Guillaume Huard |
Description |
Résumé
Le travail proposé par ce sujet est l'étude expérimentale des différentes
solutions existantes pour le déploiement d'exécutions distantes.
Il s'agit en particulier d'identifier les besoins dans ce domaine, de comparer
les caractéristiques et fonctionnalités proposées par les différents outils
disponibles et, selon le temps disponible, de proposer des améliorations à
intégrer à l'outil de déploiement utilisé au laboratoire ID.
Sujet détaillé
Mesure, caractérisation et injection de charge à l'usage des machines parallèles
Responsable : Guillaume Huard |
Description |
Résumé
Le travail proposé par ce stage est l'étude des diverses charges matérielles
pouvant apparaître au sein d'une machine parallèle.
Ces charges concernent toutes les composantes d'une machine parallèle :
réseaux, processeur, mémoire, disque.
Le but de ce stage est d'étudier les mécanismes de mesure, le comportement
caractéristique et la reproduction (aussi appelée injection) de ces différents
types de charge.
Sujet détaillé