Grappe de calcul openMosix et Gentoo
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
# 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 :
- Code maturity level options --->
-
- Prompt for development and/or incomplete code/drivers
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 :
-
mosmon - moniteur openMosix. Il affiche l'état de vos nœuds
openMosix y compris la charge CPU, la mémoire installée et utilisée, etc.
-
mtop - Version améliorée de top qui affiche sur quel nœud les
processus tournent.
-
mps - Version améliorée de ps qui affiche les numéros de nœud.
-
mosctl whois - Très utilise car mosmon et les autres outils
n'affichent qu'un numéro de nœud. mosctl whois nodenumber affiche
l'adresse IP ou le nom d'hôte du nœud.
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)
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|