Changes between Version 13 and Version 14 of Tutorial/DataMgt


Ignore:
Timestamp:
May 15, 2008, 6:27:20 PM (16 years ago)
Author:
jouvin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Tutorial/DataMgt

    v13 v14  
    55
    66== Gestion des Données ==
    7 Les services qui permettent la gestion des fichiers sont le “replicacatalog” (ou “file catalog”) et le “storage element” (SE). Le “replica catalog” est une base de données qui contient l'association entre un identifiant et les locations des fichiers dans lagrille.  Le SE fourni l'espace pour stocker les fichiers.
     7
     8Les services qui permettent la gestion des fichiers sont ''file catalog'' (LFC) et le ''storage element'' (SE). Le ''file catalog'' est une base de données qui contient l'association entre un identifiant et les locations des fichiers dans lagrille.  Le SE fourni l'espace pour stocker les fichiers.
    89
    910=== Utilisation du Replica Manager ===
    10 Il existe au moins trois versions différentes du “replica catalog” : le “EDGReplica Catalog”, le “FireMan Catalog”, et le “LHC File Catalog” (LFC). La version du “replica catalog” peut être différente pour chaque VO”. Le “EDGReplication Catalog” et le “FireMan Catalog” sont périmés; la plupart des VOs utilise le LFC.
    11 Les commandes ''' lcg-*''' marchent pour le EDG Replica Catalog et LFC.  Le FireMan Catalog utilise d'autres commandes mais fonctionnent comme les commandes '''lcg-*'''.
    12  1. Si votre VO utilise le LFC (comme vo.lal.in2p3.fr), il est nécessaire de définir la variable d'environnement LCG_CATALOG_TYPE”. La VO vo.lal.in2p3.fr utilise le LFC”.
    13   * ''' {{{setenv LCG_CATALOG_TYPE lfc}}} ''' pour le shell csh
    14   * ''' {{{export LCG_CATALOG_TYPE=lfc}}} ''' pour le shell sh.
    15  1. Les commandes client ne trouvent pas automatiquement le serveur LFC pour votre VO. Pour la VO vo.lal.in2p3.fr, il est nécessaire de définir la variable d'environnement LFC_HOST”.
    16    * ''' {{{setenv LFC_HOST grid14.lal.in2p3.fr}}} ''' pour le shell csh ou
    17    * ''' {{{export LFC_HOST=grid14.lal.in2p3.fr}}} ''' pour le shell sh.
     11
     12Le service ''file catalog'' (ou ''replica catalog'') dans EGEE utilise le LFC. Il existe quelques commandes spécifiques au LFC qui commencent par `lfc-`. Elles ne sont généralement pas utilisées directement mais via les commandes qui permettent de manipuler et gérer les fichiers sur la grille, notamment les commandes appelées ''lcg_utils'' qui commencent par `lcg-`. Comme les commandes de soumissions de job, les commandes `lcg-` utilisent la VO du proxy de l'utilisateur par défaut.
     13
     14''Note : lorsqu'on souhaite utiliser les commandes `lfc-`, il est nécessaire de définir la variable d'environnement `LFC_HOST` avec le nom du serveur LFC à utiliser. Les commandes `lcg-` au contraire localisent directement le serveur approprié pour la VO de l'utilisateur. Dans ce cas, la variable `LFC_HOST` permet de forcer l'utilisation d'un autre serveur LFC que le serveur par défaut de la VO.''
     15
     16__Exercices__ :
    1817 1. Visualisez les informations concernant les ressources  disponibles pour la VO vo.lal.in2p3.fr.
    19   * ''' {{{lcg-infosites --vo vo.lal.in2p3.fr all}}} '''    Combien de “storage elements” sont disponibles pour la VO vo.lal.in2p3.fr? On peut voir plus de ressources pour la VO dteam. Combien de SEs sont disponibles pour la VO dteam?
    20  1. Créez un fichier texte, et copiez-le sur un SE à l'aide de  la commande '''lcg-cr'''.
    21   * ''' {{{lcg-cr -d grid05.lal.in2p3.fr --vo vo.lal.in2p3.fr   file:`pwd`/toto.txt   -l lfn:/grid/vo.lal.in2p3.fr/myname-toto.txt}}} ''' Remplacez “myname” par votre nom. L'option “-l” (la lettre) donne un nom logique à ce fichier.  Pour la VO vo.lal.in2p3.fr, ce nom doit être dans le format: “lfn:/grid/vo.lal.in2p3.fr/...”.De ce fait, les commandes '''lcg-*''' ne comprendront pas encore les proxies VOMS et la VO doit aussi être spécifiée. Si l'option “-d” n'est pas spécifiée, la commande va utiliser le SE défini dans l'environnement. Utilisez '''printenv''' pour rechercher une variable contenant “LAL”. Lorsque la commande se passe bien, un GUID est retourné (Globally UniqueIDentifier) pour le fichier. Ce GUID peut être utilisé pour manipuler le fichier.
    22  1. Vérifiez que le fichier copié est bien présent à l'aide  de la commande '''lcg-lr'''.
    23   * ''' {{{lcg-lr --vo vo.lal.in2p3.fr <GUID>}}} '''   Si cela se passe bien, la commande affiche un URL avec un protocole “sfn”. On peut également remplacer le GUID par le nom logique (ou SURL).
    24   * ''' {{{lcg-lr --vo vo.lal.in2p3.fr lfn:/grid/vo.lal.in2p3.fr/myname-toto.txt}}} ''' Le même URL qu'avant doit s'afficher.
    25  1. On peut utiliser la commande '''lcg-lg''' pour trouver le GUID  pour un nom logique ou SURL. Regardez l'usage de cette commande  et vérifiez que le GUID est correct pour votre nom logique.
    26  1. Choisissez un SE dans la liste des SE disponibles, et faites  une copie de votre fichier sur ce SE à l'aide de la commande  '''lcg-rep'''. Vérifiez que le fichier a bien été  dupliqué avec la commande '''lcg-lr'''.
    27   * ''' {{{lcg-lr --vo vo.lal.in2p3.fr <GUID>|<LFN>|<SURL>}}} '''
    28  1. Récupérez localement le fichier ou son replica à l'aide de  la commande '''lcg-cp'''.
    29   * ''' {{{ lcg-cp --vo vo.lal.in2p3.fr <GUID>|<LFN>|<SURL> file:`pwd`/copie.txt}}} '''    Vérifiez que la copie.txt et le fichier original sont identiques.
    30  1. Supprimez ensuite le replica de ce fichier à l'aide de la commande '''lcg-del'''.
    31   * ''' {{{lcg-del --vo vo.lal.in2p3.fr <SURL>}}} '''    Vérifiez avec la commande '''lcg-lr''' que ce replica n'existe plus. Ajoutez l'option “-a” pour supprimer le fichier de tous les SE. L'entrée correspondante au GUID alors dans le RC (Replica Catalog)est détruite.  Cette fonctionnalité n'existera plus dans les sorties futures. ''Ne le faites pas maintenant.''
     18  * `lcg-infosites --vo vo.lal.in2p3.fr all` : combien de “storage elements” sont disponibles pour la VO vo.lal.in2p3.fr? On peut voir plus de ressources pour la VO dteam. Combien de SEs sont disponibles pour la VO dteam?
     19 1. Créez un fichier texte, et copiez-le sur un SE à l'aide de  la commande `lcg-cr`.
     20  * `lcg-cr -d grid05.lal.in2p3.fr   file:`pwd`/toto.txt   -l lfn:/grid/vo.lal.in2p3.fr/myname-toto.txt` Remplacez “myname” par votre nom. L'option “-l” (la lettre) donne un nom logique à ce fichier.  Pour la VO vo.lal.in2p3.fr, ce nom doit être dans le format: “lfn:/grid/vo.lal.in2p3.fr/...”. De ce fait, les commandes `lcg-*` ne comprendront pas encore les proxies VOMS et la VO doit aussi être spécifiée. Si l'option “-d” n'est pas spécifiée, la commande va utiliser le SE défini dans l'environnement. Utilisez `printenv` pour rechercher une variable contenant “LAL”. Lorsque la commande se passe bien, un GUID est retourné (Globally UniqueIDentifier) pour le fichier. Ce GUID peut être utilisé pour manipuler le fichier.
     21 1. Vérifiez que le fichier copié est bien présent à l'aide  de la commande `lcg-lr`.
     22  * `lcg-lr  <GUID>`   Si cela se passe bien, la commande affiche un URL avec un protocole “sfn”. On peut également remplacer le GUID par le nom logique (ou SURL).
     23  * `lcg-lr  lfn:/grid/vo.lal.in2p3.fr/myname-toto.txt` Le même URL qu'avant doit s'afficher.
     24 1. On peut utiliser la commande `lcg-lg` pour trouver le GUID  pour un nom logique ou SURL. Regardez l'usage de cette commande  et vérifiez que le GUID est correct pour votre nom logique.
     25 1. Choisissez un SE dans la liste des SE disponibles, et faites  une copie de votre fichier sur ce SE à l'aide de la commande  `lcg-rep`. Vérifiez que le fichier a bien été  dupliqué avec la commande `lcg-lr`.
     26  * `lcg-lr <GUID>|<LFN>|<SURL>`
     27 1. Récupérez localement le fichier ou son replica à l'aide de  la commande `lcg-cp`.
     28  * ` lcg-cp  <GUID>|<LFN>|<SURL> file:`pwd`/copie.txt`    Vérifiez que la copie.txt et le fichier original sont identiques.
     29 1. Supprimez ensuite le replica de ce fichier à l'aide de la commande `lcg-del`.
     30  * `lcg-del  <SURL>`    Vérifiez avec la commande `lcg-lr` que ce replica n'existe plus. Ajoutez l'option “-a” pour supprimer le fichier de tous les SE. L'entrée correspondante au GUID alors dans le RC (Replica Catalog)est détruite.  Cette fonctionnalité n'existera plus dans les sorties futures. ''Ne le faites pas maintenant.''
    3231
    3332=== Regarder les informations dans le LFC ===
     33
    3434Les commandes client ne trouvent pas automatiquement le serveur LFC pour votre VO. Pour la VO vo.lal.in2p3.fr, il est nécessaire de définir la variable d'environnement LFC_HOST”.
    35    * ''' {{{setenv LFC_HOST grid14.lal.in2p3.fr}}} ''' pour le shell csh ou
    36    * ''' {{{export LFC_HOST=grid14.lal.in2p3.fr}}} ''' pour le shell sh.
     35   * csh : `setenv LFC_HOST grid14.lal.in2p3.fr` pour le shell csh ou
     36   * sh/bash : `export LFC_HOST=grid14.lal.in2p3.fr` pour le shell sh.
    3737Normalement on ne change pas le contenu de ce catalogue manuellement. Si on supprime une entrée dans le catalogue, on peut laisser des fichiers qui seront introuvables dans la grille. Cependant, il peut être intéressant d'y regarder de temps en temps directement les informations et de créer des nouveaux répertoires.
    3838 1. Pour trouver les fichiers dans  '' /grid/vo.lal.in2p3.fr'', faites :
    39    * ''' {{{lfc-ls -l /grid/vo.lal.in2p3.fr}}} '''   On peut voir les permissions, la taille, la date de modification, et le nom avec l'option “-l”.   Vous allez trouver votre fichier dans la liste.
     39   * `lfc-ls -l /grid/vo.lal.in2p3.fr`   On peut voir les permissions, la taille, la date de modification, et le nom avec l'option “-l”.   Vous allez trouver votre fichier dans la liste.
    4040 1. Le LFC supporte les “Access Control Lists” (ACL). Pour  regarder l'ACL pour un fichier ou un répertoire :
    41    * ''' {{{lfc-getacl /grid/vo.lal.in2p3.fr}}} ''' A chaque répertoire correspond deux ACLs : l'ACL pour le répertoire et une ACL par défaut. L'ACL par défaut est appliqué aux nouveaux fichiers du répertoire. Normalement les commandes '''lcg-*''' mettent les bonnes permissions dans les fichiers et répertoires. Le LFC utilise les ACLs mais malheureusement cette fonctionnalité n'est pas très utilisable car l'accès est toujours lié au compte unix. On ne peut donc pas encore utiliser les ACLs pour contrôler finement l'accès aux fichiers.
    42  1. On peut créer un nouvelle arborescence avec '''lfc-mkdir'''. On doit alors vérifier que le nouveau répertoire possède les bons droits.  Créez un  nouveau répertoire et copiez-y un fichier. Ensuite utilisez '''lcg-del''' avec l'option “-a” et '''lfc-rm''' pour nettoyer le LFC.
     41   * `lfc-getacl /grid/vo.lal.in2p3.fr` A chaque répertoire correspond deux ACLs : l'ACL pour le répertoire et une ACL par défaut. L'ACL par défaut est appliqué aux nouveaux fichiers du répertoire. Normalement les commandes `lcg-*` mettent les bonnes permissions dans les fichiers et répertoires. Le LFC utilise les ACLs mais malheureusement cette fonctionnalité n'est pas très utilisable car l'accès est toujours lié au compte unix. On ne peut donc pas encore utiliser les ACLs pour contrôler finement l'accès aux fichiers.
     42 1. On peut créer un nouvelle arborescence avec `lfc-mkdir`. On doit alors vérifier que le nouveau répertoire possède les bons droits.  Créez un  nouveau répertoire et copiez-y un fichier. Ensuite utilisez `lcg-del` avec l'option “-a” et `lfc-rm` pour nettoyer le LFC.
    4343
    4444=== Accéder depuis un job à des données stockées ===
    4545 1. Regardez les fichiers ''InputData.jdl'' et ''InputData.sh''. Dans ''InputData.jdl'' il y a deux  nouvelles lignes qui permettent d'ordonnancer les jobs près des  fichiers de données :
    46   * '''{{{DataAccessProtocol ={ "gsiftp","rfio"};InputData = "lfn:<LFN>";}}} '''  Les protocoles sont les moyens par lesquels votre exécutable peut télécharger ce fichier. Tous les SEs supportent le protocole gsiftp. Les autres ne sont pas obligatoires.
     46  * `{{{DataAccessProtocol ={ "gsiftp","rfio"};InputData = "lfn:<LFN>";`  Les protocoles sont les moyens par lesquels votre exécutable peut télécharger ce fichier. Tous les SEs supportent le protocole gsiftp. Les autres ne sont pas obligatoires.
    4747 1. Modifiez le fichier ''InputData.jdl''. Mettez le nom logique  de votre fichier.
    4848 1. Affichez la liste des sites sur lesquels le job peut être  soumis. Pourquoi est-elle si réduite?