Ali
Distribution de Tâches sur un Réseau
Guide Spécifique au CDS
Thomas Bucher
Août 2004
1 Installation complète du package
Pour le moment, la dernière version d'Ali est la version 1.08.
Copier donc le package Ali (par exemple ali-1.08.tar.gz) sur chaque machine interagissant avec l'environnement Ali,
et effectuer la procédure de compilation / installation (sous l'utilisateur wali).
% tar xzvf ali-1.08.tar.gz
% cd ali-1.08
% ./configure
% make
% make install
Par défaut, le package s'installe dans le répertoire $HOME/ali, et crée les deux sous répertoires bin et conf.
Le script configure initialise les fichiers de configuration des différentes entités, donc il est préférable de le lancer.
Le lancement de make install est aussi utile car il remplit lui-même la liste des items disponibles sur la machine (pour la configuration
du worker).
2 Installation rapide du package
Le package ali-bin-1.08.tar.gz ne contient que les binaires (compilés sous Linux) et les fichiers de configuration. Il faut faire
attention à mettre à jour les fichiers de configuration qui n'ont donc pas été générés automatiquement pour la machine en question (notemment
pour ce qui est du nombre de processeurs).
De plus, dans le cas d'un worker, il faut mettre à jour sa liste d'items en appelant le script conf_items.sh fourni avec les fichiers de configuration.
3 Configuration des serveurs
A priori, il est préférable d'avoir un serveur spécialisé pour Vizier et un autre pour Aladin. Pour l'instant, le serveur de Vizier se trouve sur cocat1, qui est en fait
un mirroir de cocat0, mais à la sauce Ali.
Par soucis d'administration, il est cependant aussi possible de ne garder un seul serveur... mais si la montée en charge devient importante, il vaudrait mieux les répartir
sur deux machines différentes.
4 Configuration du moniteur
Désormais, il est possibles d'avoir plusieurs moniteurs connectés aux même workers.
Deux solutions sont alors possibles :
-
soit on ne garde qu'un seul moniteur pour tous les workers (ce qui risque de le ralentir légèrement)
- soit on regroupe les types de workers par moniteur (le serveur n'a alors accès qu'aux workers monitorés par celui-ci)
Note : le moniteur possède un fichier statique mali_struc_items qui décrit la structure du cluster en terme d'items. Ce fichier est
alimenté automatiquement lors de la notification de workers, mais il n'y a pour l'instant aucun moyen automatique pour supprimer des items
de cette structure ; il faudra alors le modifier manuellement dans certains cas (par exemple, si le worker wali2 disparaît pour de bon, alors il faudra
supprimer les items wali2 et u-strasbg:wali2 du fichier).
5 Configuration des exécuteurs
Lors de l'installation de l'exécuteur, sa liste d'items disponibles est générée automatiquement par le script conf_items.sh. Ce script décrit tous les items
disponibles sur le parc du CDS, et est donc voué à évoluer... ils est important de toujours avoir la dernière version de ce script afin d'être à jour en termes d'items.
Note sur les items : maintenant, chaque item peut avoir une donnée associée (second membre d'une ligne dans le fichier d'items). Si c'est le cas, toutes les balises
$mon_item présentes dans la commande à lancer seront remplacées par la donnée associée... ceci permet par exemple de travailler avec des chemins absolus au niveau du worker,
sans que l'utilisateur ne s'en soucie.
Pour ce qui est des items composés, le serveur remplace aussi les balises par les items correspondants. Par exemple, dans les commandes des sous-tâches composantes d'une tâche,
la balise $u-strasbg sera remplacée (réciproquement dans la commande de chaque tâche) par $u-strasbg:wali1, $u-strasbg:wali2, etc... qui elles vont être
remplacées finalement au niveau du worker.
Arbitrairement, les applications ou fichiers correspondants à des items sont présents dans le répertoire wali/bin/, qui est structuré de la manière suivante (pour l'instant) :
un dossier vizier qui concerne les applications de vizier, et un dossier aladin qui concerne je vous laisse deviner qui.
Par défaut, quelques serveurs connus du CDS ont déjà accès au worker, mais il vaut mieux jeter un coup d'oeil dans le fichier wali_auth_clients pour être sûr que
le serveur ou le moniteur ne sera pas refusé.
6 Installation des services
Afin que les différentes entités d'Ali démarrent toutes seules, il faut installer les scripts de lancement de service correspondant.
Ces scripts sont présents dans les répertoires utils/Suse et utils/Mandrake du package, pour les distributions correspondantes (désolé, je ne me suis pas
amusé à le faire pour toutes les plateformes possibles et inimaginables).
Le but est de placer des liens vers ces scripts dans les répertoires d'initialisation (rc3 et rc5). L'arborescence change selon la distribution, mais j'ai fourni une note explicative
avec les scripts.
Les scripts ne peuvent à prioris être lancés que par root (sauf si chmodés autrement), mais au final le service tourne sous wali. En effet, dans les scripts
de lancement je récupère l'UID de wali, et je demande aux applications de tourner sous cet utilisateur, pour des raisons de sécurité.
Note : Il vaut mieux faire tourner les services sous wali, car sinon l'application aura peut-être du mal à retrouver ses fichiers de configuration.
Pour l'instant, les workers démarrent automatiquement sur wali1-5 et cocat1-2,4-5. Un moniteur et un serveur démarre automatiquent sur cocat1.
7 Archivage des log
Les entités d'Ali ne savent par archiver leurs fichiers de log seules. Pour l'instant, le serveur (réciproquement worker) archive ses requêtes dans le fichier
sali_req_log (réciproquement wali_req_log).
Il y a donc nécéssité d'archiver ces fichiers selon une période définie (actuellement 1 jour) ; c'est le rôle du script archivlog.sh, qui arrête
le serveur (ou worker), archive le fichier de log (avec la date du jour), et relance le serveur (ou worker). Ce script est lancé automatiquement par
cron à 23h55, comme défini dans le fichier archivcron. Les fichiers archivlog.sh et archivcron sont présent dans le répertoire utils/crontab
du package.
Rappel : pour activer le lancement automatique d'une application (ici de mon script archivlog.sh), il suffit de faire :
% crontab archivcron
8 Monitoring HTML
La nouvelle interface HTML de monitoring du cluster donne plus d'informations que la dernière fois.
Pour l'instant, elle est disponible à l'addresse http://pclx11/ali/, mais peut facilement être déplacée autre part.
L'interface html propose :
-
le monitoring des workers sous forme d'un tableau récapitulatif des workers gérés par un moniteur.
- un tableau récapitulatif des items pour un moniteur donné, avec colorisation des liens de parenté.
- les statistiques d'un serveur, déduites à partir de son fichier de log actuel.
- les statistiques d'un worker, là aussi déduites à partir de son fichier de log actuel.
- la génération des fichiers de log serveur et worker en XML, pouvant ainsi être fournis à
au client de Jean-Francois Nicolas (les formulaires ne sont là qu'à titre de tests puisque les appels
se feront tout seuls).
Les scripts et pages concernant cette interface HTML de monitoring se trouvent dans le répertoire utils/www/html_monitoring et
doivent être placés (à priori) dans /var/www afin de fonctionner.
9 Configuration des workers Aladin
9.1 Configuration pour Aladin : RGB
Ajouter le script ali-rgb et Aladin.jar dans le dossier wali/bin/aladin. L'items correspondant sera alors pris en compte
automatiquement par le scripts conf_items.sh.
Installer Xvfb (émulateur de serveur X), l'installer en service (cf. Installation des services en le lancant avec la commande suivante :
% Xvfb ":2" -screen 4 1024x768x8
Installer cjpeg (compression en JPEG) sur la machine.
9.2 Configuration pour Aladin : hcomp / hdecomp
Installer les logiciels hcomp et hdecomp sur la machine (installation standard dans /usr/bin, ou alors bien
configurer le PATH)
Si les hcomp et hdecomp sont bien installés, ils devraient être reconnus par le script de détection des items.
Si ce n'est pas le cas, vérifier que les programmes sont bien dans le PATH, et si oui, vérifier le script conf_items.sh.
9.3 Configuration pour Aladin : denoise / deconvol
Note : les instructions ci-dessous sont les anciennes instructions, il faut voir avec Robin si
l'installation des packages a changé, etc.
Installer lam-MPI sur la machine.
Installer Yorick sur la machine.
Installer les packages Yorick de Christophe Pichon.
Installer les scripts denoise (version simple), mp_denoise (version optimisée non fixée), denoise_mpi (verstion MPI).
Ajouter l'item denoise (ou des items plus spécifiques selon le script utilisé).
Lancer l'environnement MPI sur toutes les machines concernées. Le fichier mpihosts contient le nom de toutes les machines qui seront intégrées à l'environnement MPI lancé ; ces machines doivent être joignables par ssh sans interactivité, et doivent bien sûr avoir MPI installé.
La commande pour lancer l'environnement est :
% lamboot mpihosts
10 Configuration des workers Vizier
Installer les différents catalogues sur les machines.
Pour l'instant, on a opté pour des liens présents dans wali/bin/vizier, ce qui est plus simple pour la détection automatique des items.
This document was translated from LATEX by
HEVEA.