Présentation Générale Pierre Lombard BRGM - Juillet 2007 Mise à jour : :30
2 Contenu ComputeMode : environnement Linux OAR : Gestionnaire de tâches Présentation rapide Intégration avec CM CIGRI : Gestionnaire de campagne Présentation rapide Intégration avec CM Footprint COMPUTEMODE OAR CIGRI FOOTPRINT
3
4 CM : Buts Fournir un cluster Linux d'appoint pour gérer les pics de charge Récupérer les cycles CPU des machines inutilisées dans un intranet Projet IGGI : Projet Footprint : 2006+
5 CM : Moyens Déploiement temporaire d'un Linux de "calcul" sur postes "Windows" Utilisation d'un Linux dédié pour le calcul calcul Reboot & boot diskless (PXE) Utilisation de virtualisation
6 CM : Intérêts Environnement Linux HPC homogène (soft) Légèreté : Ajout de client rapide Pas de déploiement Administration centralisée Réutilisation de protocoles standards Cloisonnement : Utilisation courante : Windows (ou autre) Calcul : Linux
7 CM : Limitations Modèle clusters légers => classe d'applis Réseau : non dédié (100Mb/s a 1Gb/s) Bande passante : contention Latence : non garantie => E/S limitées Interruptions possibles par les utilisateurs : => grain à adapter (< 1h) / checkpointing CPU plus lent et moins de RAM... à relativiser
8 CM : Schéma de principe Serveur ComputeMode Machines du réseau Windows Soumission de travaux (OAR, CIGRI) Cluster dédié Utilisateur "cluster" Administrateur Utilisateurs
9 CM : ComputeMode = ? ComputeMode : intégration de plusieurs logiciels SGBD (Postgres) et front-ends Interface web admin & utilisateurs Interface "raw" (maintenance & monitoring) Images Linux de boot réseau (initrd) Image d'OS Serveur TFTPD avec mode CGI Configuration DHCP (ISC DHCPD), PXE (pxelinux / syslinux), DNS (ISC Bind 9.x),...
10 CM : Fonctionnement normal Machine éteinte Wake-on-LAN BIOS essaie de booter avec PXE BIOS demande pxelinux (TFTP) pxelinux demande configuration (TFTP) Serveur CM génère fichier à la volée L'utilisateur allume sa machine Démarrage sur le disque local Démarrage réseau en ComputeMode Enregistrement dans OAR Machine disponible pour l'utilisateur Machine disponible pour les calculs
11 CM pour un utilisateur Machine éteinte : Reçoit paquet W-o-L Réveil avec boot PXE Rejoint mode calcul À la fin de la période, reboot local, extinction,... Possibilité d'utiliser d'autres méthodes pour faire le reboot : virtualisation, screensavers, etc.
12 CM pour un utilisateur Cluster Peut se logger sur le Serveur ComputeMode (SSH) ~ frontal de cluster ne "voit" pas les machines normales possibilité de se logger sur les machines enregistrées environnement Linux homogène standard home NFS Utilisation d'un gestionnaire de jobs
13 CM pour un administrateur SGBD Postgre s CM-TFTPD front-end web (admins / utilisateurs) back-end web (scripts) DHCP / PXE Boot Mode CM NFSD (+NIS) Serveur ComputeMode Machine d'un utilisateur 5'5'
14 CM : Ajout d'une machine... 1 / 2 Ajout d'une machine dans la base CM adresse MAC, réglages de propriétés (W-o-L) Choix d'un emploi du temps (schedule) via le frontal web : OS = f(t)
15 CM : Ajout d'une machine... 2 / 2 Exemple : schedule 'Soir et week-end'
16 CM : Interface web (WebAdmin) Liste de machines Par adresse MAC Wake-On-Lan activé ou non Gestions de labels (personnalisables) sur les machines: exemple: ING07, BUR07,... 2 labels système: Quarantine Unconfigured
17 CM : WebAdmin : Quarantaine Label système 'Quarantine' But : permettre à l'utilisateur de faire sortir sa machine du cluster définitivement Une machine avec ce label, n'est plus considérée pour les réveils et bootera toujours en local.
18 CM : WebAdmin : Unconfigured Label système 'Unconfigured' Lorsqu'une machine boote en PXE, elle est automatiquement ajoutée dans la liste des machines. Elle duplique la configuration de la machine avec l'adresse MAC ' ' (default) Label retiré lorsque la configuration de la machine est éditée
19 CM : Sur le réseau 1 / 2 Utilisation de réseaux disjoints : BRGM : privé classe A = /8 CM : privé classe B = /16 Par défaut, pas de routage depuis et vers le réseau BRGM Serveur DHCP CM écoute sur le réseau et ne répond qu'aux requêtes estampillées "PXE" Si l'adresse MAC n'est pas connue, la machine est ajoutée dans la base avec un profil par défaut Utilisation d'une option DHCP (bit "CM") pour ne pas interférer avec le trafic DHCP normal
20 CM : Sur le réseau 2 / 2 Utilisation d'un domaine DNS disjoint géré par le serveur CM : BRGM : cltNNNN.brgm.fr CM : cltNNNN.computemode.local (voire : u_.computemode.local dans certains cas)
21 CM : Monitoring Réseau (MRTG) Utilisation réseau Configuration : /etc/mrtg.cfg
22 CM : Monitoring CPU du Serveur Lit régulièrement /proc/cpuinfo Tracé par GNUplot
23 COMPUTEMODE OAR CIGRI FOOTPRINT
24 OAR : Principes serveur OAR cluster oarsub Gestionnaire de jobs (PBS, LSF,...) Système d'allocation de ressources, planification d'exécution de tâches
25 OAR : Principes Une ressource = 1 machine (OAR1) Notion plus évoluée de ressource dans OAR2 (CPU/mémoire/core/...) OAR est non "coercitif" (coopératif) : OAR n'interdit pas de se logger sur des noeuds alloués à un autre utilisateur Note : si besoin, cela doit être fait par des scripts séparés
26 OAR : Historique Gestionnaire de jobs, avec un SGBD, ouvert & extensible (licence GPL) Version 1 : : 1.6.X Utilise MySQL, sudo, OpenSSH, noyau en perl, utilise SUDO Version 2 : Ré-écriture car limitations (architectures NUMA avec cpuset, polices de scheduling, etc) Support Postgres ajouté, perl + Ruby Utilisé dans le projet Grid5000
27 OAR : Fonctionnalités Jobs en mode batch "Je soumets et je m'en vais, les jobs passeront quand ils pourront." Ex : un calcul à faire pour le lendemain Jobs interactifs "Je soumets et je reste devant mon clavier." Plutôt pour tester / débugger une appli sur l'architecture
28 OAR : Spécificités Pas de démon OAR sur les noeuds de calcul Gestion de scripts : prologue : avant le lancement du script utilisateur épilogue : après le lancement du script utilisateur Gestion de 'walltime' : Durée maximale au bout de laquelle un job est tué Supporte l'apparition et la disparition de noeuds pendant l'exécution
29 OAR : Quelques commandes... Pages man 1 pour ces commandes Soumettre un job : oarsub Ex : obtenir 1 noeud interactif : oarsub -I soumettre un job : $ cat > helloworld.sh <<EOF | création #! /bin/sh | d'un echo "Hello world" | script EOF | test $chmod +x helloworld.sh | $oarsub helloworld.sh IdJob= Résultats dans : OAR.helloworld.sh {stderr,stdout}
30 Annuler un job : oardel oardel : supprime le job Voir l'état d'un job : oarstat oarstat : liste les jobs en cours par défaut Voir l'état des noeuds : oarnodes oarnodes : propriétés et état des noeuds oarnodes -l : tous les noeuds connus
31 OAR : Monitoring Commandes natives (ligne de commande) : oarstat oarnodes Monika (web) : Visualisation rapide de l'état des noeuds d'un cluster (en marche, libre, éteint, occupés) GANTT (web) : Visualisation des tâches
32 OAR : Monitoring : Monika CGI en PERL Supporte autres jobs managers
33 OAR : Monitoring : GANTT Uniquement OAR Écrit en PERL
34 Liens entre &
35 CM+OAR : Liens 1/2 OAR 1.6.x livré avec l'installation de CM OAR appelle une page CM pour enregistrer les machines Quelques propriétés OAR mises automatiquement au boot d'une machine NBCPU : nombres de CPU CPU : vitesse RAM : quantité de mémoire Propriétés OAR affichées dans propriétés des noeus (lecture seulement)
36 CM+OAR : Liens 2/2 Labels CM / propriétés OAR Export des labels vers OAR Principe légèrement différents mais correspondance "Le noeud N a le label test" "Le noeud N a la propriété 'CM_test' à 1" Possibilité de désynchronisation des labels / propriétés si les modifications ne sont pas faites depuis l'interface CM-WebAdmin
37 COMPUTEMODE OAR CIGRI FOOTPRINT
38 CIGRI : ? CIGRI ? projet CIMENT Calcul Intensif Modélisation Expérimentations Numériques et Technologiques calcul à Grenoble – depuis 1998 – INRIA/IMAG/LIG grille : ~750 CPU's hétérogènes sur ~10 clusters (dont 1 cluster ComputeMode de 100 CPU ComputeMode à l'UFRIMA) Gestionnaire de jobs paramétriques 1 même application beaucoup de paramètres différents en entrée
39 CIGRI : Principe Image : LIG
40 CIGRI : Grille "Légère" Limiter les problèmes liés aux grilles Règles d'administration communes Pas d'entité malveillante : SSH suffisant Plus léger que GLOBUS Campagne: nombreux (> ) petits jobs Jobs indépendants (non communicants)
41 CIGRI : En Pratique... 1 / 2 Serveur CIGRI = Linux + logiciels Partie back-end : SGBD SQL (MySQL) perl : coeur de CIGRI (demons) Ruby (langage de script) pour certaines parties client SSH (OpenSSH), sudo Partie front-end : web utilisateurs & administrateurs (PHP+SMARTY) ligne de commande (perl)
42 CIGRI : En Pratique... 2 / 2 L'utilisateur doit : Installer son application sur chaque cluster Écrire un fichier de configuration décrivant : Les paramètres d'entrée à utiliser L'application à exécuter CIGRI se charge alors de : Soumettre les tâches aux différents clusters Re-soumettre les tâches en erreurs
43 Footprint (du point de vue informatique) COMPUTEMODE OAR CIGRI FOOTPRINT
44 Footprint 2 applications à la base : MACRO : Dos 6.x (à la base mais portage Linux natif en cours) PRZM : Windows 3.x Calculs rapides (~15s) mais beaucoup de calculs : Mise en place d'environnements d'exécutions sur Linux (x86) Support d'un mode paramétrique Lancement comme campagne CIGRI
45 Chaîne de traitement cigri_launch.sh launch_przm.sh sns.pl igor.v ar igor.s ns foo.cigri ins.pl igor.ins instantiate_template.pl CIGRI OAR wine WINPRZM.EXE merge.pligor.out igor.tpl foo.metacigri cigri_to_metacigri. sh meta_cigri_launch.sh Juillet pl
46 Conclusion Plusieurs couches réseau & logicielles Actuellement, mode natif avec reboot PXE Modes "virtuels" (VMware player) Modes avec screensavers Plan des autres présentations : BD : MySQL, PG, CM, OAR, Cigri,... Système : boot PXE, images, correction des erreurs,...
47 Questions ?
48 Crédits / Contacts Les informations sur OAR et CIGRI viennent de présentations réalisées par : Bruno Bzeznik (LIG) – mainteneur actuel de OAR & CIGRI Nicolas Capit (LIG) – mainteneur précédent Plus d'informations :