• Aucun résultat trouvé

Une grille de calcul est un syst`eme distribu´e regroupant un grand nombre de ressources h´et´erog`enes appartenant `a diff´erents domaines d’administration et partag´ees au sein

d’or-ganisations virtuelles. Plusieurs architectures de grilles existent. Pour notre ´etude, nous consid´erons l’architecture la plus g´en´erique : une grille h´et´erog`ene. Ce type d’architec-ture permet de r´epondre aux besoins en ressource de calcul des applications de calcul scientifique. Cependant exploiter les ressources d’une grille de calcul n’est pas simple car le nombre d’utilisateurs de la grille et donc d’applications s’ex´ecutant sur celle-ci peut ˆetre tr`es grand. De plus, il faut ˆetre capable de prendre en compte l’h´et´erog´en´eit´e et la volatilit´e des nœuds de la grille, cons´equences de sa taille. C’est pourquoi un syst`eme de grille est utilis´e. Son rˆole est de simplifier l’exploitation de la grille par les utilisateurs tout en optimisant les performances.

Nous nous int´eressons aux probl`emes li´es `a la volatilit´e des nœuds de la grille. Cette volatilit´e peut ˆetre due `a des connections et des d´econnections volontaires ou `a des d´efaillances. Le cas probl´ematique est celui des d´efaillances. ´Etant donn´e la taille d’une grille de calcul, les risques de d´efaillances y sont ´elev´es. La d´efaillance d’un nœud de la grille peut entraˆıner la d´efaillance d’applications et/ou de services du syst`eme de grille.

Comme les applications de calcul scientifique peuvent avoir un temps d’ex´ecution tr`es grand et ˆetre distribu´ees sur un grand nombre de ressources, la probabilit´e qu’elles subis-sent une d´efaillance au cours de leur ex´ecution sur la grille est tr`es ´elev´ee, compromettant leur bonne terminaison. De mˆeme, la d´efaillance d’un service du syst`eme de grille peut empˆecher les applications de fonctionner correctement, dans le cas d’un service de gestion de donn´ees, voir mˆeme empˆecher les utilisateurs de la grille de soumettre son applica-tion, dans le cas d’un service de gestion des applications. Traiter les cons´equences des d´efaillances de nœuds est donc indispensable pour qu’une grille ne soit pas qu’un grand ensemble de ressources inexploitables. C’est pourquoi ce document s’int´eresse aux solutions permettant d’ex´ecuter de mani`ere fiable des applications dans les grilles de calcul.

Les techniques de tol´erance aux fautes ont pour objectif de traiter les cons´equences d’une d´efaillance. Les trois familles de technique de tol´erance aux fautes existantes sont les techniques de retour arri`ere, la duplication passive et la duplication active. Chacune de ses techniques offre des niveaux de disponibilit´e diff´erents. Plus le niveau de disponi-bilit´e offert est ´elev´e, plus le coˆut de mise œuvre de la solution, en terme de consomma-tion de ressources, est ´elev´e. Cependant, plus la quantit´e de ressources n´ecessaires `a la tol´erance aux fautes est ´elev´ee, moins celle disponible pour l’ex´ecution des applications est grande. Dans le domaine du calcul haute performance, c’est donc un enjeu important. C’est pourquoi il est indispensable de sp´ecifier correctement les besoins en tol´erance aux fautes pour ˆetre capable de fournir la solution la plus appropri´ee.

Travailler sur des techniques de tol´erance aux fautes n´ecessite pr´ealablement de d´efinir le mod`ele de faute consid´er´e. Nous consid´erons que dans une grille les garanties en terme de s´ecurit´e offertes par les organisations virtuelles permettent d’´ecarter les fautes byzantines. Nous choisissons donc un mod`ele de faute par arrˆet total. Ces fautes, cons´equences de d´efaillances mat´erielles, peuvent ˆetre ind´ependantes, comme dans le cas de la d´efaillance d’un disque sur une machine physique, ou corr´el´ees, comme dans le cas d’une d´efaillance d’un syst`eme de refroidissement affectant tous les nœuds d’une grappe de calcul. Nous consid´erons des canaux de communications fiables et FIFO. La d´efaillance d’un lien d’in-terconnexion est vue comme la d´efaillance des nœuds d´ependant de ce lien. Enfin nous supposons disposer de m´ecanismes de d´etection de d´efaillances r´epondant au moins `a la sp´ecification du d´etecteur de d´efaillance non fiable⋄S.

Nous voulons fournir des solutions pour assurer une utilisation simple et optimis´ee des ressources de la grille en d´epit de l’occurrence de d´efaillances. Cette optimisation passe par la mise en œuvre de solutions adapt´ees au contexte des grilles de calcul, c’est-`a-dire prenant en compte la taille de la grille et son h´et´erog´en´eit´e. La simplicit´e des solutions

propos´ees doit ˆetre jug´ee du point de vue des utilisateurs. C’est une condition indispensable pour rendre les grilles de calcul attractives. En d´epit de l’occurrence de d´efaillances sur la grille, nous voulons ˆetre capable d’assurer aux utilisateurs la bonne terminaison de leur application et l’obtention des r´esultats associ´es et ce, le plus rapidement possible.

Si les travaux pr´esent´es dans ce document sont men´es dans le contexte des grilles de calcul, la probl´ematique de la gestion de la volatilit´e des ressources dans un environnement distribu´e de grande taille et h´et´erog`ene peut ˆetre consid´er´ee comme une probl´ematique commune `a d’autres types de syst`emes distribu´es. Aussi, les solutions propos´ees dans ce document peuvent ˆetre applicables `a d’autres syst`emes distribu´es dont le mod`ele de fautes est le mˆeme que celui utilis´e ici.

Chapitre 2

Ex´ecution fiable d’applications sur