Gobelins un système d exploitation distribué pour un cluster à image unique Geoffroy Vallée EDF/IRISA/RESAM gvallee@irisa.fr http://www.edf.fr/der/ http://www.irisa. fr/paris 1
Plan de l exposé Introduction Le système d exploitation GOBELINS La migration de processus Conclusions et perspectives 2
Introduction Problématique du clustering Besoin de donner une image unique du système (Single System Image) Offrir des hautes performances (programmation noyau + réseau haute performance) 3
Plan de l exposé Introduction Le système d exploitation GOBELINS La migration de processus Conclusions et perspectives 4
GOBELINS (1) Objectifs : Donner une vision SMP du cluster Facilité de programmation Haute performance Haute disponibilité 5
Processus GOBELINS (2) Processus Ordonnanceur Ordonnanceur Ordonnanceur CPU CPU CPU CPU Mémoire MPR Mémoire SGFD / SGFP 6
Les conteneurs (1) Système d exploitation Système de fichiers virtuel Mémoire Virtuelle Système d exploitation Système de fichiers virtuel Mémoire Virtuelle Conteneurs Périphérique Mémoire Mémoire Périphérique 7
Les conteneurs (2) Entité virtuelle composée de pages mémoires Accessible par tous les nœuds de la grappe Manipulée par le noyau Assure la cohérence des données répliquées Gestion mémoire de type COMA Mémoire physique = Cache de pages des conteneurs Une page accédée est placée dans un cadre de page Pages peuvent êtres injectées en mémoire distante Cohérence forte Protocole d invalidation par écriture 8
Extention du noyau Linux 2.2.13 Gobelins (3) Application Application User Space Gobelins : 3 modules Migration (Aragorn) Containers (Gandalf) Bibliothèque de communication ( Gimli) Gimli Aragorn (Migration) Gandalf (Containers) Linux Core Kernel Kernel Space 9 Réseau
Plan de l exposé Introduction Le système d exploitation GOBELINS La migration de processus Conclusions et perspectives 10
Les besoins de Gobelins Haute disponibilité Haute performance Facilité de programmation (programmation SMP) Migration automatique de processus pour équilibrer la charge checkpoint / restart 11
La migration de processus (1) Problématique : On doit pouvoir lancer l ordre de migration à tout moment (asynchronisme ) On doit avoir accès aux registres (état connu du système) utilisation du signal UNUSED La machine cible doit être prête à tout moment Les informations du processus à migrer doivent être envoyées dès que le processus traite le signal de migration Création de kernel thread mettant en place des démons d envoi et de réception des informations des processus 12
La migration de processus (2) On souhaite réutiliser au maximum les fonctions du noyau (do_fork, etc.), et modifier au minimum le noyau Migration ~ fork La migration n est pertinente que si: Les informations mémoires associées ( vma) au processus sont transmises Les informations sur les fichiers manipulées par le processus sont transmises (système de fichiers distribués / parallèles) => Les conteneurs offrent une solution efficace 13
La migration de processus (3) Architecture du prototype : 14
La migration de processus (4) La migration des informations mémoires et les conteneurs Problématique : certains segments mémoires sont liés à des conteneurs Si le VMA à migrer est lié à un conteneur, simplement recréer ce lien après la migration => fonctions link_vma_to_ctnr() Sinon, migrer le VMA et ces pages mémoires physiques associées => Les conteneurs facilitent la mise en œuvre de la migration de processus 15
La migration de processus (5) Noyau Volatile Pile Données End Begin Object Ctnr Mem op... Container container_grabpage container_getpage Donnée Texte Swap in Swap out First touch COW... 16 Lieur Mémoire mem_nopage mem_wppage
Plan de l exposé Introduction Le système d exploitation GOBELINS La migration de processus Conclusion et perspectives 17
Conclusion et perspectives La migration de processus est complexe mais indispensable (équilibrage de charge dynamique, check point/ restart, etc.) Gobelins simplifie la migration (tant au niveau mémoire que fichiers) Travaux en cours : Étendre la migration à des processus plus complexes Trouver une politique de scheduling adéquate 18
Annexe 19
Modifications du noyau Détourne des fonctions bas niveau de gestion mémoire et système de fichiers 6 fonctions noyau modifiées 150 lignes ajoutées ou modifiées dans le noyau Taille du code Conteneurs : 3000 lignes Gimli : 2500 lignes Aragorn : 1500 lignes et ~60 lignes du noyau modifié 20