Grappe de calcul openMosix et Gentoo

Michael Imhof  Auteur
Michael Andrews  Auteur
Sven Vermeulen  Correcteur
Xavier Neys  Correcteur, Traducteur

Dernière mise à jour le 20 novembre 2003
Cette traduction n'est plus maintenue

1.  Introduction

À propos de ce guide

Ce guide va vous montrer comment créer une grappe de calcul (« cluster ») openMosix. Il est basé sur la distribution Gentoo. Nous avons essayé de rendre ce guide aussi accessible que possible en pensant au débutant que nous avons tous été. Bien qu'un utilisateur plus expérimenté puisse réussir à assimiler les différents guides sur openMosix, sur les stations sans disque et sur les réseaux, nous espérons vous épargner les difficultés habituelles.

Note : Si vous comptez créer une grappe de calcul de machines sans disque, vous devriez lire la section sur le noyau ci-dessous pour savoir comment compiler un noyau openMosix, puis lire notre guide des machines sans disque et, enfin, revenir ici pour installer votre grappe de calcul.

À propos de openMosix

OpenMosix est une modification apportée au noyau Linux qui permet à plusieurs machines d'être vues comme un seul ordinateur (SSI pour « Single System Image en anglais ») multi-processeurs. Au moment de la rédaction de ce guide, la dernière version s'applique au noyau 2.4.22 et les outils utilisateurs en sont à la version 0.3.4. Vous trouverez toute sorte d'information sur openMosix à http://openmosix.sourceforge.net. Il faut savoir que tous les noyaux modifiés ne sont pas toujours compatibles d'une version à l'autre et que la compatibilité descendante n'est pas assurée. OpenMosix déplace les processus lourds (« heavy weight processes » en anglais) d'un nœud à un autre. Ces processus sont soit des binaires a.out ou ELF, leurs processus enfants suite à une duplication de processus (« fork » en anglais). Ni les processus légers (« light weight processes » en anglais) comme les p-threads ni les processus lourds qui utilisent de la mémoire partagée ne seront déplacés.

Veuillez visiter la page d'accueil de openMosix pour de plus amples informations.

À propos de la grappe de calcul

Notre grappe sera constituée de plusieurs ordinateurs (nœuds) qui partagent leurs ressources dans le but d'améliorer les performances globales de la grappe. Tous les nœuds ne doivent pas nécessairement partager la même architecture, mais cela facilite les tâches d'administration.

Avant de commencer

Gentoo devrait être installée sur les machines que vous voulez utiliser dans votre grappe de calcul. De plus, vous devriez utiliser les sources du noyau modifiées pour openMosix. Gentoo vous fournit ces sources dans le paquet openmosix-sources.

Pour obtenir les sources, faites simplement :

Exemple de code 1.1 : Obtenir les sources openMosix

# emerge openmosix-sources

2.  Configuration du noyau

À propos du noyau

Le noyau est le logiciel qui sert d'interface entre votre matériel et l'ensemble des logiciels installés sur votre machine. Il est le coeur de tout système construit autour d'un noyau. Quand votre PC démarre, le BIOS exécute les instructions qu'il trouve dans le secteur de démarrage de votre disque dur (« boot sector » en anglais). Ces instructions sont communément appelées le chargeur de démarrage (« boot loader » en anglais). Celui-ci charge le noyau en mémoire et lui passe la main.

Pour plus d'informations relatives au noyau et à sa configuation, vous pouvez consulter le kernel HOWTO.

Configuration du noyau

Peu importe la taille et le niveau de paramétrage du noyau maître, certaines options sont indispensables. Voici comment configurer votre noyau :

Important : Il est très important que /usr/src/linux soit lié vers le répertoire des sources openMosix comme ci-dessous.

Exemple de code 2.1 : Créer le lien /usr/src/linux vers openmosix

# cd /usr/src
# rm linux
# ln -s linux-2.4.22-openmosix linux

Ensuite, configurez votre noyau :

Exemple de code 2.2 : Modifier la configuration du noyau du nœud

# cd /usr/src/linux
# make menuconfig

Une interface devrait apparaître et vous permettre de configurer votre noyau plus facilement qu'en modifiant manuellement le fichier /usr/src/linux/.config. Si votre noyau actuel fonctionne, vous voulez peut-être garder une copie de sa configuration. Quittez l'écran de configuration et tapez :

Exemple de code 2.3 : Sauvegarder une copie de la configuration du noyau maître

# cp .config .config_working

Sur l'écran de configuration, la première entrée du menu devrait indiquer openMosix --->. Si ce n'est pas le cas, vous devez obtenir le noyau modifié pour openMosix tel qu'expliqué ci-dessus. Vérifiez que les options listées ci-dessous sont bien sélectionnées pour être compilées en dur et PAS comme modules.

Exemple de code 2.4 : Options de menuconfig

openMosix --->
    [*] openMosix process migration support
    [ ] Support clusters with a complex network topology
    [*] Stricter security on openMosix ports
    (1) Level of process-identity disclosure (0-3)
    [*] openMosix File-System
    [ ] Poll/Select exceptions on pipes
    [ ] Disable OOM Killer
    [ ] Load Limit

Code maturity level options  --->
    [*] Prompt for development and/or incomplete code/drivers

Networking options --->
    <*> Packet socket
    [ ]   Packet socket: mmapped IO
    < > Netlink device emulation
    [ ] Network packet filtering (replaces ipchains)
    [ ] Socket Filtering
    <*> Unix domain sockets
    [*] TCP/IP networking
    [*]   IP: multicasting

File systems --->
    [*] /proc file system support
    [*] /dev file system support (EXPERIMENTAL)
    [*]   Automatically mount at boot

Note : Ces options de configuration du noyau s'ajoutent aux options spécifiques à votre matériel, elles ne les remplacent pas.

Après avoir configuré le noyau maître, vous devez le compiler :

Exemple de code 2.5 : Compiler le noyau et ses modules

# make dep
# make clean bzImage modules modules_install
(Vérifiez que /boot est monté avant d'y copier le noyau)
# cp arch/i386/boot/bzImage /boot/bzImage-openmosix

Maintenant que le nouveau fichier bzImage a été copié dans votre répertoire /boot, il ne vous reste plus qu'à vous assurer que votre chargeur de démarrage (le « bootloader ») l'utilise. Modifiez lilo.conf ou grub.conf selon celui que vous utilisez. Ensuite, vous pouvez redémarrer votre machine pour activer ces nouvelles options.

Options manquantes

Si vous ne voyez pas certaines options lors de la configuration du noyau, assurez-vous que l'option suivante est activée :

3.  Configuration de openMosix

Installation des outils openMosix

Pour que la grappe de calcul openMosix puisse déplacer des processus d'un nœud à l'autre, elle a besoin de quelques outils. De plus, le service openMosix doit être activé pour qu'un nœud puisse se joindre à la grappe. Pour obtenir ces outils, faites :

Exemple de code 3.1 : Installer les outils openMosix

# emerge openmosix-user

Configuration d'un nœud openMosix

Il n'est plus nécessaire de créer un fichier /etc/mosix.map. En effet, les versions récentes disposent d'un démon qui découvre automatiquement les nœuds openMosix de votre réseau.

Créez un répertoire /mfs sur chaque nœud et montez-le si vous voulez utiliser le système de fichiers openMosix (vivement recommandé) pour accéder à tous vos nœuds.

Exemple de code 3.2 : Créer le point de montage /mfs

# mkdir /mfs

Exemple de code 3.3 : Exemple de ligne à ajouter dans /etc/fstab

none                /mfs            mfs         noauto,dfsa=1          0 0

Note : Il n'est pas indispensable que tous les nœuds soient opérationnels pour que la grappe de calcul le soit.

Activer openMosix

Démarrer openMosix est très simple. La commande ci-dessous active les fonctionnalités de votre grappe et lance le démon chargé de découvrir les nœuds openMosix et de surveiller leur disponibilité.

Exemple de code 3.4 : Démarrer openMosix

# /etc/init.d/openmosix start

4.  Outils openMosix

Outils en ligne de commande

Le paquet openMosix-user comprend quelques outils bien pratiques. Pour n'en nommer que quelques uns :

Le test de charge openMosix peut être utilisé pour vérifier que tout fonctionne sur votre grappe, même soumise à une forte charge. Le paquet se nomme openmosixtest :

Exemple de code 4.1 : Installer openmosixtest

# emerge openmosixtest

L'ebuild devrait vous expliquer comment effectuer le test.

Outils graphiques

L'application openmosixview affiche un aperçu de votre grappe et des processus migrés d'un nœud à l'autre.

Exemple de code 4.2 : Installer openmosixview

# emerge openmosixview

Tapez simplement openmosixview pour essayer cette petite merveille.

Exemple de code 4.3 : Lancer openmosixview

# openmosixview

5.  Ressources

openMosix

Compléments openMosix (des ebuilds sont disponibles)