Gobelins : un système d'exploitation distribué pour des grappes de PC



Participants : Viet Hoa Dinh, Pascal Gallard, Renaud Lottiaux, Christine Morin, Gaël Utard, Geoffroy Vallée.

Mots clés : gestion globale et dynamique des ressources, mémoire partagée répartie, migration de processus, haute disponibilité, tolérance aux fautes, recouvrement arrière .

Contact : Christine Morin
Statut : déposé à l'APP sous le numéro IDDN.FR.001.480003.00.S.C.2000.000.10100.

Gobelins est un système d'exploitation distribué mettant en oeuvre une gestion globale et dynamique des ressources (mémoires, disques et processeurs) d'une grappe de calculateurs pour l'exécution d'applications à haute performance. Gobelins offre aux applications la vision d'un multiprocesseur à mémoire partagée virtuel à haute performance et haute disponibilité. Ainsi, une application multithreadée conçue pour une machine SMP peut être exécutée sans modification (compatibilité binaire) sur le système Gobelins. Ce système est construit autour du concept de conteneur qui est à la base de la gestion globale de la ressource mémoire dans la grappe. Un conteneur est un ensemble de pages qui est identifié de manière unique dans la grappe. Le système Gobelins permet à tous les noeuds de la grappe d'accéder de façon transparente et cohérente aux pages d'un conteneur indépendamment de leur localisation physique. Les conteneurs sont intégrés au sein d'un système d'exploitation hôte grâce à des lieurs qui permettent de construire différents services distribués de haut niveau. Ainsi, Gobelins offre un système de gestion de fichiers distribué offrant une interface de projection et un système de caches coopératifs fondés sur les conteneurs. Le mécanisme de migration de processus utilisé pour l'ordonnancement global des processus sur la grappe s'appuie lui aussi sur les conteneurs grâce auxquels les accès aux fichiers ouverts sur le n\oe ud d'origine d'un processus migré peuvent être réalisés efficacement sur son nouveau noeud d'exécution.

Enfin, le service de gestion dynamique des ressources mis en oeuvre par le système Gobelins permet d'ajouter ou de retirer des noeuds à la grappe sans arrêter le système et par conséquent sans perturber les applications en cours de fonctionnement. Ce service pilote également la reconfiguration des services distribués en cas de défaillance pour assurer la haute disponibilité du système malgré la gestion globale des ressources.

Le système Gobelins est mis en oeuvre sous forme de modules d'extension au noyau Linux. Le choix de ce système est délibéré afin de permettre une compatibilité totale avec les applications conçues pour ce système.

Quelques fonctions du noyau Linux ont été détournées pour permettre la liaison entre les segments mémoires du système Linux et les conteneurs. En outre, nous avons été amenés à concevoir un système de communication efficace doté d'une interface de niveau noyau et indépendant de la technologie du réseau d'interconnexion sous-jacent pour la mise en oeuvre des services distribués du système Gobelins. Ce système de communication appelé GIMLI (Gobelins Interaction Message LIbrary) met en oeuvre le concept de port et offre une interface de type envoyer/recevoir ainsi que des messages actifs.

Une première version du système Gobelins est opérationnelle sur une grappe de PCs interconnectés par un réseau Fast Ethernet ou GigabitEthernet. L'adaptation du système de communication Gimli à Myrinet est en cours. Avec l'arrivée de V.H. Dinh, ingénieur associé INRIA, nous avons pour objectif de proposer une version de Gobelins disponible sur le site Web du projet.