La Mandrake CLIC - Direction technique Eau, mer et fleuves

Transcription

La Mandrake CLIC - Direction technique Eau, mer et fleuves
La Mandrake CLIC
Cette page n'a pas pour but de remplacer la documentation de la distribution que l'on peut trouver sur le
CD (répertoire /doc du CD en format .pdf ou .html), mais elle vient en complément de cette dernière en
relevant les difficultés rencontrées durant l'installation et l'utilisation du cluster. C'est la première
distribution qui a été utilisée en test.
Logiciels présents
•
•
•
•
•
•
•
•
•
Noyau: 2.4.22
OpenPbs: 1.2
Maui: 3.2.5
clusterIt: 2.0
distcc: 2.11
ka-deploy: 0.92
Ganglia: 2.54
Mpich: 1.2.5
Pvm: 3.4.4
Installation
Installation du noeud maître
L'installation du noeud maître se fait comme l'indique la documentation fournie. Il n'y a pas eu de
problème particulier lors de cette opération.
Par contre, lors de la phase post-installation, il est demandé de lancer un script à partir d'une icône placée
sur le bureau. Icône qui n'est malheureusement pas là. Il faut le lancer manuellement grâce à la
commande setup_auto_cluster dans un terminal.
N'ayant pas de carte réseau supportant le PXE (Preboot eXecution Environnement) qui permett le
chargement d'une image de boot par le réseau, il a fallu créer une disquette système afin de lancer et
d'installer le "golden node".
A la fin du script de post-installation, le noeud maître lance le script setup_add_nodes_to_dhcp et se met
en attend d'une requête DHCP arrivant sur l'interface interne du cluster. Une fois celle-ci reçue (elle
provient du premier noeud qui vient d'être lancé), la configuration du serveur DHCP présent sur le noeud
maître est modifiée et le service relancé.
Installation du "golden node"
Ensuite, pour pouvoir contrôler l'installation du premier noeud, il faut y raccorder un clavier et un écran et
booter sur la disquette que l'on vient de créer. Durant cette installation, la configuration du réseau se fait
automatiquement, mais il faut configurer le serveur X et le clavier. Une fois l'installation terminée, sur le
noeud maître, il faut lancer les scripts setup_admin.pl doall et setup_compute.pl doall afin d'insérer ce
nouveau noeud dans l'architecture logiciel du cluster.
Installation des noeuds
Normalement, l'installation des autres noeuds se fait automatiquement à condition d'avoir à disposition
des cartes réseau PXE, ce qui n'est pas notre cas. Donc, comme indiqué dans la documentation, il faut
procéder de la même façon que pour le "golden node".
Pour chaque noeud, lancer le script setup_add_nodes_to_dhcp -n 1, afin que le noeud maître se mette en
attente d'une requête DHCP provenant d'un noeud. On pourrait être tenté de mettre '-n N', où N est le
nombre de noeuds que l'on désire installer, mais cela n'est pas possible, car la modification de la
configuration du serveur DHCP ne se fait que lorsque tous les noeuds attendus ont fait leur requête, ce
qui pose des problèmes lors de la configuration des paramètres réseaux sur les noeuds (configuration qui
repose sur les paramètres fournis par le serveur DHCP).
Conception d'un système à haute performance – La Mandrake CLIC
1/4
Copyright © CETMEF 2004
Il faut également, comme indiqué, modifier les fichiers /etc/nodes_list et /etc/nodes_list.admin et lancer
les scripts setup_compute.pl doall et setup_admin.pl doall. L'installation se fait donc noeud par noeud
avec un écran et un clavier par noeud comme pour le "golden node".
Une fois tous les noeuds installés et relancés, le cluster est prêt.
L'ajout et la suppression d'un noeud
L'ajout d'un noeud au cluster se fait de la même manière que précédemment.
La suppression est plus problématique. En effet, l'interface graphique décrite dans la documentation est
introuvable, il faut le faire manuellement. Pour cela, les lignes correspondantes dans les fichiers /
etc/nodes_list, /etc/nodes_list.admin et /etc/dhcp.conf doivent être supprimées. Une fois cela fait, il faut
relancer les scripts setup_compute.pl doall et setup_admin.pl doall.
Les services lancés
Au démarrage du noeud maître
Pour connaître les services lancés au démarrage, il suffit d'aller regarder le contenu du répertoire /
etc/rc5.d qui contient l'ensemble des scripts dont le nom commencent par "S" et qui sont lancés lors de
l'initialisation du serveur.
Service
iptables
network
portmap
syslog
partmon
authd
nfslock
ypserv
alsa
ypbind
sound
ganglia-monitor-script
gmetad
gmond
random
xfs
netfs
shorewall
ypxfrd
dm
atd
saslauthd
named
ntpd
sshd
rawdevices
xinetd
nfs
dhcpd
yppasswdd
keytable
postfix
Description
Initialisation éventuelle d'un firewall à l'aide iptable
Initialisation des interfaces réseaux
Lancement du portmapper (nécessaire pour les appels RPC et NFS)
Lancement du service de log système
Vérification de l'espace disque disponible
Lancement d'un serveur d'authentification
Lancement du service de verrouillage de fichier utilisé par NFS.
Lancement du serveur NIS (authentification des utilisateurs).
Initialisation des drivers alsa (son)
Service utile aux clients pour interroger le service NIS
Initialisation des périphériques sonores
Lancement des scripts renvoyant les données nécessaires à l'établissement des
statistiques d'utilisation du cluster.
Lancement du processus regroupant les statistiques d'utilisation du cluster
Lancement du moniteur Ganglia (statistiques d'utilisation de chaque noeud)
Initialisation du générateur de nombres aléatoires
Lancement du serveur de fonts (nécessaire pour l'interface graphique)
Montage des partages réseaux
Lancement du firewall
Service accélérant les accès au service NIS
Lancement du Display Manager (login graphique)
Lancement du service 'at' permettant de lancer des commandes à des dates
précises
Lancement d'un serveur d'authentification.
Lancement du serveur de noms (DNS)
Lancement du serveur de temps
Lancement du serveur SSH
Permet d'avoir accès à des périphériques "block" en mode "raw" (non utilisé
dans notre cas).
Lancement du démon gérant les connexions distantes (tftp, distcc, gexecd, ...)
Lancement du serveur de partage des fichiers
Lancement du serveur DHCP
Service permettant le changement du mot de passe des utilisateurs du service
NIS
Configuration du clavier
Lancement d'un serveur SMTP
Conception d'un système à haute performance – La Mandrake CLIC
2/4
Copyright © CETMEF 2004
Service
pxe
httpd
pbs_mom
pbs_server
proftpd
maui
internet
crond
kheader
Description
Lancement du serveur répondant aux requêtes PXE
Lancement d'Apache (un serveur web)
Lancement du Pbs Mom
Lancement du serveur Pbs (Portable Batch System) permettant la répartition
d'une tâche sur le cluster.
Lancement d'un serveur FTP
Lancement du scheduler Maui (nécessaire pour Pbs)
Activation de l'interface permettant l'accès à internet (inutile ici)
Lancement du service Cron permettant le lancement de tâches régulières
Génération du fichier /boot/kernel.h
Au démarrage des noeuds
Service
network
portmap
syslog
authd
nfslock
clusterautosetup-client
ypbind
ganglia-monitor-script
gmond
random
xfs
netfs
shorewall
ypxfrd
dm
atd
saslauthd
named
ntpd
sshd
rawdevices
xinetd
nfs
autofs
keytable
pbs_mom
Description
Initialisation des interfaces réseaux
Lancement du portmapper (nécessaire pour les appels RPC et NFS)
Lancement du service de log système
Lancement d'un serveur d'authentification
Lancement du service de verrouillage de fichier utilisé par NFS.
Configuration du noeud (appel du script setup_client_cluster.pl)
Service utile aux clients pour interroger le service NIS
Lancement des scripts renvoyant les données nécessaires à l'établissement
des statistiques d'utilisation du cluster.
Lancement du moniteur Ganglia (statistique d'utilisation de chaque noeud)
Initialisation du générateur de nombre aléatoire
Lancement du serveur de fonts (nécessaire pour l'interface graphique)
Montage des partages réseaux
Lancement du firewall
Service accélérant les accès au service NIS
Lancement du Display Manager (login graphique)
Lancement du service 'at' permettant de lancer des commandes à des dates
précises
Lancement d'un serveur d'authentification.
Lancement du serveur de noms (DNS)
Lancement du serveur de temps
Lancement du serveur SSH
Permet d'avoir accès à des périphériques "block" en mode "raw", non utilise
dans notre cas.
Lancement du démon gérant les connexions distantes (tftp, distcc, gexecd, ...)
Lancement du serveur de partage des fichiers
Lancement de l'automount
Configuration du clavier
Lancement du Pbs Mom
Services accessibles de l'extérieur
Grâce au firewall, tous les services ne sont pas accessibles depuis le réseau externe au cluster. Dans sa
configuration par défaut, uniquement le ssh et le http sont autorisés.
Maintenance du cluster
Installation de paquet RPM sur l'ensemble du cluster
L'installation d'un paquet RPM sur l'ensemble du cluster se fait grâce à la commande urpmi --parallel
nom_groupe nom_paquet. Les groupes permettent de répartir les noeuds du cluster dans différents
ensembles, en fonction de leur rôle ou de l'architecture matérielle, par exemple.
Les groupes se définissent dans le fichier /etc/nodes_list.admin. Il faut ensuite lancer la commande
setup_compute.pl doall et corriger si nécessaire le contenu du fichier /etc/urpmi/parallel.cfg (qui ne se
Conception d'un système à haute performance – La Mandrake CLIC
3/4
Copyright © CETMEF 2004
génère pas correctement).
Gestion des fichiers
La Mandrake Clic propose plusieurs programmes permettant d'ajouter ou de supprimer un ou des fichiers
sur l'ensemble des noeuds :
Pcp est le plus efficace, car il crée un arbre n-aire de sockets TCP et la diffusion est en parallèle et utilise
un système de pipelines. Ce qui utilise au mieux les performances du réseau et la charge du processeur
est relativement faible. Par contre, il faut préciser sur la ligne de commande l'ensemble des noeuds de
destinations, ce qui peut être contraignant si le cluster est important. Par exemple, pour diffuser l'image
iso de la Mandrake Clic sur 5 noeuds, il a fallut 39 secondes et une charge cpu moyenne de 14%.
Le deuxième outil est cpcp. Contrairement au premier, lui se contente de copier le ou les fichiers sur les
noeuds les uns après les autres, mais par défaut, il les diffuse sur l'ensemble des noeuds. Pour faire la
même chose que dans l'exemple précédent, il lui a fallut 3 minutes et 11 secondes pour une charge cpu
moyenne de 89%.
La suppression d'un fichier peut se faire grâce à l'outil prm.
L'exécution de commandes
Là aussi, il existe plusieurs commandes possibles. La première est celle livrée avec l'outil de monitoring
Ganglia : gexec. Les noeuds exécutant la commande se trouvent dans la variable d'environnement
GEXEC_SVRS.
La commande rshp permet aussi de lancer en parallèle la même action sur l'ensemble de noeuds. Il faut
utiliser la variable $NKA initialisée dans le fichier /etc/profile.d/cluster.sh pour avoir accès à l'ensemble
des noeuds. Elle est issue du paquet Ka-Run.
Et enfin, dsh qui lance la commande passée en argument sur l'ensemble des noeuds et affiche la sortie
de la commande sur la sortie standard.
Impressions générales Cette distribution spécialisée dans l'installation rapide de cluster de calcul donne
l'impression d'être encore en phase de développement ou qu'elle est une distribution test. En effet, il y a
encore plusieurs incohérences avec la documentation fournie, le nombre de script à lancer manuellement
est important et les fichiers de configuration sont parfois mal reconstruit après un changement.
De plus beaucoup de services (parfois redondant) sont lancés et configurés automatiquement, ce qui
rend la compréhension et le contrôle du fonctionnement système plus compliqués. Cela augmente la
difficulté d'une prise en main efficace et d'une éventuelle personnalisation.
Conception d'un système à haute performance – La Mandrake CLIC
4/4
Copyright © CETMEF 2004