Le rapport du projet
Transcription
Le rapport du projet
Rapport du Projet Mosix Novembre 2004 Equipe : Ballesta Cyril, Stéphane Callieres ,Joseph Dayssol, et Julien Teyssier Responsable du projet : Bernardi Fabrice Projet réalisé dans le cadre du Master 2 ISI Table des matières 1. 2. 3. 4. 5. Présentation du projet......................................................................................................... 3 Qu’est que un CD Open Mosix ? ....................................................................................... 3 Installation et patch d’un noyau. ........................................................................................ 6 Réalisation d’un Live CD................................................................................................... 6 Annexe ............................................................................................................................... 7 1. 1.1 Présentation du projet Introduction Dans le cadre du contrôle continu du module Algo Répartie et Programmation Concurrente nous avons été amener à réaliser un projet de recherche ayant pour but la création d’un Cd-Rom bootable d’une distribution linux minimal, patchée avec openMosix afin de pouvoir déployer rapidement un cluster. Ce cd devrait être utilisé pour les projets de l’université de Corse. Nous commencerons par présenter en premier lieu les objectifs et l’intérêt du projet En deuxième lieu, nous allons décrire distinctement ce qu’est un Cd bootable OpenMosix (livecd OpenMosix). Puis nous parlerons de la réalisation de livecd. 1.2 Objectif du projet Les objectifs du projet sont : - Réalisation d’un live cd OpenMosix - Mise en place d’un site Internet - Compte rendu du travail effectué à travers ce rapport 2. Qu’est que un CD Open Mosix ? 2.1 Présentation de Mosix Un peu d’histoire : De nombreuses applications scientifiques ou industrielles demandent des temps de calcul importants, afin d'accélérer l'obtention des résultats les constructeurs de machines ont le plus souvent essayé de miniaturiser les composants tout en augmentant leur vitesse de fonctionnement. Ainsi depuis les années 80, il existe des “super calculateurs” dont la tâche est d'optimiser les calculs. Pour y parvenir, ils font appel au calcul en parallèle. Une des solutions les plus utilisées consiste à intégrer au sein d'un même ordinateur un ensemble de microprocesseurs se partageant une mémoire commune (SMP: Shared Memory Processing). Les résultats sont intéressants et permettent d'obtenir des capacités de calcul très importantes. Une telle technique fut employée par Cray, qui a conçu des machines occupant un espace important et nécessitant un ensemble de réfrigération associé; pour des puissances de calcul inégalées au fil des ans. Cependant au delà d'un certain nombre de micro-processeurs les performances d'un tel système chutent radicalement. D'autre part, la miniaturisation nécessite de nombreuses recherches en développement assez coûteuses. C'est pourquoi le marché des “super calculateurs” s'est peu à peu effrité. En effet, Cray a tout d'abord été vendu à SGI, et cette entreprise voit désormais sa part de marché réduire de plus en plus. La raison en est l'avènement des clusters. MOSIX est une solution au problème de “load balancing” dans les clusters, proposée par l'équipe du Professeur Amnon Barak de l'université hébraïque de Jérusalem. L'objectif est de répartir les tâches de manière homogène. Ce projet existe depuis vingt ans, des tests ont été réalisés sur de nombreux systèmes d'exploitation mais l'essor de MOSIX a débuté avec son portage sur la plateforme GNU/Linux, il y a 1 an et demi. Qu’est que Mosix exactement ? MOSIX réalise le “load blancing” grâce à divers algorithmes permettant d'effectuer des statistiques sur le cluster, mais aussi des procédures garantissant un fonctionnement correct dans le cas d'incidents (on parle de Cluster Haute Performance (HP Cluster)). De manière grossière, MOSIX se charge d'assigner un processus à un noeud ou un autre suivant les ressources disponibles et nécessaires. Il s'agit de maximaliser l'utilisation de chaque machine tout en limitant les baisses de performance dues par exemple à un temps machine trop élevé ou bien un manque de mémoire entraînant le swap. De part sa conception, le cluster est totalement décentralisé, il s'agit d'un réseau “Peer to Peer” ? (P2P). Il n'existe pas de hiérarchie entre les noeuds et chacun gère ses processus par rapport aux autres noeuds. L'application du modèle proposé s'effectue via un ensemble de “patchs” (modifications) à appliquer au noyau (nous verrons plus loin quelles couches du noyau sont concernées) et de quelques outils d'administration et de suivi d'un cluster. MOSIX gère des processus non spécifiques qui évoluent sur des couches plus élevées du système que les programmes dédiés aux environnements Beowulf/PVM|MPI (mais les programmes utilisant PVM ou MPI peuvent naturellement être utilisés avec MOSIX). Mais pour se faire il doit être intégré dans des couches plus basses du système d'exploitation. 2.2 Présentation de OpenMosix OpenMosix est une extension du noyau linux utilisé pour créer des clusters. Cette extension du noyau transforme un réseau d’ordinateurs classique en un super-ordinateur destiné aux applications Linux. Une fois qu’openMosix a été installé, les nœuds des différents ordinateurs commencent à communiquer et le cluster s’adapte de lui-même au réseau. Un processus peut également être déplacé d’un nœud du réseau à un autre, si celui-ci s’avère trop chargé. Ainsi OpenMosix optimise les performances en réorganisant constamment l’allocation des ressources. OpenMosix est donc une extension de noyau linux qui permet de créer une plateforme de cluster qui est « scalable » et adaptative. Avec la découverte automatique OpemMosix, un nouveau noeud peut être ajouté pendant que le cluster s’exécute et celui-ci lui commencera a utilisé cette nouvelle ressource. Avec openMosix, il n’est pas nécessaire de programmer de nouvelles applications, car étant donné que openMosix est à l’intérieur du noyau Linux, chaque application Linux bénéficie automatiquement et de façon transparente des bénéfices de openMosix. On peut également noter qu’installer OpenMosix revient à créer un ordinateur utilisant plusieurs Cpu différents, mais qu’il est également possible de relier des ordinateurs à multi-processeurs, ce qui multiplie les performances. OpenMosix bénéficie d’une communauté très active, contribuant ainsi à son développement avec des add-on et de multiple informations extrêmement utile qui sont mis à disposition des utilisateurs. Pour terminer sur cette présentation, on notera que OpenMosix est 100 % GPL, c'est-à-dire qu’il appartient à la catégorie des logiciels libres. 2.3 Avantages et inconvenients de Mosix et OpenMosix Avantages : Le principal intérêt de MOSIX est sa facilité de mise en oeuvre puisqu'il suffit de recompiler un noyau Linux et d'installer un fichier de configuration afin d'obtenir un cluster. Cette tâche est assez aisée pour une personne familière du monde UNIX. D'autre part, la distribution des ressources de calcul s'effectue pour divers programmes sans qu'il soit besoin de les recompiler. Tout programme n'ayant pas d'interaction fortes avec le système (mémoire partagée, accès direct E/S, pipe, ...) peut être distribué par MOSIX dans le cluster. Ensuite, MOSIX possède son propre système de fichiers réparti, qui est assez basique mais permet de réaliser la majorité des opérations. Néanmoins il peut être couplé à d'autres systèmes de fichiers tels que GFS (pas dans l'immédiat). Puisque MOSIX gère les processus, il est aisé de créer des programmes exploitants un cluster, en effet il suffit d'effectuer des fork() dès que l'on désire voir une tâche s’effectuer en parallèle. Ainsi ce nouveau processus, clone du premier, sera distribué à travers le cluster de manière transparente. La programmation est donc allégée et il n'est pas nécessaire d'acquérir de nouvelles connaissances comme dans le cas de PVM, même si cet environnement est relativement facile à appréhender. Avec MOSIX il s'agit donc d'utiliser le modèle de programmation “fork and forget”. En outre, l'environnement GNU/Linux permet d'effectuer un ensemble de tâches relativement important grâce à la diversité des logiciels tournant sur cette plateforme. Ainsi il existe des compilateurs (parallèles) Fortran libres, langage très utilisé par les chercheurs, mais aussi pour les langages C/C++. Par ailleurs, Linux est stable, performant et compilable pour plusieurs types de micro-processeurs. Enfin le ratio (capacité de calcul / coût financier) est optimal. Ceci est décisif dans la majorité des cas. Inconvénients : Voici les principales raisons pour lesquelles un processus ne peut pas tirer partie d'un cluster géré par MOSIX: • il demande à s'exécuter en temps réel • il utilise un segment de mémoire partagée • il accède directement à des périphériques d'entrée/sortie • il est lancé comme démon • il fait appel à la mémoire hors du champ utilisateur • il possède une interface X • il est bloqué sur un noeud à la demande de l'utilisateur (nomig) Ainsi les threads ne peuvent pas être migrés puisqu'ils partagent leur mémoire avec le processus père. De même l'ensemble des applications à destination des utilisateurs finaux utilisant X reste sur leur noeud d'origine. En outre les applications temps réel de par les contraintes qu'elles induisent ne sont pas gérées par MOSIX. Enfin, les sockets ne peuvent pas, pour l'instant, migrer; elles sont retransmises par le noeud d'origine au nœud distant via MFS. 3. Installation et patch d’un noyau. Nous allons maintenant décrire les différentes étapes qui conduisent à la compilation et l’installation d’un noyau avec un patch opemMosix. • • • • • • • • • • • • • • • Tout d’abord se connecter en root (su). Puis récupérer les sources du noyau qui vous intéresse (pour nous le 2.4.24), ainsi que le patch openMosix qui va bien pour la version du noyau choisie. Décompresser les sources du noyau dans le répertoire /USR/SRC. Créer un lien symbolique nommé linux vers le nouveu répertoire 2.4.24 ( ln –sf 2.4.24 linux). Copier le patch OpenMosix dans le répertoire linux et lancer la commande de patch ( patch –p1 < openMosix.2.4.24 ) Exécuter la commande Make MenuConfig. Copier le fichier system.map (généré par le Make MenuConfig dans le répertoire linux) dans le répertoire /boot Créer les dépendances des modules : Make dep Exécuter Make bzImage. Copier le fichier arch/i386/boot/bzImage dans le répertoire /boot en le renommant VMLiux-Mosix. Puis exécuter le make pour les installation de modules : make modules && make modules_install. Exécuter make initrd. Editer le fichier /etc/lilo.conf. Remplacer le bloc existant (risqué !), ou modifier le failsafe, ou encore créer un nouveau bloc label = « linux Mosix » et image=/boot/vmlinuz-mosix. Il ne reste plus qu’a taper la commande lilo –v. Rebooter et choisir LinuxMosix dans lilo. 4. Réalisation d’un Live CD La réalisation du liveCD est finallement une tache assez aisée. Il suffit de télécharger les fichiers suivants : • Busybox-1.00-0.4mdk.src.rpm • Cllop-utils-1.02-2mdk.src.rpm • Mklivecd-0.5.6-1mdk.src.rpm Ensuite dans une console il faut taper les commandes suivantes : • Urpmi Busybox-1.00-0.4mdk.src.rpm • Urpmi Cllop-utils-1.02-2mdk.src.rpm • Urpmi Mklivecd-0.5.6-1mdk.src.rpm Il ne reste plus qu’a lancer la commande qui va créer l’iso de votre livecd : Mklivecd –splash=no –blocksize=224 monlivecd.iso Après une attente, cette commande génère le fichier monlivecd.iso. Il ne reste plus qu’à le graver et a rebooter. 5. Annexe 6.1 Bibliographie / Webographie Télécharger le noyau Linux : http://www.kernel.org/pub/linux/kernel/v2.4/ Comment compiler le noyau : http://www.supinfo-projects.com/fr/2004/compilation%5Fnoyau%5Flinux/introduction/ Comment patcher le noyau : http://www.sil-cetril.org/IMG/pdf/OMLTSPinstall.pdf Télécharger OpenMosix : http://openmosix.sourceforge.net/ Installation de Linux : http://mirrors.kernel.org/LDP/HOWTO/Installation-HOWTO/ Script live CD : http://www.linuxminicd.org/mklivecd/ Quelques RPMs interressant : http://mdklyon.citeheb.net/download.htm Comment faire un live CD depuis un noyau installé sur une partition : http://www.babytux.org/articles/howto/how2livecd.php Créer un live cd : http://www.geocities.com/potato.geo/bootlinuxcd.html
Documents pareils
Mise en place d`un cluster via OpenMosix sous Linux
le « mappage » du cluster et donc sa sécurité, cette technique nécessite tout d’abord un
réseau possédant des nœuds fixe ainsi qu’une grande patience, car il faut avant tout
reproduire, mettre à jo...