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