|
There are no translations available.
INSTALLATION DU CLUSTER VERSION 3 by DD le 15-1-2008 last revision 18-8-200Description du hardware Maitre (thorgal) Carte mere Tyan Thunder K8W (S2885) http://www.tyan.com/archive/products/html/thunderk8w_spec.html http://www.tyan.com/archive/products/html/thunderk8w.html 2 processeurs AMD Opteron 2.2 GHz single core (socket 940) Chipset AMD-8131 et AMD-81111 Memoire: 2 Go LAN: 2 Gbe Ethernet Disque 500 Go WD en RAID 1 avec un disque de spare (Raid hardware avec carte 9550....) ATI Rage XL 8 Mo Bios version 2.08 Noeuds 1 a 12 (les 12 sont identiques) Barebone Tyan Transport GT24 B2891 (avec carte-mere Thunder K8SRE (S2891)) http://www.tyan.com/product_barebones_detail.aspx?pid=1 2 processeurs AMD dualcore Opteron 285 a 2.6 Ghz Chipset Nvidia nForce4 pro (+AMD-8131) 8 Go de memoire en 4x2Go DDR 400 MHz ECC registered (4 emplacements libres) LAN : 2 Gbe Ethernet ATI Rage XL 8Mo 1 slot PCI-E x16 (+ 1 PCI-X) 1 disque 160 Go SATA II Bios version 2.03 Carte Infiniband Mellanox Infinihost III Lx MHGS18-XT dans le slot PCI-E http://www.mellanox.com/products/infinihost_iii_lx_cards.php Firmware version 1.2 de decembre 2006 http://www.mellanox.com/support/firmware_table_IH3Lx.php Switch Infiniband Mellanox MTS 2400-24-DDR http://www.mellanox.com/products/mtpdk24.php Noeuds 20 et 21 (installes en mars 2008) Intel Server System SR1560SF (avec carte-mere Intel S5400SF) http://www.intel.com/Products/Server/Systems/SR1560SF-SR1560SFHS/SR1560SF-SR1560SFHS-overview.htm 2 processeurs Intel Xeon X5460 a 3.16 GHz 24 Go de memoire FB-DIMM en 12 barettes de 2 Go DDR 667 MHz ECC (4 emplacements libres) LAN : 2 Gbe Ethernet ATI ES1000 PCI graphics accelerator, with 32 MB of video DDR SDRAM 1 slot PCI-E x16 Gen2 avec riser card (+ autres ports PCI) 1 disque 320 Go SATA II 1 lecteur DVD Bios update le 18-8-2008 version 26;8;11 du 20-6-2008 (voir dans /users/node_f8/bios_flash/myreadme) http://downloadcenter.intel.com/filter_results.aspx?strTypes=all&ProductID=2850&OSFullName=Red+Hat*+Enterprise+Linux+5.0〈=eng&strOSs=167&submit=Go%21 Carte Infiniband Mellanox ConnectX MHGH29-XTC Rev-A1 (MT26418) dans le slot PCI-E 16x Gen2 en principe pour PCIe 2.0 5.0 GT/s http://www.mellanox.com/products/connectx_ib_card.php Firmware 2.5 de juin 2008 http://www.mellanox.com/support/firmware_table_ConnectXIB.php Installation des logiciels de base Pour le maitre et les noeuds, on fait une install Fedora classique, avec un fichier kickstart. Installation du maitre On boote a partir du CD-Rescue Fedora 8 (ou du DVD si il y a un lecteur, i.e. uniquement sur le maitre). Apres ESC, on recupere le boote, et on tape linux ks=http://www.lptl.jussieu.fr/ksth.cfg et on selectionne le port eth0. En principe, l'install commence, duree environ 2 heures. La partie post-install du kickstart est minimum, elle se contente en fait de modifier le fstab pour pouvoir monter /export et /myusers de cendrillon. Apres le reboot, il y a plusieurs etapes et des scripts plus ou moins globaux. Le script principal est /users/node_f8/master/scripts/suite-installation, que l'on peut se contenter de faire tourner a la brutale. Il appelle differents scripts regroupes dans /users/node_f8/master/scripts. Il comporte plusieurs etapes: 1. run_once Ce script modifie un certain nombre de fichiers de config en sauvegardant les fichiers d'origine dans .orig avec ce qui est dans /users/node_f8/master/config (essentiellement dans le repertoire etc) Il est donc important de ne faire tourner run_once qu'une seule fois. Les differentes etapes sont: * modifier /opt pour qu'il pointe sur /usr/local * modifier /etc/hosts pour inclure les noeuds et le maitre sur les deux interfaces * modifier /etc/X11/Xresources pour des couleurs plus agreables * copier /users/node_f8/master/config/etc/bashrc dans /etc/bashrc (ajout des '-i' pour cp, mv, rm et configuration du path) * mettre a jour ld.so.conf pour avoir le compilo intel * mettre a jour nsswitch.conf (inutile, supprime) * mettre a jour /etc/sysconfig/network (inutile, supprime) * mettre a jour /etc/sysconfig/network-scripts/ifcfg-eth{0,1}. Important pour eth1 car ce sera le cote interne du reseau du cluster * mettre a jour /etc/ssh et /root/.ssh pour conserver les memes cles de cryptage * script ntpmgr, qui configure ntp pour se synchroniser sur le routeur labo * script servicemgr, qui configure les services a demarrer au boot * script usermgr, qui recopie les fichiers passwd, shadow, group et gshadow. En pratique, il ecrase tout. Lors d'une install d'une nouvelle Fedora, le mieux est donc de faire a la main, un mix des fichiers originaux (conserves dans .orig) et des utilisateurs rajoutes. Recopier ensuite les fichiers obtenus dans /users/node_f8/master/config/etc, car ils serviront pour les noeuds. * script exportmgr, qui genere les exports de /users et /var/cache/yum vers le cluster * script dhcpdmgr, qui configure le serveur dhcp pour le cluster. En particulier dhcp.conf contient les adresses mac des noeuds, a modifier si le hardware change. * script yummgr, qui configure yum pour acceder aux repositories interessants. Il est ici TRES IMPORTANT de conserver les packages dans /var/cache/yum (option keepcache=1 dans /etc/yum/conf) pour pouvoir recreer un repository pour les noeuds. Il peut y avoir quelques warnings (fichiers manquants), sans grande importance. L'execution de run_once prend quelques secondes. 2. rpm-yum-mgr Ce script installe tous les packages necessaires (et meme plus) via yum et les repositories installes dans run_once. Il peut tourner plusieurs fois sans inconvenient. L'execution est longue, de l'ordre de 1 heure. 3. install-rpm Ce script installe des rpm non disponibles sous yum. Ils sont rassembles dans /users/node_f8/master/rpm. Il y a en particulier c3, qui permet l'execution de commandes globales sur le cluster via cexec (3 packages sur le maitre + un fichier de config, c'etait auparavant dans le script ajout-c3) Tout est fait en "yum localinstall" plutot que rpm brutal. 4. ajout-systemimager Ce script installe systemimager (un paquet de rpms) sur le maitre. 5. ajout-ganglia Ce script installe ganglia (gmond, gmetad et web) de facon a pouvoir avoir l'etat du cluster sur thorgal, via une interface web. Le script configure /etc/gmond.conf et /etc/gmetad.conf. Copies des fichiers dans /users/node_f8/master/config.etc diff /etc/gmetad.conf /etc/gmetad.conf.orig 39c39 < data_source "beowulf" localhost --- > data_source "my cluster" localhost diff /etc/gmond.conf /etc/gmond.conf.orig 20c20 < name = "beowulf" --- > name = "unspecified" 23c23 < url = "beowulf" --- > url = "unspecified" On peut aussi rajouter la ligne: gexec 2875/tcp # Caltech GEXEC a la fin de /etc/services (non utilise dans la config actuelle). Le script demarre les services gmetad et httpd, avec un chkconfig. Le 20-8-2008, gmetad part dans les choux avec explosion de la memoire suivie de l'intervention de oom_killer... "yum update ganglia" (en version 3.0.7) resoud le probleme. 6. install-nonrpm installe les packages utiles qui ne sont pas sous forme de rpm. Il s'agit en general d'applications genre compilo ou librairie, installee manuellement sur une machine et dont on a fait un .tgz qui peut etre reutilise sur toute machine. En particulier, ca doit contenir les fichiers de license necessaires. Les .tgz eux memes sont dans /users/node_f8/master/tar Il y a : - installation des codes win32 dans /usr/lib/codecs avec quelques liens (pas vraiment teste) - installation de fontes diverses dans /usr/share/fonts (pas vraiment teste) - installation de la config tex dans /usr/share/texmf (pas vraiment teste) - install-intel-compiler-fortran-10.1 : Intel Fortran 32 bits version 10.1 - install-intel-compiler-fortrane-10.1 : Intel Fortran 64 bits version 10.1 - install-intel-compiler-cc-10.1 : Intel C 32 bits version 10.1 - install-intel-compiler-cce-10.1 : Intel C 64 bits version 10.1 - install-intel-idb-10.1 : Intel debugger 32 bits version 10.1 - install-intel-idbe-10.1 : Intel debugger 64 bits version 10.1 - install-mkl-10.0 : Intel MKL library version 10.0, 32 et 64 bits, serial et multithreaded - install-acml-4.0.1 : AMD ACML library, version 4.0.1, 64 bits, pour gfortran, ifort, pathscale, single et multi-threaded - install-libraries : installe differentes librairies utiles: * NAG 32 et 64 bits, ifort et gfortran. Par defaut, libnag.a pointe vers ifort 64 bits. * Lapack 32 et 64 bits pour ifort. Par defaut, liblapack.a pointe vers ifort 64 bits. * fgsl 32 et 64 bits pour ifort. Par defaut, libfgsl.a pointe vers ifort 64 bits (il y a egalement le include correspondant). * Goto (BLAS) 64 bits, pour tout compilateur, en versions opteron single et multi-threaded, avec ou sans support de sse3. Par defaut, libgoto.a (multi-threaded) pointe vers nosse3 sur la maitre, sse3 sur les noeuds. libgoto-single.a pointe sur les versions single. A la fin, il peut y a voir des fichiers appartenant a delande plutot que root, on peut donc faire un "cd /opt; chown -R root.root ." Finalement, il faut lancer un grand "yum update" qui prend environ 2 heures. ***** contenu de /users/node_f8/master/config (le 20-1-2008) Differents fichiers de config du maitre sont gardes dans /users/node_f8/master/config Ils peuvent en principe ecraser brutalement les fichiers existant apres une install standard de Fedora sur le maitre. Certains sont peut-etre inutiles /users/node_f8/master/config/: total 32 drwxr-xr-x 5 root root 4096 ao\ufffd\ufffd 18 17:52 ./ drwxr-xr-x 16 root root 4096 ao\ufffd\ufffd 18 16:45 ../ drwxr-xr-x 8 root root 4096 jan 31 2008 etc/ drwxr-xr-x 4 root root 4096 jan 21 2008 opt/ drwxr-xr-x 3 root root 4096 ao\ufffd\ufffd 18 17:52 root/ /users/node_f8/master/config/etc: total 168 drwxr-xr-x 8 root root 4096 jan 31 2008 ./ drwxr-xr-x 5 root root 4096 ao\ufffd\ufffd 18 17:52 ../ -rw-r--r-- 1 root root 1686 jan 14 2008 bashrc -rw-r--r-- 1 root root 110 ao\ufffd\ufffd 18 18:19 c3.conf -rw-r--r-- 1 root root 1928 ao\ufffd\ufffd 18 18:22 dhcpd.conf -rw-r--r-- 1 root root 148 jan 16 2008 exports -rw-r--r-- 1 root root 618 jan 16 2008 fstab -rw-r--r-- 1 root root 4842 jan 25 2008 gmetad.conf -rw-r--r-- 1 root root 976 jui 31 10:44 group -r-------- 1 root root 700 jui 31 10:44 gshadow -rw-r--r-- 1 root root 1255 ao\ufffd\ufffd 18 18:19 hosts drwxr-xr-x 2 root root 4096 mai 14 2007 init.d/ -rw-r--r-- 1 root root 96 jan 16 2008 ld.so.conf -rw-r--r-- 1 root root 235 jui 19 2006 ntp.conf -rw-r--r-- 1 root root 3591 jui 31 10:44 passwd drwxr-xr-x 3 root root 4096 nov 25 2007 pki/ drwxr-xr-x 2 root root 4096 jan 31 2008 rc.d/ -r-------- 1 root root 2730 jui 31 10:44 shadow drwxr-xr-x 2 root root 4096 jan 13 2008 ssh/ drwxr-xr-x 3 root root 4096 jan 16 2008 sysconfig/ -rw-r--r-- 1 root root 285 jui 6 2006 yum.conf drwxr-xr-x 2 root root 4096 nov 23 2007 yum.repos.d/ /users/node_f8/master/config/etc/init.d: total 40 drwxr-xr-x 2 root root 4096 mai 14 2007 ./ drwxr-xr-x 8 root root 4096 jan 31 2008 ../ -rwxr-xr-x 1 root root 1738 jun 4 2007 pbs_mom* -rwxr-xr-x 1 root root 906 jun 4 2007 pbs_sched* -rwxr-xr-x 1 root root 1033 jun 4 2007 pbs_server* /users/node_f8/master/config/etc/pki: total 24 drwxr-xr-x 3 root root 4096 nov 25 2007 ./ drwxr-xr-x 8 root root 4096 jan 31 2008 ../ drwxr-xr-x 2 root root 4096 nov 25 2007 rpm-gpg/ /users/node_f8/master/config/etc/pki/rpm-gpg: total 128 drwxr-xr-x 2 root root 4096 nov 25 2007 ./ drwxr-xr-x 3 root root 4096 nov 25 2007 ../ -rw-r--r-- 1 root root 1391 nov 25 2007 jpackage.asc -rw-r--r-- 1 root root 1569 nov 25 2007 kde-redhat.RPM-GPG-KEY -rw-r--r-- 1 root root 1910 nov 25 2007 RPM-GPG-KEY -rw-r--r-- 1 root root 1726 nov 25 2007 RPM-GPG-KEY-adobe-linux -rw-r--r-- 1 root root 1044 nov 25 2007 RPM-GPG-KEY.atrpms -rw-r--r-- 1 root root 1706 nov 25 2007 RPM-GPG-KEY-beta -rw-r--r-- 1 root root 2161 nov 25 2007 RPM-GPG-KEY.dries.txt -rw-r--r-- 1 root root 1519 nov 25 2007 RPM-GPG-KEY-fedora -rw-r--r-- 1 root root 1105 nov 25 2007 RPM-GPG-KEY-fedora-rawhide -rw-r--r-- 1 root root 1076 nov 25 2007 RPM-GPG-KEY-fedora-test -rw-r--r-- 1 root root 1639 nov 25 2007 RPM-GPG-KEY-freshrpms -rw-r--r-- 1 root root 1422 nov 25 2007 RPM-GPG-KEY-livna -rw-r--r-- 1 root root 1547 nov 25 2007 RPM-GPG-KEY.planetccrma.txt -rw-r--r-- 1 root root 1232 nov 25 2007 RPM-GPG-KEY-rawhide /users/node_f8/master/config/etc/rc.d: total 16 drwxr-xr-x 2 root root 4096 jan 31 2008 ./ drwxr-xr-x 8 root root 4096 jan 31 2008 ../ -rwxr-xr-x 1 root root 350 jan 31 2008 rc.local* /users/node_f8/master/config/etc/ssh: total 220 drwxr-xr-x 2 root root 4096 jan 13 2008 ./ drwxr-xr-x 8 root root 4096 jan 31 2008 ../ -rw------- 1 root root 132839 jan 13 2008 moduli -rw-r--r-- 1 root root 1827 jui 16 2006 ssh_config -rw------- 1 root root 3301 jui 16 2006 sshd_config -rw------- 1 root root 672 jan 13 2008 ssh_host_dsa_key -rw-r--r-- 1 root root 590 jan 13 2008 ssh_host_dsa_key.pub -rw------- 1 root root 963 jan 13 2008 ssh_host_key -rw-r--r-- 1 root root 627 jan 13 2008 ssh_host_key.pub -rw------- 1 root root 1675 jan 13 2008 ssh_host_rsa_key -rw-r--r-- 1 root root 382 jan 13 2008 ssh_host_rsa_key.pub /users/node_f8/master/config/etc/sysconfig: total 24 drwxr-xr-x 3 root root 4096 jan 16 2008 ./ drwxr-xr-x 8 root root 4096 jan 31 2008 ../ drwxr-xr-x 2 root root 4096 jui 6 2006 network-scripts/ /users/node_f8/master/config/etc/sysconfig/network-scripts: total 32 drwxr-xr-x 2 root root 4096 jui 6 2006 ./ drwxr-xr-x 3 root root 4096 jan 16 2008 ../ -rw-r--r-- 1 root root 171 jui 6 2006 ifcfg-eth0 -rw-r--r-- 1 root root 214 jui 6 2006 ifcfg-eth1 /users/node_f8/master/config/etc/yum.repos.d: total 144 drwxr-xr-x 2 root root 4096 nov 23 2007 ./ drwxr-xr-x 8 root root 4096 jan 31 2008 ../ -rw-r--r-- 1 root root 180 nov 9 2007 adobe-linux-i386.repo -rw-r--r-- 1 root root 639 nov 13 2007 atrpms.repo -rw-r--r-- 1 root root 1907 oct 30 2007 fedora-development.repo -rw-r--r-- 1 root root 106 nov 23 2007 Fedora-install-media.repo -rw-r--r-- 1 root root 1168 oct 30 2007 fedora.repo -rw-r--r-- 1 root root 1078 oct 30 2007 fedora-updates.repo -rw-r--r-- 1 root root 1156 oct 30 2007 fedora-updates-testing.repo -rw-r--r-- 1 root root 283 nov 20 2007 freshrpms.repo -rw-r--r-- 1 root root 1061 nov 9 2007 jpackage.repo -rw-r--r-- 1 root root 1680 nov 9 2007 kde-redhat.repo -rw-r--r-- 1 root root 1904 nov 7 2007 livna-devel.repo -rw-r--r-- 1 root root 1808 nov 7 2007 livna.repo -rw-r--r-- 1 root root 2003 nov 7 2007 livna-testing.repo -rw-r--r-- 1 root root 522 nov 9 2007 planetccrma.repo -rw-r--r-- 1 root root 179 nov 9 2007 rpmforge.repo -rw-r--r-- 1 root root 152 nov 20 2007 texlive.repo /users/node_f8/master/config/opt: total 20 drwxr-xr-x 4 root root 4096 jan 21 2008 ./ drwxr-xr-x 5 root root 4096 ao\ufffd\ufffd 18 17:52 ../ drwxr-xr-x 3 root root 4096 jan 21 2008 mvapich-gcc/ drwxr-xr-x 3 root root 4096 jan 21 2008 mvapich-icc/ /users/node_f8/master/config/opt/mvapich-gcc: total 12 drwxr-xr-x 3 root root 4096 jan 21 2008 ./ drwxr-xr-x 4 root root 4096 jan 21 2008 ../ drwxr-xr-x 2 root root 4096 jan 21 2008 bin/ /users/node_f8/master/config/opt/mvapich-gcc/bin: total 16 drwxr-xr-x 2 root root 4096 jan 21 2008 ./ drwxr-xr-x 3 root root 4096 jan 21 2008 ../ -rw-r--r-- 1 root root 357 jan 21 2008 mpivars.csh -rw-r--r-- 1 root root 204 jan 21 2008 mpivars.sh /users/node_f8/master/config/opt/mvapich-icc: total 12 drwxr-xr-x 3 root root 4096 jan 21 2008 ./ drwxr-xr-x 4 root root 4096 jan 21 2008 ../ drwxr-xr-x 2 root root 4096 jan 21 2008 bin/ /users/node_f8/master/config/opt/mvapich-icc/bin: total 16 drwxr-xr-x 2 root root 4096 jan 21 2008 ./ drwxr-xr-x 3 root root 4096 jan 21 2008 ../ -rw-r--r-- 1 root root 357 jan 21 2008 mpivars.csh -rw-r--r-- 1 root root 204 jan 21 2008 mpivars.sh /users/node_f8/master/config/root: total 16 drwxr-xr-x 3 root root 4096 ao\ufffd\ufffd 18 17:52 ./ drwxr-xr-x 5 root root 4096 ao\ufffd\ufffd 18 17:52 ../ drwxr-xr-x 2 root root 4096 ao\ufffd\ufffd 18 17:53 .ssh/ /users/node_f8/master/config/root/.ssh: total 20 drwxr-xr-x 2 root root 4096 ao\ufffd\ufffd 18 17:53 ./ drwxr-xr-x 3 root root 4096 ao\ufffd\ufffd 18 17:52 ../ -rw-r--r-- 1 root root 9839 ao\ufffd\ufffd 18 17:53 authorized_keys
Installation des noeuds On fait d'abord une installation du noeud 1, avant de cloner vers les autres noeuds avec systemimager. Pour l'install, on va utiliser kickstart en utilisant le maitre comme repository source, puis les fichiers de post-install stockes sur le maitre. les differentes etapes sont: 1. Preparation des repositories sur le maitre. Pour cela, on utilise tout ce qu'il y a dans /var/cache/yum. Il faut aussi copier tous les fichiers de la fedora de base. On met l'iso du DVD dans /users/node_f8/F8/Fedora-8-x86_64-DVD.iso, puis on ouvre en loopback mkdir /mnt/iso mount -o loop -t iso9660 /users/node_f8/F8/Fedora-8-x86_64-DVD.iso /mnt/iso cd /mnt/iso/Packages cp * /var/cache/yum/fedora/packages (faut il ecraser ou non les packages en double ? je ne sauis pas ; probablement sans importance) On peut ensuite demonter /mnt/iso Pour preparer les repositories, on lance le script /users/node_f8/master/scripts/prepare-repository (ca prend quelques minutes a creer les repositories, en particulier pour "fedora"). 2. Install kickstart du noeud On boote a partir du CD-Rescue Fedora 8. Apres ESC, on recupere le boote, et on tape linux ks=nfs:192.168.1.253:/users/node_f8/node/ksnode.cfg (attention, il y a bien un : entre l'adresse IP et le path) Bien prendre l'interface eth0, donner 192.168.1.253 comme serveur de nom (mieux vaut pas a mon avis). L'install se passe alors normalement en une quinzaine de minutes. La partie post-install du kickstart est minimum, elle se contente en fait de modifier le fstab pour pouvoir monter /users et de modifier le /etc/hosts pour avoir le reseau qui marche correctement. 3. Apres le reboot, c'est un peu comme pour le maitre, il y a des scripts plus ou moins globaux a passer. Ils sont dans /users/node_f8/node/scripts. Le script global est suite-installation, que l'on detaille dans la suite. 4. run_once Ce script modifie un certain nombre de fichiers de config en sauvegardant les fichiers d'origine dans .orig avec ce qui est dans /users/node_f8/node/config (essentiellement dans le repertoire etc) Il est donc important de ne faire tourner run_once qu'une seule fois. Les differentes etapes sont: * modifier /opt pour qu'il pointe sur /usr/local * modifier /etc/X11/Xresources pour des couleurs plus agreables * modifier /etc/fstab pour que ca monte /var/cache/yum dans /yummaster * copier /users/node_f8/node/config/etc/bashrc dans /etc/bashrc (ajout des '-i' pour cp, mv, rm et configuration du path) * mettre a jour ld.so.conf pour avoir le compilo intel * mettre a jour /etc/ssh et /root/.ssh pour conserver les memes cles de cryptage * mettre a jour /etc/modprobe.conf, pour disabler eth1 * mettre a jour /etc/security/limits.conf, pour mvapich * mettre a jour /etc/rc.d/rc.local pour demarrer opensm au boot, sur le noeud 1 * script ntpmgr, qui configure ntp pour se synchroniser sur master * script inittabgr, qui configure le inittab a 3 (pas de X) * script servicemgr, qui configure les services a demarrer au boot. On ne garde que le strict minimum, a savoir: - ntpd pour avoir une synchro de l'heure - crond pour quelques scripts (atd et anacron inutiles) - sshd pour pouvoir se connecter - network - netfs et rpcbind pour le montage NFS de /users - syslog-ng Seront ajoutes au cours de l'install openibd et pbs_mom * script usermgr, qui recopie les fichiers passwd, shadow, group et gshadow. En pratique, il ecrase tout. Lors d'une install d'une nouvelle Fedora, le mieux est donc de faire a la main, un mix des fichiers originaux (conserves dans .orig) et des utilisateurs rajoutes. En fait, on utilise ici un lien vers les fichiers du master. * script yummgr, qui configure yum pour acceder aux repositories interessants. Ici, on ne conserve pas les packages dans /var/cache/yum (option keepcache=0 dans /etc/yum/conf) Il peut y avoir quelques warnings (fichiers manquants), sans grande importance. L'execution de run_once prend quelques secondes.
5. rpm-yum-mgr Ce script installe tous les packages necessaires (et meme plus) via yum et les repositories installes sur le maitre dans /yummaster. Il peut tourner plusieurs fois sans inconvenient. L'execution prend environ 5 minutes.
6. install-rpm Ce script installe des rpm non disponibles sous yum. Ils sont rassembles dans /users/node_f8/master/rpm. Tout est fait en "yum localinstall" plutot que rpm brutal.
7. ajout-c3 Ceci permet l'execution de commandes globales sur le cluster via cexec (1 package sur les noeuds)
8. ajout-systemimager Ce script installe systemimager (un paquet de rpms) sur le noeud. 9. install-nonrpm installe les packages utiles qui ne sont pas sous forme de rpm. Il s'agit en general d'applications genre compilo ou librairie, installee manuellement sur une machine et dont on a fait un .tgz qui peut etre reutilise sur toute machine. En particulier, ca doit contenir les fichiers de license necessaires. Les .tgz eux memes sont dans /users/node_f8/master/tar Il y a : - install-intel-compiler-fortran-10.1 : Intel Fortran 32 bits version 10.1 - install-intel-compiler-fortrane-10.1 : Intel Fortran 64 bits version 10.1 - install-intel-compiler-cc-10.1 : Intel C 32 bits version 10.1 - install-intel-compiler-cce-10.1 : Intel C 64 bits version 10.1 - install-intel-idb-10.1 : Intel debugger 32 bits version 10.1 - install-intel-idbe-10.1 : Intel debugger 64 bits version 10.1 - install-mkl-10.0 : Intel MKL library version 10.0, 32 et 64 bits, serial et multithreaded - install-acml-4.0.1 : AMD ACML library, version 4.0.1, 64 bits, pour gfortran, ifort, pathscale, single et multi-threaded - install-libraries : installe differentes librairies utiles: * NAG 32 et 64 bits, ifort et gfortran. Par defaut, libnag.a pointe vers ifort 64 bits. * Lapack 32 et 64 bits pour ifort. Par defaut, liblapack.a pointe vers ifort 64 bits. * fgsl 32 et 64 bits pour ifort. Par defaut, libfgsl.a pointe vers ifort 64 bits (il y a egalement le include correspondant). * Goto (BLAS) 64 bits, pour tout compilateur, en versions opteron single et multi-threaded, avec ou sans support de sse3. Par defaut, libgoto.a (multi-threaded) pointe vers nosse3 sur la maitre, sse3 sur les noeuds. libgoto-single.a pointe sur les versions single. 10. ajout-ganglia Ce scripte installe ganglia et ganglia-gmond et configure /etc/gmond.conf. Pour sortir l'etat des noeuds A la fin, il peut y a voir des fichiers appartenant a delande plutot que root, on peut donc faire un "cd /opt; chown -R root.root ." Finalement, il faut lancer un grand "yum update" qui prend environ 30 minutes. ***** contenu de /users/node_f8/node/config (le 18-8-2008) Differents fichiers de config des noeuds sont gardes dans /users/node_f8/node/config Ils peuvent en principe ecraser brutalement les fichiers existant apres une install standard de Fedora sur le noeud. Certains sont peut-etre inutiles. Il y en a qui sont des liens sur /users/node_f8/master/config. /users/node_f8/node/config/: total 32 drwxr-xr-x 4 root root 4096 jan 20 2008 . drwxr-xr-x 8 root root 4096 ao\ufffd\ufffd 18 16:48 .. drwxr-xr-x 3 root root 4096 f\ufffd\ufffdv 7 2007 boot drwxr-xr-x 10 root root 4096 ao\ufffd\ufffd 18 17:20 etc /users/node_f8/node/config/boot: total 24 drwxr-xr-x 3 root root 4096 f\ufffd\ufffdv 7 2007 . drwxr-xr-x 4 root root 4096 jan 20 2008 .. drwxr-xr-x 2 root root 4096 f\ufffd\ufffdv 7 2007 grub /users/node_f8/node/config/boot/grub: total 24 drwxr-xr-x 2 root root 4096 f\ufffd\ufffdv 7 2007 . drwxr-xr-x 3 root root 4096 f\ufffd\ufffdv 7 2007 .. -rw------- 1 root root 1114 ao\ufffd\ufffd 18 14:48 grub.conf /users/node_f8/node/config/etc: total 136 drwxr-xr-x 10 root root 4096 ao\ufffd\ufffd 18 17:20 . drwxr-xr-x 4 root root 4096 jan 20 2008 .. lrwxrwxrwx 1 root root 33 jan 16 2008 bashrc -> ../../../master/config/etc/bashrc -rw-r--r-- 1 root root 709 jan 16 2008 fstab -rw-r--r-- 1 root root 5917 jan 31 2008 gmond.conf lrwxrwxrwx 1 root root 32 jan 11 2008 group -> ../../../master/config/etc/group lrwxrwxrwx 1 root root 34 jan 11 2008 gshadow -> ../../../master/config/etc/gshadow -rw-r--r-- 1 root root 1207 ao\ufffd\ufffd 18 13:28 hosts drwxr-xr-x 2 root root 4096 jun 4 2007 infiniband drwxr-xr-x 2 root root 4096 jan 17 2008 init.d -rw-r--r-- 1 root root 1666 jan 16 2008 inittab lrwxrwxrwx 1 root root 37 jan 16 2008 ld.so.conf -> ../../../master/config/etc/ld.so.conf -rw-r--r-- 1 root root 196 ao\ufffd\ufffd 18 17:18 modprobe.conf -rw------- 1 root root 18 nov 6 2006 mpd.conf -rw-r--r-- 1 root root 172 jui 18 2006 ntp.conf lrwxrwxrwx 1 root root 33 jan 11 2008 passwd -> ../../../master/config/etc/passwd drwxr-xr-x 3 root root 4096 nov 25 2007 pki drwxr-xr-x 2 root root 4096 jan 21 2008 rc.d -rwxr-xr-x 1 root root 298 ao\ufffd\ufffd 18 17:20 rc.local drwxr-xr-x 2 root root 4096 sep 6 2006 security lrwxrwxrwx 1 root root 33 jan 11 2008 shadow -> ../../../master/config/etc/shadow drwxr-xr-x 2 root root 4096 jun 26 2006 ssh drwxr-xr-x 3 root root 4096 ao\ufffd\ufffd 18 17:25 sysconfig -rw-r--r-- 1 root root 282 jan 16 2008 yum.conf drwxr-xr-x 2 root root 4096 jan 16 2008 yum.repos.d /users/node_f8/node/config/etc/infiniband: total 24 drwxr-xr-x 2 root root 4096 jun 4 2007 . drwxr-xr-x 10 root root 4096 ao\ufffd\ufffd 18 17:20 .. -rw-r--r-- 1 root root 554 ao\ufffd\ufffd 18 17:19 openib.conf /users/node_f8/node/config/etc/init.d: total 32 drwxr-xr-x 2 root root 4096 jan 17 2008 . drwxr-xr-x 10 root root 4096 ao\ufffd\ufffd 18 17:20 .. -rwxr-xr-x 1 root root 8152 jan 17 2008 opensm -rwxr-xr-x 1 root root 1738 mai 14 2007 pbs_mom /users/node_f8/node/config/etc/pki: total 16 drwxr-xr-x 3 root root 4096 nov 25 2007 . drwxr-xr-x 10 root root 4096 ao\ufffd\ufffd 18 17:20 .. drwxr-xr-x 2 root root 4096 nov 25 2007 rpm-gpg /users/node_f8/node/config/etc/pki/rpm-gpg: total 64 drwxr-xr-x 2 root root 4096 nov 25 2007 . drwxr-xr-x 3 root root 4096 nov 25 2007 .. -rw-r--r-- 1 root root 1391 nov 25 2007 jpackage.asc -rw-r--r-- 1 root root 1569 nov 25 2007 kde-redhat.RPM-GPG-KEY -rw-r--r-- 1 root root 1910 nov 25 2007 RPM-GPG-KEY -rw-r--r-- 1 root root 1726 nov 25 2007 RPM-GPG-KEY-adobe-linux -rw-r--r-- 1 root root 1044 nov 25 2007 RPM-GPG-KEY.atrpms -rw-r--r-- 1 root root 1706 nov 25 2007 RPM-GPG-KEY-beta -rw-r--r-- 1 root root 2161 nov 25 2007 RPM-GPG-KEY.dries.txt -rw-r--r-- 1 root root 1519 nov 25 2007 RPM-GPG-KEY-fedora -rw-r--r-- 1 root root 1105 nov 25 2007 RPM-GPG-KEY-fedora-rawhide -rw-r--r-- 1 root root 1076 nov 25 2007 RPM-GPG-KEY-fedora-test -rw-r--r-- 1 root root 1639 nov 25 2007 RPM-GPG-KEY-freshrpms -rw-r--r-- 1 root root 1422 nov 25 2007 RPM-GPG-KEY-livna -rw-r--r-- 1 root root 1547 nov 25 2007 RPM-GPG-KEY.planetccrma.txt -rw-r--r-- 1 root root 1232 nov 25 2007 RPM-GPG-KEY-rawhide /users/node_f8/node/config/etc/rc.d: total 20 drwxr-xr-x 2 root root 4096 jan 21 2008 . drwxr-xr-x 10 root root 4096 ao\ufffd\ufffd 18 17:20 .. -rwxr-xr-x 1 root root 297 jan 21 2008 rc.local /users/node_f8/node/config/etc/security: total 24 drwxr-xr-x 2 root root 4096 sep 6 2006 . drwxr-xr-x 10 root root 4096 ao\ufffd\ufffd 18 17:20 .. -rw-r--r-- 1 root root 1851 mai 14 2007 limits.conf /users/node_f8/node/config/etc/ssh: total 180 drwxr-xr-x 2 root root 4096 jun 26 2006 . drwxr-xr-x 10 root root 4096 ao\ufffd\ufffd 18 17:20 .. -rw------- 1 root root 132839 mar 2 2006 moduli -rw-r--r-- 1 root root 1827 mar 2 2006 ssh_config -rw------- 1 root root 3301 mar 2 2006 sshd_config -rw------- 1 root root 668 jun 26 2006 ssh_host_dsa_key -rw-r--r-- 1 root root 590 jun 26 2006 ssh_host_dsa_key.pub -rw------- 1 root root 963 jun 26 2006 ssh_host_key -rw-r--r-- 1 root root 627 jun 26 2006 ssh_host_key.pub -rw------- 1 root root 1679 jun 26 2006 ssh_host_rsa_key -rw-r--r-- 1 root root 382 jun 26 2006 ssh_host_rsa_key.pub /users/node_f8/node/config/etc/sysconfig: total 32 drwxr-xr-x 3 root root 4096 ao\ufffd\ufffd 18 17:25 . drwxr-xr-x 10 root root 4096 ao\ufffd\ufffd 18 17:20 .. -rw-r--r-- 1 root root 47 ao\ufffd\ufffd 18 17:23 i18n -rw-r--r-- 1 root root 32 ao\ufffd\ufffd 18 17:23 keyboard drwxr-xr-x 2 root root 4096 ao\ufffd\ufffd 18 17:26 network-scripts -rw-r--r-- 1 root root 4336 ao\ufffd\ufffd 18 17:23 opensm.conf /users/node_f8/node/config/etc/sysconfig/network-scripts: total 12 drwxr-xr-x 2 root root 4096 ao\ufffd\ufffd 18 17:26 . drwxr-xr-x 3 root root 4096 ao\ufffd\ufffd 18 17:25 .. -rw-r--r-- 1 root root 124 ao\ufffd\ufffd 18 17:26 ifcfg-ib0 /users/node_f8/node/config/etc/yum.repos.d: total 36 drwxr-xr-x 2 root root 4096 jan 16 2008 . drwxr-xr-x 10 root root 4096 ao\ufffd\ufffd 18 17:20 .. -rw-r--r-- 1 root root 159 jan 16 2008 adobe-linux-i386.repo -rw-r--r-- 1 root root 207 jan 16 2008 fedora.repo -rw-r--r-- 1 root root 184 jan 16 2008 fedora-updates.repo -rw-r--r-- 1 root root 429 jan 16 2008 kde-redhat.repo -rw-r--r-- 1 root root 237 jan 16 2008 livna.repo -rw-r--r-- 1 root root 121 jan 16 2008 texlive.repo Difference pour les noeuds 20 et 21: Les fichiers /etc/sysconfig/network-scripts/ifcfg-ib{0,1} (deux ports au lieu d'un) /etc/infiniband/openib.conf (module different) /etc/modprobe.conf /boot/grub/grub.conf (pas de memtest) sont les seuls qui different. Par flemme, j'ai juste duplique l'arborescence.
gestion des cles Pas de probleme pour les utilisateurs lambda qui partagent le home-directory par NFS. Pour root, on fait comme suit: 1. Sur chaque noeud (y compris thorgal), on genere une cle par ssh-keygen -t dsa 2. On rassemble tous les /root/.ssh/id_dsa.pub dans un fichier unique que l'on met dans /root/.ssh/authorized_keys sur thorgal. 3. On le recopie dans /users/node_f8/master/config/root/.ssh/authorized_keys 4. On peut alors le recopier sur chaque noeud dans /root/.ssh/authorized_keys.
OFED Installation de OFED, version 1.4-alpha1 (datant du 18 aout 2008) Il faut tout d'abord recuperer OFED-1.4-alpha1.tgz sur le site http://www.openfabrics.org/builds/ofed-1.4/release/OFED-1.4-alpha1.tgz Sinon, on peut utiliser git pour recuperer les dernieres versions. Voir https://wiki.openfabrics.org/tiki-index.php Attention : tout ce qui est svn semble etre obsolete (en avril 2007). On peut detarrer le package OFED-1.4-alpha1.tgz dans /users/node_f8/master/OFED-1.4-alphpa1 Il y a quelques fichiers a modifier par rapport au OFED-1.4-alpha1 original: * MYREADME * myofed.conf Les contenus suivent. La compilation du tout se fait via gcc. Inutile d'essayer un compilo autre, ca n'ameliore rien, bien au contraire. J'ai essaye d'autres versions: OFED-1.3.2-20080728-0355.tgz, OFED-1.4-20080814-0600.tgz, OFED-1.3.1.tgz Elles plantent. Les 1.3 ne supportent pas le noyau 2.6.25, la 1.4 plante a l'install. ******* MYREADME par DD le 18-8-2008 ************* Avant de lancer l'install, il est conseille d'effacer entierement /opt/ofed, sinon des scories risquent de s'y accumuler. Pour installer OFED, il suffit de lancer simplement ./install.pl -c myofed.conf pour installer automatiquement tout ce qui parait souhaitable. Le ibsim et tgt-generic plantent a l'install, il faut donc les disabler. Pour les tests, mvapich-intel, mvapich2-intel et openmpi-intel plantent juste a l'installation, car il ne trouve pas les librairies C dans la base de donnees rpm, puisque l'install a ete faire manuellement via un .tgz. Je les ai donc disables. Par contre, j'ai laisse le ipoib, pour le fun. Il y a quelques petits bugs a corriger a la main: * en cours d'install, il se plaint de ne pas trouver dapl-2.0.11-1.x86_64.rpm et s'arrete. Il suffit en fait de faire (virer le .fc8 au milieu) cd /users/node_f8/master/OFED-1.4-alpha1/RPMS/fedora-release-8-5/x86_64 cp dapl-2.0.11-1.fc8.x86_64.rpm dapl-2.0.11-1.x86_64.rpm pour que ca marche (faire de meme pour dapl-debuginfo, dapl-devel, dapl-devel-statuic et dapl-utils). * le fichier opensm.conf est apres l'install dans /etc/@OPENSM_CONFIG_SUB_DIR@, alors qu'il devrait etre dans /etc/sysconfig. Copier a la main. * commenter ib0 dans le /etc/modprobe.conf, pour eviter de demarrer ib0 (facultatif, en fait a eviter si on veut utiliser par exemple le MPI de Intel); * sur le maitre, empecher le demarrage du demon openibd chkconfig --level 35 openibd off On peut aussi ajouter a la main des liens du type (il y en a 6): /opt/ofed/mpi/gcc/mvapich2-1.0.3 vers /opt/mvapich2-gcc On souhaite aussi utiliser mpi-selector. Les 6 compilos OFED sont installes automatiquement. Pour les install manuelles, il faut recopier les fichiers mpivars.{csh,sh} dans /users/node_f8/master/config/opt/mvapich-gcc vers /opt/mvapich-gcc/bin, puis taper quelque chose du genre: mpi-selector --register mvapich-gcc --source-dir /opt/mvapich-gcc/bin Ensuite, chaque utilisateur peut selectionner son mpi avec mpi-selector-menu. Il faut faire l'install d'abord sur le noeud 1, puis sur le noeud 20 et enfin sur le maitre et cloner ensuite les noeuds 1 et 20. Attention, les modules mlx4 (pour carte Infiniband ConnectX) et mthca (pour carte Infiniband III) sont installes simultanement sur une machine. A priori, ce n'est pas grave. On peut corriger dans /etc/infiniband/openib.conf On peut ensuite faire une install personnalisee de mvapich (et mvapich2, openmpi), voir plus loin ************** end MYREADME *********************** ***************** myofed.conf ********************* kernel-ib=y core=y mthca=y mlx4=y ipoib=y sdp=y srp=y srpt=y rds=y kernel-ib-devel=y libibverbs=y libibverbs-devel=y libibverbs-devel-static=y libibverbs-utils=y libibverbs-debuginfo=y libmthca=y libmthca-devel-static=y libmthca-debuginfo=y libmlx4=y libmlx4-devel=y libmlx4-debuginfo=y libcxgb3=n libcxgb3-devel=n libcxgb3-debuginfo=n libnes=n libnes-devel-static=n libnes-debuginfo=n libipathverbs=n libipathverbs-devel=n libipathverbs-debuginfo=n libibcm=y libibcm-devel=y libibcm-debuginfo=y libibcommon=y libibcommon-devel=y libibcommon-static=y libibcommon-debuginfo=y libibumad=y libibumad-devel=y libibumad-static=y libibumad-debuginfo=y libibmad=y libibmad-devel=y libibmad-static=y libibmad-debuginfo=y ibsim=n ibsim-debuginfo=n librdmacm=y librdmacm-utils=y librdmacm-devel=y librdmacm-debuginfo=y libsdp=y libsdp-devel=y libsdp-debuginfo=y opensm=y opensm-libs=y opensm-devel=y opensm-debuginfo=y opensm-static=y compat-dapl=n compat-dapl-devel=n dapl=y dapl-devel=y dapl-devel-static=y dapl-utils=y dapl-debuginfo=y perftest=y mstflint=y sdpnetstat=y srptools=y rds-tools=y ibutils=y infiniband-diags=y qperf=y qperf-debuginfo=y ofed-docs=y ofed-scripts=y tgt-generic=n mpi-selector=y mvapich_gcc=y mvapich_intel=y mvapich2_gcc=y mvapich2_intel=y openmpi_gcc=y openmpi_intel=y mpitests_mvapich_gcc=y mpitests_mvapich_intel=n mpitests_mvapich2_gcc=y mpitests_mvapich2_intel=n mpitests_openmpi_gcc=y mpitests_openmpi_intel=n build32=0 prefix=/opt/ofed mvapich2_conf_impl=ofa mvapich2_conf_romio=1 mvapich2_conf_shared_libs=1 mvapich2_conf_ckpt=0 mvapich2_conf_vcluster=small mvapich2_conf_dapl_provider=ib0 ************* end myofed.conf ********************** L'installation la plus simple est de le faire d'abord sur un noeud, puis simplement sur le maitre, ou on ne regenere pas les executables, mais on se contente d'installer les rpm dans RPMS/fedora-release-8-5 par install.pl -c myofed.conf Pour desinstaller (avant upgrade), on peut aller dans /opt/ofed/sbin et executer ofed_uninstall.sh INSTALLATION personnalisee de MPI On peut faire des installations de MPI apres celles de OFED. 2 versions sont installees: * mvapich-trunk-2008-08-14 avec gcc * mvapich-trunk-2008-08-14 avec icc Ca marche aussi avec mvapich-1.0.0 (qui est en fait une version beta). Ils sont installes sur chaque noeud (via clonage) et sur le maitre dans les directories /opt/mvapich-{gcc,icc}-custom. La procedure d'installation est decrite ci-dessous. Une install de mvapich2-1.2rc1 a echoue, le lancement des differents jobs ne se,blant pas marcher...
Installation de mvapich On fait une installation "multirail" partout, pour avoir la meme chose sur tous les noeuds. Il faut tout d'abord recuperer le package mvapich sur http://mvapich.cse.ohio-state.edu/nightly/mvapich/trunk/ (voir aussi http://mvapich.cse.ohio-state.edu/download/mvapich/) On detare et on ajoute dans mvapich-trunk-1008-08-14 les fichiers suivants: * make.mvapich.gen2_multirail (en sauvegardant l'original dans .orig) C'est juste pour avoir MPE compile avec, les shared libraires et ssh au lieu de rsh. diff make.mvapich.gen2_multirail make.mvapich.gen2_multirail.orig 80c80 < $ROMIO --with-mpe -enable-sharedlib -lib="$LIBS" 2>&1 |tee config-mine.log --- > $ROMIO --without-mpe -lib="$LIBS" 2>&1 |tee config-mine.log * set_gcc. export CC=gcc export FC=gfortran export F77=gfortran export F90=gfortran export CXX=g++ export F77_GETARGDECL=" " export PREFIX=/opt/mvapich-gcc-custom export OPT_FLAG="-O -march=k8 -mcmodel=medium" export FFLAGS="-O -march=k8 -mcmodel=medium -L/opt/ofed/lib64" export RSHCOMMAND=ssh * set_icc export CC=icc export FC=ifort export F77=ifort export F90=ifort export CXX=icpc export PREFIX=/opt/mvapich-icc-custom export OPT_FLAG="-O -Os -xW -ip -fno-alias -align -mcmodel=medium -D__INTEL_COMPILER" export FFLAGS="-O -Os -xW -ip -fno-alias -align -mcmodel=medium -D__INTEL_COMPILER -L/opt/ofed/lib64" export RSHCOMMAND=ssh Pour generer mvapich, on fait d'abord . set_gcc ou . set_icc Puis make.mvapich.gen2_multirail On a alors le configure, puis le make, puis le make install. Le plus simple est de generer tout cela sur node1, puis de faire un make install simple sur le maitre et sur node20. ATTENTION: 1. Si on oublie de le faire pour passer a un autre compilo, le binaire est ecrase et il faut refaire tout avec le make install. 2. Il faut faire cela comme root, sinon ca ne marche pas dans la phase de config (bacle, le compilo C++ ne veut pas compiler iostream.h)
Utilisation de mpi-selector On souhaite aussi utiliser mpi-selector. Les 6 compilos OFED sont installes automatiquement. Pour les install manuelles, il faut recopier les fichiers mpivars.{csh,sh} dans /users/node_f8/master/config/opt/mvapich-gcc-custom/bin vers /opt/mvapich-gcc-custom/bin, puis taper quelque chose du genre: mpi-selector --register mvapich-gcc-custom --source-dir /opt/mvapich-gcc-custom/bin Ensuite, chaque utilisateur peut selectionner son mpi avec mpi-selector-menu. Les mpivars.* sont stockes dans /var/mpi-selector/data. On peut recopier cette structure noeud a noeud, et sur le maitre (c'est identique partout). Elle est dans /users/node_f8/master/config/var/mpi-selector/data avec un lien vers cette structure dans /users/node_f8/{node,node20}. Le MPI system-wide est dans /etc/sysconfig/mpi-selector (aussi copie dans /users/node_f8/{master,node,node20}/etc/sysconfig) et pour chaque user dans $HOME/.mpi-selector. Pour l'instant, c'est mvapich_intel-1.0.1.
Clonage d'un noeud Clonage d'un noeud On utilise systemimager. La version stable 4.0.2 marche correctement. C'est installe sur thorgal, avec : systemconfigurator-2.2.11-1.noarch.rpm systemimager-client-4.0.2-1.noarch.rpm systemimager-common-4.0.2-1.noarch.rpm systemimager-server-4.0.2-1.noarch.rpm systemimager-x86_64boot-standard-4.0.2-1.noarch.rpm systemimager-x86_64initrd_template-4.0.2-1.noarch.rpm perl-AppConfig-1.52-4.noarch.rpm Le tout est dans /users/node_f8/master/scripts/ajout-systemimager, il y un fichier README dans /users/node_f8/systemimager qui contient : ************************************ #README by DD le 16-1-2008 Ce repertoire contient les rpm a installer pour systemimager Inutile de faire tourner le script install, il suffit d'installer sauvagement les rpm, puis de demarrer les services. En fait, cela est fait comme il faut dans les scripts d'install, sauf le demarrage de systemimager-server-rsyncd sur le maitre qui doit etre fait manuellement. ************************** Pas clair de savoir quels services doivent etre demarres sur quelles machines. A priori : rien sur les noeuds, mais il semble rester un rsync qui peut trainer apres generation de l'image -> a tuer. Sur le maitre, systemimager-server-rsyncd est indispensable pour la premiere install d'un noeud (et apres ???). Installe sur les noeuds: systemimager-common-4.0.2-1.noarch.rpm systemimager-client-4.0.2-1.noarch.rpm systemimager-x86_64initrd_template-4.0.2-1.noarch.rpm systemconfigurator-2.2.11-1.noarch.rpm Pour preparer initialement l'image sur le golden client (noeud 1), on utilise juste sur le noeud: si_prepareclient --server 192.168.1.253 (ca prend 2 minutes environ) Pour la recuperer sur le maitre, on utilise la commande normale: si_getimage --golden-client 192.168.1.1 --image image_node1 --ip-assignment dhcp (la premiere fois, ca prend une trentaine de minutes). A la fin, il propose de faire tourner le script si_clusterconfig. J'ai repondu "y" et on edite alors le fichier /var/lib/systemimager/scripts/cluster.txt C'est en XML, j'ai configure quelque chose d'apparemment raisonable, mais je ne suis pas sur que ca serve a quoi que ce soit... Ensuite, il faut preparer sur la maitre le cd d'autoinstall via: si_mkautoinstallcd --out-file image_node1.iso (Attention, il faut que le package syslinux soit installe) Il faut choisir une flavor (choix: standard ou image_node1). J'ai pris image_node1 (qui fait une image plus grosse, 26 Mo au lieu de 10 Mo), sans raison particuliere, mais ca marche. On burne alors l'image_node1.iso sur un CD. Pour les noeuds 20 et 21 (update du 18-8-2008), on utilise la flavor image_node20, on cree et burne donc l'image image_node20.iso, donc un CD d'autoinstall different. Il faut demarrer sur le maitre le service systemimager-server-rsyncd. J'ai tape chkconfig --level 35 systemimager-server-rsyncd on Pour chaque noeud, on peut booter sur ce CD, et l'install est automatique (ca prend environ 15 minutes). Deux petits problemes: * grub baptise le kernel a booter image_node1, mais c'est bien le bon noyau. * l'interface ib0 tente de demarrer... Pour updater une image: 1. Sur le noeud de reference : si_prepareclient --server 192.168.1.253 en repondant oui a tout 2. Sur le maitre, recuperer l'image avec : si_getimage --golden-client 192.168.1.1 --image image_node1 --ip-assignment dhcp ou image_node1 est le nom de l'image en repondant oui SAUF Would you like to update the autoinstall script for this image? ([y]/n): ou il faut imperativement repondre non (sinon on ecrase les scripts precedents) 3. Pour recopier sur un noeud : si_updateclient --server 192.168.1.253 --image image_node1 --no-bootloader (rajouter --yes pour eviter d'avoir a confirmer) Pour faire cela simultanement sur tous les noeuds, on peut utiliser cexec a partir du maitre avec une commande du type: cexec local:2-11 si_updateclient --server 192.168.1.253 --image image_node1 --no-bootloader --yes qui mettra a jour les noeuds 3 a 12. Idem pour les noeuds 20 et 21 en changeant bien sur image_node1 en image_node20. Il y a (a la date du 18-8-2008) 3 images sauvegardees dans /var/lib/systeminager/images: * image_node1, qui contient l'image du noeud 1, la plus recente, avec kernel fedora 2.6.25.14-69.fc8 * image_node11, obsolete * image_node20, qui contient l'image du noeud 20, la plus recente, avec kernel fedora 2.6.25.14-69.fc8
Install Torque Avant, on faisait une installation manuelle. Maintenant, on utilise yum. A la brutale sur le master, on fait: yum install torque torque-server torque-scheduler torque-mom torque-client torque-gui libtorque libtorque-devel torque-docs perl-PBS Pour commencer on arrete les serveurs: service pbs_server stop service pbs_mom stop service pbs_sched stop On va ensuite dans /users/node_f8/master/torque_config et on fait cp ./server_name /var/torque Puis on fait tourner le script ./mytorque.setup root qui utilise aussi le fichier my_input_for_qmgr On peut verifier que c'est bon avec qmgr -c 'print server' Il faut ensuite mettre la liste des noeuds avec cp ./nodes /var/torque/server_priv (ATTENTION, quand on relance le script mytorque.setup, tout fichier nodes existant est supprime) On peut faire ensuite (a ameliorer sans doute) cp ./sched_config /var/torque/sched_priv Si necessaire (en principe non), on peut stopper le pbs_server avec qterm -t quick Pour etre operationnel, il faut que pbs_server et pbs_sched tourne sur le master et pbs_mom si on veut qu'il apparaisse dans xpbsmon. Sur le master: chkconfig --level 35 pbs_server on chkconfig --level 35 pbs_sched on chkconfig --level 35 pbs_mom on Sur les noeuds (marche aussi pour node20), on fait comme suit. On installe: yum install torque torque-mom torque-client torque-gui libtorque libtorque-devel On veut que seul pbs_mom tourne, donc chkconfig --level 35 pbs_mom on On va ensuite dans /users/node_f8/master/torque_config Pour commencer on fait cp ./server_name /var/torque cp ./config /var/torque/mom_priv Il faut aussi modifier le pbs_mom qui, par defaut, limite la memoire lockable a 32M, ce qui ne permet pas de faire tourner openmpi. On fait donc cp /etc/init.d/pbs_mom /etc/init.d/pbs_mom.orig cp /users/node_f8/node/config/etc/init.d/pbs_mom /etc/init.d/pbs_mom Pour etre operationnel, il n'y a que redemarrer pbs_mom
Firmware des cartes Infiniband Il s'agit de cartes Single Port InfiniHost(TM) III Lx MemFree PCI Express HCA Cards (MemFree PCI Express x8, Tall Bracket, RoHS-R5 HCA Card) Elles ont ete livrees avec un firmware 1.08, depuis upgrade en 1.10 et ensuite en 1.20. A chaque fois, la latence a ete legerement amelioree (surtout les barrieres MPI). On trouve les nouvelles versions de firmware chez Mellanox : http://www.mellanox.com/support/firmware_table_IH3Lx.php La derniere version est fw-25204-1_2_000-MHGS18-XTC_A2-A3.bin Les firmwares et scripts sont gardes dans /users/node_f8/node/firmware-infiniband Il y a en principe un script check_infiniband qui permet de verifier que c'est ok et par exemple burn_infiniband_firmware_to_1.20 qui permet d'upgrader le firmware, sans toucher au "invariant sector" (apparemment, on pourrait y toucher, mais c'est potentiellement dangereux). Ces scripts necessitent /opt/ofed/bin/mstflint qui est installe dans OFED-1.XXX Il semble que mstflint soit un peu ancien, en passe d'etre remplace par quelque chose de plus moderne. Pour l'instant ca marche et ca suffit. Noeuds 20 et 21 Il s'agit de cardes Double Port Infinihost Elles ont ete livrees avec un firmware 2.3, upgrade le 14-8-2008 en 2.5. C'est fw-25408-2_5_000-MHGH29-XTC_A1.bin C'est garde dans /users/node_f8/node20/firmware-infiniband Il y a en principe un script check_infiniband qui permet de verifier que c'est ok et par exemple burn_infiniband_firmware_to_2.5 qui permet d'upgrader le firmware, sans toucher au "invariant sector". ********************************************************************* ***************** scripts de tests intensifs OpenMP ************ Pour tester les noeuds independamment sosu forte charge (sans message MPI), on peut faire tourner un job OpenMP a 4 threads sur chaque noeud. On trouve dans /users/node_f8/node/tests ce qu'il faut pour cela: * Un executable hes216 (venant de ~delande/sdef2) compile avec OpenMP et la librairie Gotoblas, de facon a fonctionner de maniere optimale avec OMP_NUM_THREADS=4 et GOTO_NUM_THREADS=1 (alternativement, n'importe quelle librairie Blas monothread fait l'affaire). * les fichiers d'input entree1.dat et helium.input necessaires au run. * trois fichiers de script: une seule passe (script), infini (script_infini), infini alterne avec un "du -s /var/*' (script2_infini). Il faut par exemple faire sur le maitre cexec 'cd /users/node_f8/node/tests ; time ./script' pour executer sur tous les noeuds. Le temps devrait etre de l'ordre de 235 secondes avec les Opteron 2.6 GHz. Toute difference significative entre noeuds (plus de 5 secondes) est sans doute l'indice d'un probleme hardware). Avec le compilo Intel et la librairie Goto 1.19 (single), on gagne un peu avec un temps total de 223 secondes, pour une execution directe sur le noeud (le 16-1-2008). Temps confirme le 19-8-2008 avec l'ancien binaire. En recompilant et en liant avec /opt/lib/libgoto_opteron-sse3-r1.26.so, on passe a 216 secondes. Avec MKL, on reste a 227 secondes. On met quand meme la version MKL dans /users/node_f8/node/tests, afin d'avoir la meme version partout.
Kernel Installation d'un nouveau kernel Il faut, dans l'ordre: * Installer kernel et kernel-devel sur thorgal, IMPERATIVEMENT avec yum (pas de rpm sauvage, sinon ca fout tout en l'air). A la rigueur on peut faire un "yum localinstall kernelxxxx" a condition de bien mettre les rpm dans /var/cache/yum/updates/packages * Mettre a jour le repository de thorgal en allant dans /var/cache/yum/updates et en tapant "createrepo ." * Faire un "yum update kernel kernel-devel" sur le noeud 1. * Rebooter le noeud 1 * Pour installer sur tous les noeuds, il faut faire un coup de systemimager apres install sur le noeud * A un moment, il faut rebooter thorgal pour avoir le meme kernel partout * Apres install, verifier les resultats de lsmod, lspci, dmidecode et dmesg, en les sauvant dans un fichier avec le nom du kernel. Ils sont stockes dans /users/node_f8/node/messages. Il vaut mieux donc utiliser un kernel Fedora, non recompile. Au cas ou, les fichiers .config pour les differents (vieux) kernels sont dans /users/node_f8/master/kernel-config Il vaut mieux aussi utiliser l'option acpi=noapic au boot, sinon, on a le meme risque de plantage. Le kernel memtest86+ a ete rajoute a la main dans le grub.conf, il n'y est pas normalement. Le /boot/grub/grub.conf sur les noeuds (idem sur le maitre sans le acpi=noapic) : # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You do not have a /boot partition. This means that # all kernel and initrd paths are relative to /, eg. # root (hd0,0) # kernel /boot/vmlinuz-version ro root=/dev/sda1 # initrd /boot/initrd-version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title Fedora (2.6.23.9-85.fc8) root (hd0,0) kernel /boot/vmlinuz-2.6.23.9-85.fc8 ro root=LABEL=/ quiet acpi=noapic initrd /boot/initrd-2.6.23.9-85.fc8.img title Fedora (2.6.23.1-42.fc8) root (hd0,0) kernel /boot/vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/ quiet acpi=noapic initrd /boot/initrd-2.6.23.1-42.fc8.img title memtest86+ root (hd0,0) kernel /memtest86+-1.70 ro root=LABEL=/ quiet
Options mvapich Pour faire tourner de maniere optimale le code de diagonalisation Helium sur les noeuds 1 a 12, on utilise les options suivantes: /opt/mvapich-icc/bin/mpirun_rsh -n 48 -hostfile ./mf12x4 VIADEV_SMP_EAGERSIZE=50 VIADEV_SMPI_LENGTH_QUEUE=101 VIADEV_RNDV_PROTOCOL=RGET VIADEV_RENDEZVOUS_THRESHOLD=50000 VIADEV_CPU_MAPPING=0,2,1,3 ./pzep219 Explications: * compilateur icc pour les meilleures performances avec options -Os -xO -ip -mcmodel=medium -fno-alias -vec-report0 -no-prec-div -fp-model fast=2 (-ipo n'apporte pas de gain, ni -O2 ou -O3) * hostfile: mf12x4 du type node1 node1 node1 node1 node2 node2 node2 node2 node3 node3 (un peu mieux que round robin) * VIADEV_RNDV_PROTOCOL=RGET accelere un peu par rapport a RPUT ou R3 * VIADEV_SMP_EAGERSIZE=50 VIADEV_SMPI_LENGTH_QUEUE=101 VIADEV_RENDEZVOUS_THRESHOLD=50000 : option la plus importante. Cela met tous les transferts de blocs en mode "eager". Le seuil indique (en kOctets pour SMP, on Octets pour RENDEZVOUS...) doit etre legerement superieur a la taille d'un bloc, soit 16*nsizg*nsizg. Il faut en plus mettre VIADEV_SMPI_LENGTH_QUEUE a STRICTEMENT plus (i.e. +1) que le double de VIADEV_SMP_EAGERSIZE. Le gain par cette option est de 30% environ. * VIADEV_CPU_MAPPING=0,2,1,3. Indique le mapping des processes sur les coeurs de chaque noeud. Gain faible, mais pourquoi s'en priver ? Pour mvapich2 (version 1.0.3), l'optimum est semblable: /opt/mvapich2-icc/bin/mpiexec -n 48 -env MV2_IBA_EAGER_THRESHOLD 50000 -env SMP_EAGER_SIZE 50 -env SMPI_LENGTH_QUEUE 101 ./pzep219 sauf que: * C'est un peu moins rapide (4% environ) * SMPI_LENGTH_QUEUE semble inutile * MV2_RNDV_PROTOCOL semble donner le meme resultat pour RPUT et RGET * Le CPU mapping peut etre fait via l'optione -machinefile ./mf (avant -n 48) mais ne semble pas ameliorer les choses. /opt/mvapich2-icc/bin/mpiexec -n 48 -env MV2_IBA_EAGER_THRESHOLD 50000 -env SMP_EAGER_SIZE 50 -env SMPI_LENGTH_QUEUE 101 ./pzep219 ou /opt/mvapich2-icc-custom/bin/mpirun_rsh -n 48 -hostfile $PBS_NODEFILE MV2_IBA_EAGER_THRESHOLD=45000 MV2_USE_SHMEM_COLL=0 MV2_USE_SHARED_MEM=0 ./pzep219
|