= Système d'Information = [[TracNav]] [[TOC(inline)]] Dans la grille EGEE/LCG, il existe deux systèmes pour trouver les états deservices. Le principal s'appelle le BDII et est basé sur LDAP. Il sert à décrire les ressources disponibles dans la grille et leur état. L'autre système s'appelle R-GMA (Relational GridMonitoring Architecture). R-GMA est basé sur une base de donnée distribuée. Il est principalement utilisé pour le monitoring des jobs et pour l'accounting. == BDII (LDAP) == Le BDII est basé sur la technologie LDAP qui permet une organisation hiérarchique de l'information. L'information doit adhérer à un ''schema''. Le schéma des informations utilisé par le BDII s'appelle "GLUE". Pour plus de détail, voir la définition du [http://forge.ogf.org/sf/projects/glue-wg GLUE Schema]. === La Commande lcg-infosites === gLite fournit la commande `lcg-infosites` pour interroger le BDII. Elle cache la complexité de la syntaxe de la `ldapsearch`. Le but principal de la commande `lcg-infosites` est d'identifier les ressources disponibles pour une VO particulière. Pour cela on utilise l'option `--vo voname`. Le principal paramètre de cette commande est le type de ressource cherchée : `ce`, `se`, `wms`, `lfc`... Utiliser l'option `--help` pour obtenir la liste de tous les types de service. ''Note: l'utilisation de la commande `lcg-infosites` ne nécessite pas d'avoir un proxy.'' __Exercices__ : 1. Identifier la liste de tous les ''computing elements'' (CE) accessibles à la VO vo.lal.in2p3.fr. 1. Identifier la liste de tous les ''storage elements'' (SE) accessibles à la VO vo.lal.in2p3.fr. 1. Identifier la liste de tous les WMS (type `wms`) accessibles à la VO vo.lal.in2p3.fr. 1. Identifier la liste de tous les serveurs LFC accessibles à la VO vo.lal.in2p3.fr. === Usage Direct de LDAP === L'utilisation directe de `ldapsearch` permet des sélections plus complexes ou d'obtenir la valeur de certains attributs particulier. Cela peut être utile pour des besoins particuliers mais l'utilisation de `lcg-infosites` doit être préférée chaque fois que c'est possible. Voir `man ldapsearch` pour un détail de toutes les options et de la syntaxe des requêtes. ''Note: la commande `ldapsearch` est totalement indépendante de la grille et ne nécessite d'avoir un proxy.'' Pour LDAP, chaque entrée possède un identifiant (dn) et une liste d'attributs avec leurs valeurs. La commande `ldapsearch` retourne le DN et les attributs indiqués pour tous les objects sélectionnés par la requête. Par défaut, elle retourne tous les attributs de tous les objets. Le filtre de la requête et la liste des attributs à retourner sont spécifiés par les paramètres après les options : * filtre : doit être une chaine de caractère entre `''` et comportant au moins un signe égal. S'il est présent, il doit être spécifié avant la liste des attributs. Il est possible de construire des requêtes très complexes, Voir `man ldapsearch` et les exemples pour plus d'information. * liste des attributs à retourner : le nom de tous les attributs à retourner séparer par un espace. Dans LDAP, le nom des attributs est '''non''' case sensitive, de même que les recherches sur les chaines de caractères. __Excercices__ (facultatif) : 1. Allez sur le site web [http://goc.grid.sinica.edu.tw/gstat/ GStat] et visualisez les différentes informations présentées pour chaque site. Sélectionnez un site (GRIF) puis regardez dans la section "Site Information". 1. Dans la page sélectionnée dans [http://goc.grid.sinica.edu.tw/gstat/ GStat] cliquez sur "ldap" (dans la section "Information System Monitoring and Validation") et visualisez les différentes informations. 1. En utilisant la commande '''ldapsearch''', interrogez le site BDII de GRIF, `bdii.grif.fr`. {{{ ldapsearch -x -h bdii.grif.fr -p 2170 -b mds-vo-name=GRIF,o=grid }}} 1. Interrogez le top-level BDII `topbdii.grif.fr` de manière à afficher la liste des CE répertoriés, ainsi que les Storage Elements (SEs) associés : {{{ ldapsearch -x -h topbdii.grif.fr -p 2170 -b mds-vo-name=local,o=grid 'objectclass=GlueCESEBind' GlueCESEBindCEUniqueID GlueCESEBindSEUniqueID }}} 1. Listez les CE répertoriés dans le BDII précédent et exécutant la version gLite 3.1. L'attribut `GlueHostApplicationSoftwareRunTimeEnvironment` est utilisé pour trouver les sites équipés avec les logiciels spécifiques. Dans les pages GStat, combien de ''tags'' différents peut-on trouver ? {{{ ldapsearch -x -h topbdii.grif.fr -p 2170 -b 'mds-vo-name=local,o=grid' \ '(&(objectclass=GlueSubCluster)(GlueHostApplicationSoftwareRunTimeEnvironment=GLITE-3_1*))' \ GlueChunkKey }}} 1. Listez ensuite les SE supportant la VO "dteam". Refaites la commande pour la VO vo.lal.in2p3.fr. {{{ ldapsearch -x -h topbdii.grif.fr -p 2170 -b 'mds-vo-name=local,o=grid' \ '(&(objectclass=GlueSATop)(GlueSAAccessControlBaseRule=*dteam))' \ GlueChunkKey GlueSAAccessControlBaseRule }}} 1. Recherchez toutes les VO acceptées par le RB du site. {{{ ldapsearch -x -h bdii.grif.fr -p 2170 \ -b 'GlueServiceUniqueID=node04.datagrid.cea.fr:7772,mds-vo-name=GRIF-IRFU,mds-vo-name=GRIF,o=grid' \ 'objectclass=GlueService' GlueServiceOwner }}} 1. Recherchez les tags logiciels présents sur les CEs du site GRIF {{{ ldapsearch -x -h bdii.grif.fr -p 2170 \ -b 'mds-vo-name=GRIF, o=grid' \ objectclass=GlueSubCluster GlueHostApplicationSoftwareRunTimeEnvironment }}} === lcg-info === The "lcg-info" command is similar to the "lcg-infosites" except that it is used to list either CE's or SEs satisfying a given set of conditions on their attributes and to print, for each of them, the values of a given set of attributes. 1. The first step is to view the list of attributes available for both the matching and printing aspects of ‘lcg-info’ : {{{ lcg-info --list-attrs }}} 1. "lcg-info" is very similar to the usage of the "Requirements" tag in a JDL file along with the command "glite-job-list-match". The "lcg-info" command can therefore be useful when constructing the "Requirements" tag in a JDL file. Note that "lcg-info" does not in most (but not all) cases need a VO to be specified. {{{ lcg-info --vo vo.llr.in2p3.fr --list-ce --query 'Tag=MPICH' --attrs 'FreeCPUs,Tag' }}} 1. "lcg-info" can also query the attributes of CE's and searches for the closest CE to the SE "polgrid4.in2p3.fr". {{{ lcg-info --list-se --query 'SE=polgrid4.in2p3.fr' --attrs CloseCE }}} __Exercice__ : Rechercher la WallTime et le CpuTime Maximal pour les CEs de votre VO {{{ lcg-info --vo vo.dapnia.cea.fr --list-ce --query 'CEVOs=VO:vo.dapnia.cea.fr' --attrs 'MaxCPUTime,MaxWCTime' }}} == R-GMA (Relational Grid Monitoring Architecture) [NPF] == R-GMA est [ObsoleteRgma obsolète]. Les informations disponibles dans R-GMA sont accessibles via un browser web et aussi via des lignes de commande. Les informations ne sont cependant pas complètes, mais l'outil est intéressant pour voir les types d'informations dans le schéma. === Browser R-GMA === Une page web permet de chercher les informations dans R-GMA.Utilisez un navigateur pour visualiser [https://mon.grif.fr:8443/R-GMA/ cette page]. * La liste sur l'extrême gauche contient les requêtes prédéfinies. Pour voir les services publiés dans le système d'informations, cliquez sur le lien"GlueServices" (extrême gauche). Puis cliquez sur le bouton "Query". La liste inclut les services R-GMA et quelques autres types de services. Si rien ne s'affiche, ressayez avec un "timeout" plus grand, par exemple * secondes. * Pour voir les CEs dans le système d'information, cliquez sur "TableSets" (extrême gauche) puis sur "GlueCE". Dans la liste "SELECT" on peutvoir les champs de la table GlueCE. Par défaut, tous les champs sont sélectionnés. Cliquez sur le bouton "Query" pour visualiser les informations. Encore on peut-être doit utiliser un "timeout" plus grand. === R-GMA : la ligne des commandes === La ligne de commande offre la même fonctionnalité. Tapez la commande `rgma` (pour sortir taper `quit`). Cette commande démarre une console R-GMA qui permet d'interroger le système. La syntaxe pour les requêtes est très proche du SQL. __Exercices__ (facultatif) : * On peut visualiser l'aide avec la commande `help` et des exemples avec `help examples`. {{{ show tables }}} * Pour voir toutes les tables d'informations tapez : {{{ describe }}} * Pour visualiser les informations sur une table, donnez son nom en paramètre. Par exemple : {{{ describe GlueService }}} * Pour afficher la liste des services, utiliser la commande suivante. On peut aussi sélectionner un site particulier : {{{ select * from GlueService select * from GlueService where GlueSite_UniqueId="GRIF" }}} * Pour voir les informations dans la table "GlueCE", utilisez une commande similaire. On peut aussi indiquer des critères de sélection, comme précédemment. Par exemple : {{{ select * from GlueCE select UniqueId,FreeCpus from GlueCE where FreeCpus > * }}}