SCT

=SCT : Serviware Cluster Tools=

-Le management du cluster fait appel à un ensemble d'outils développés par Serviware : le SCT -sct permet de reconstruire un noeud à partir d'un poste maître, reconstruire un poste maître à partir d'un autre, changer d'OS, etc... -La documentation au format pdf se trouve ici : [|sct.pdf], la partie la plus importante est décrite dans le chapitre 5

Création d'un nouveau compte utilisateur
Sur le cluster la procédure est plus complexe par rapport à une machine isolée, car chaque compte doit exister à la fois sur le poste maître et sur les noeuds de calcul. Il y a donc obligatoirement deux étapes :

1. créer le compte sur le poste maître 2. propager sur les noeuds (voir description de la commande #sctDoNodes ci-dessous)

Remarque : Le /home étant monté sur les noeuds, chaque noeud voit les mêmes fichiers utilisateur, mais les fichiers temporaires (dans /tmp) sont indépendants.

example :


 * 1) su -
 * 2) useradd -g users -m -c "Victor Hugo" vhugo
 * 3) passwd vhugo
 * 4) ./sct/sct.sh
 * 5) sctinit
 * 6) sctDoNodes -sync -n matrics001-matrics016
 * 7) sctDoNodes -sync -n cosinus
 * 8) sctDoNodes -sync -n sinus


 * En pratique, le root peut utiliser l'alias suivant pour tout synchroniser :
 * 1) sync_matrics - mais ce script ne fait que matrics001-matrics016, pas cosinus, pas sinus **

Les commandes nécessitent l'accès root sur la machine, avec le bon environnement, pour passer root il faut taper : ( le "-" est important, "#su" tout court est insuffisant car dans ce cas l'environnement utilisateur est gardé); ensuite, pour la configuration du sct (ajouter sct dans le PATH, positionner la variable CUSTOMER) : ou bien l'alias :
 * 1) su -
 * 1) . /root/sct/sct.sh
 * 1) sctinit

exemple : -bash-3.2$ su - Password: [root@matrics ~]#. /root/sct/sct.sh SCT setup for customer UTC from SCT_DIR=/root/sct,SCT_CUSTOMERCONF=/root/sct/customers/UTC [root@matrics ~]#

Arborescence des fichiers
/root ....../sct - tout ce qui bouge, pour maintenance à distance ............/bin - commandes à exécuter sur poste maître ............/default - commun à tous les clients ............/customers .................../UTC - spécifique UTC, ici se trouve le fichier de configuration "nodelist" ainsi que le fichier principal d'installation ..............................dans le fichier "vars" se truve la variable aplList qui stocke la liste de softs prise dans /root/sct/defaults/scripts/include/apl (les applis que sct sait installer automatiquement); pour une nouvelle application faire un script ds /root/sct/customers/UTC/master (car on installe les applis sur le poste maître); ce script va s'exécuter à l'installation de la machine; les applications correspondantes (.tgz, .iso) sont à déposer dans /root/Serviware (et non dans /root/Serviware/Addon car ce dernier repertoire est géré par Serviware et risque d'être écrasé lors de la maintenance) ............................................................/master/scripts/XXinstall (XX: numéro de séquence car les scripts s'exécutent par ordre alphabétique); ces scripts s'exécutent lors de l'installation de la machine ou lors de la commande sctExecute (voir ci-dessous) ....../Serviware - ici, on trouve les produits commerciaux et autres, le script qui va avec est dans /root/sct/default/firstBoot/master/30aplInstall; ce script est exécuté à l'installation du master /Serviware ....../Isos - images des CD système, produits,.... ....../Addon - produits : sct, dsh, compilateurs,.... extensions (généralement open source), pour chaque produit on a besoin aussi du script d'installation dans "customers" ....../Tests/dakota.sh, .job : exemple de job dakota sur 6 procs avec MPI /apl/soft - monté sur tous les noeuds

Fichier nodelist

 * ** version sct ** || ** Ip sur réseau interne ** || ** inutilisé ** || ** adresse MAC de l’interface ETH0 ** || ** indexe ** || ** inutilisé ** || ** nom de la machine ** || ** Type de machine ** || ** Baseboard management card ** || ** rôle ** ||
 * 1.4.2-1rc5 || 192.168.60.1 || scsi || 00:30:48:c3:67:24 || 1 || . || matrics001 || X7DWT || 192.168.2.1 || . ||
 * 1.4.2-1rc5 || 192.168.60.2 || scsi || 00:30:48:c3:69:0c || 2 || . || matrics002 || X7DWT || 192.168.2.2 || . ||
 * 1.4.2-1rc5 || 192.168.60.3 || scsi || 00:30:48:c3:6a:26 || 3 || . || matrics003 || X7DWT || 192.168.2.3 || . ||
 * 1.4.2-1rc5 || 192.168.60.4 || scsi || 00:30:48:c3:6a:24 || 4 || . || matrics004 || X7DWT || 192.168.2.4 || . ||
 * 1.4.2-1rc5 || 192.168.60.5 || scsi || 00:30:48:c3:39:50 || 5 || . || matrics005 || X7DWT || 192.168.2.5 || . ||
 * 1.4.2-1rc5 || 192.168.60.6 || scsi || 00:30:48:c3:39:aa || 6 || . || matrics006 || X7DWT || 192.168.2.6 || . ||
 * 1.4.2-1rc5 || 192.168.60.7 || scsi || 00:30:48:c3:6c:d2 || 7 || . || matrics007 || X7DWT || 192.168.2.7 || . ||
 * 1.4.2-1rc5 || 192.168.60.8 || scsi || 00:30:48:c3:69:66 || 8 || . || matrics008 || X7DWT || 192.168.2.8 || . ||
 * 1.4.2-1rc5 || 192.168.60.9 || scsi || 00:30:48:c3:69:42 || 9 || . || matrics009 || X7DWT || 192.168.2.9 || . ||
 * 1.4.2-1rc5 || 192.168.60.10 || scsi || 00:30:48:c3:6c:d8 || 10 || . || matrics010 || X7DWT || 192.168.2.10 || . ||
 * 1.4.2-1rc5 || 192.168.60.11 || scsi || 00:30:48:c3:69:16 || 11 || . || matrics011 || X7DWT || 192.168.2.11 || . ||
 * 1.4.2-1rc5 || 192.168.60.12 || scsi || 00:30:48:c3:69:18 || 12 || . || matrics012 || X7DWT || 192.168.2.12 || . ||
 * 1.4.2-1rc5 || 192.168.60.13 || scsi || 00:30:48:c3:69:40 || 13 || . || matrics013 || X7DWT || 192.168.2.13 || . ||
 * 1.4.2-1rc5 || 192.168.60.14 || scsi || 00:30:48:c3:67:60 || 14 || . || matrics014 || X7DWT || 192.168.2.14 || . ||
 * 1.4.2-1rc5 || 192.168.60.15 || scsi || 00:30:48:c3:39:b0 || 15 || . || matrics015 || X7DWT || 192.168.2.15 || . ||
 * 1.4.2-1rc5 || 192.168.60.16 || scsi || 00:30:48:c3:39:ac || 16 || . || matrics016 || X7DWT || 192.168.2.16 || . ||
 * 1.4.2-1rc5 || 192.168.60.17 || scsi || 00:30:48:c3:69:64 || 17 || . || sinus || X7DWT || 192.168.2.17 || . ||
 * 1.4.2-1rc5 || 192.168.60.18 || scsi || 00:30:48:c3:69:3e || 18 || . || cosinus || X7DWT || 192.168.2.18 || doubleboot ||
 * 1.4.2-1rc5 || 192.168.60.251 || scsi || 00:30:48:c2:05:30 || 251 || . || matrics || X7DWN+ || 192.168.2.251 || master ||
 * 1.4.2-1rc5 || 192.168.60.252 || scsi || 00:21:85:6a:43:0c || 252 || . || diler || nsr440 || 192.168.2.252 || master ||
 * 1.4.2-1rc5 || 192.168.60.253 || scsi || 00:21:85:6a:43:0c || 253 || . || scalar || itanium || 192.168.2.253 || master ||

La colonne "Type de machine" résulte de la commande linux "dmidecode", cette donnée perme de flasher le BIOS à distance si le constructeur le permet, ce qui n'est pas le cas de nos noeuds (cartes Supermicro).

La colonne bmc donne l'accès à la carte qui est connectée en dérivation d'eth0 et qui est toujours active (à condition que la machine soit alimentée); cette carte permet de rallumer un noeud à distance.

La colonne "rôle" spécifie le statud de la machine dans le cluster : "." pour un noeud, sion "master" ou "doubleboot"

Remarque : Le fichier /root/sct/customers/UTC/nodelist contient entre autres les adresses MAC, à modifier lors de changement d'une carte réseau

Réseaux
192.168.60. - réseau eth0 interne 192.168.2. - réseau BMC 193.55.117. - réseau UTC

La syntaxe pour donner la liste de noeuds "-n matrics001", "-n matrics001, matrics007", "-n matrics001-matrics004" La syntaxe "-a" - tout le monde à éviter, car dangereuse !

**#sctClustInstall -n matrics001**
Installer les noeuds, rend la main à la fin de l'installation on peut faire "qhost" (commande sge) pour vérifier le statu des noeuds

**#sctRebootNode**
faire clignoter le lumière d'identification (si existe), tester si noeud est alimenté

-n : query power state

exemple : sctRebootNode -n matrics001-matrics010

-off : power off (comme appuyer physiquement sur le bouton d'alimentation) -on : power on (comme appuyer physiquement sur le bouton d'alimentation)

exemple :

[root@matrics ~]# sctRebootNode -n matrics010 192.168.2.10:Chassis Power is on [root@matrics ~]# sctRebootNode -n matrics010 -off 192.168.2.10:Chassis Power Control: Down/Off [root@matrics ~]# sctRebootNode -n matrics010 -on 192.168.2.10:Chassis Power Control: Up/On [root@matrics ~]#

Remarque : pour tester l'état d'alimentation un noeud on n'a pas besoin d'accès root.

voir le statut des noeuds :
 * qhost**
 * #qhost ||  ||   ||   ||   ||   ||   ||   ||
 * HOSTNAME || ARCH || NCPU || LOAD || MEMTOT || MEMUSE || SWAPTO || SWAPUS ||
 * global || - || - || - || - || - || - || - ||
 * cosinus || lx24-amd64 || 8 || 0.00 || 31.4G || 109.9M || 8.0G || 0.0 ||
 * matrics || lx24-amd64 || 8 || 0.01 || 7.8G || 591.7M || 12.0G || 168.0K ||
 * matrics002 || lx24-amd64 || 8 || 0.00 || 15.7G || 331.3M || 16.0G || 0.0 ||
 * matrics003 || lx24-amd64 || 8 || 0.00 || 13.7G || 118.5M || 16.0G || 0.0 ||
 * matrics004 || lx24-amd64 || 8 || 0.00 || 15.7G || 118.1M || 16.0G || 0.0 ||
 * matrics007 || lx24-amd64 || 8 || 0.00 || 15.7G || 83.2M || 16.0G || 0.0 ||
 * matrics008 || lx24-amd64 || 8 || 0.00 || 15.7G || 83.3M || 16.0G || 0.0 ||
 * matrics010 || lx24-amd64 || 8 || 0.00 || 15.7G || 82.9M || 16.0G || 0.0 ||
 * matrics012 || lx24-amd64 || 8 || 0.00 || 15.7G || 83.0M || 16.0G || 0.0 ||
 * matrics013 || lx24-amd64 || 8 || 0.00 || 15.7G || 83.9M || 16.0G || 0.0 ||
 * matrics014 || lx24-amd64 || 8 || 0.00 || 15.7G || 82.8M || 16.0G || 0.0 ||
 * matrics015 || lx24-amd64 || 8 || 0.00 || 15.7G || 85.1M || 16.0G || 0.0 ||
 * matrics016 || lx24-amd64 || 8 || - || 15.7G || - || 16.0G || - ||

#sctDoNodes
synchroniser les noeuds (permet aussi d'exécuter des commandes sur les noeuds, mais il vaut mieux utiliser dsh); cette commande permet de propager aisement les nouveaux utilisateurs et tout autre fichier qu'on souhaite faire copier sur les noeuds On synchronise les noeuds pour : copier les fichiers group, shadow, hosts, passwd et toute autre arborescence spécifiée dans :

/acerdlc/projects/UTC/2008/SyncSource/default - pour les noeuds de calcul ("." dans la colonne "rôle" de la nodelist) /acerdlc/projects/UTC/2008/SyncSource/master - pour les postes maîtres ("." dans la colonne "rôle" de la nodelist) /acerdlc/projects/UTC/2008/SyncSource/doubleboot - pour les machines à double boot (voir nodelist)

au lieu de compier le fichier dans ces répertoires, on crée uniquement un lien symbolique, sctDoNodes copiera le fichier lié

on utilise uniquement l'option "-sync"

exemple :
 * 1) cd /acerdlc/projects/UTC/2008/SyncSource/default
 * 2) mkdir -p x/y/z
 * 3) touch x/y/z/a
 * 4) sctDoNodes -sync -n matrics002

#sctExecute
exécuter un script dans le contexte d'installation

sctExecute -n machine(s) -s script

exemple

sctExecute -n matrics002 -s /root/sct/default/scripts/01inventory

sct va monter /tmp/kickstart/... sur les machines sélectionnées, va décompresser les images là-dedans, recopier les Addons et le script d'installation

Preinstall/ Postinstall/ - directory script pendant install Firstboot/ au premier reboot, par ex. pour changer de noyau