Gestion des données

De MaGridWiki
Aller à : Navigation, rechercher

Il est souvent nécessaire de stocker des données sur les éléments de stockage de la grille, par exemple lorsque les résultats d'un calcul sont trop volumineux pour être inclus dans le OutputSandbox (il est généralement considéré que les fichiers transférés par les Sandbox ne doivent pas excéder quelques ko), ou parce qu'on souhaite analyser sur la grille de gros volumes de données. Les fichiers placés sur la grille se trouvent physiquement sur les éléments de stockage (SE) ouverts à votre VO. Les fichiers sont référencés dans un catalogue qui vous permet d'accéder à vos fichiers sans savoir nécessairement sur quel SE ils se trouvent.

Pour manipuler les fichiers, le plus simple est d'utiliser leur "logical file name" (lfn).

Vous devez définir la variable d'environnement LFC_HOST qui indique le nom du serveur gérant l'annuaire.

Vous pouvez par exemple ajouter la ligne suiavante à votre fichier .bashrc si vous utilisez bash:

[ui2 ~]$ export LFC_HOST=lfc.magrid.ma


Le répertoire de base de votre VO a pour nom logique /grid/NomDeLaVO/. Dans ce tutoriel la VO est supposée magrid.


Sommaire

Création d'un répertoire : lfc-mkdir

Vous pouvez créer un répertoire à votre nom dans ce répertoire. Pour créer par exemple le répertoire tutoriel dans le répertoire /grid/magrid/, vous devez utiliser la commande

[ui2 ~]$ lfc-mkdir -p /grid/magrid/tutoriel


Afficher le contenu d'un répertoire : lfc-ls

Pour afficher le contenu d'un répertoire, vous devez utiliser la commande

[ui2 ~]$ lfc-ls /grid/magrid/tutoriel

Vous pouvez définir un répertoire "home" sur la grille en définissant la variable d'environnement LFC_HOME.

Si LFC_HOME a pour valeur /grid/magrid/tutoriel alors vous pouvez afficher le contenu de ce répertoire LFC_HOME en tapant simplement

[ui2 ~]$ export LFC_HOME=/grid/magrid/tutoriel [ui2 ~]$ lfc-ls

Copier un fichier sur la Grille : lcg-cr

Pour transférer le fichier Test.txt fichier qui se trouve sur l'UI vers la grille, vous devez utiliser la commande suivante

[ui2 ~]$ lcg-cr --vo magrid -l lfn:/grid/magrid/tutoriel/Test-grid.txt file:Test.txt guid:1ef8915f-d1b8-4d84-9f7d-d7ab19589c1a

Avec cette commande, je demande d'envoyer le fichier local Test.txt vers un SE que je ne précise pas, en demandant d'enregistrer le fichier dans le catalogue logique sous le chemin complet /grid/magrid/tutoriel/Test-grid.txt, en utilisant la VO magrid. Comme aucun SE n'a été précisé, le SE utilisé est le SE par défaut de la VO. Ce SE par défaut est défini par la variable d'environnement VO_MAGRID_DEFAULT_SE pour la VO magrid sur l'UI et qui est dans notre cas se2.cnrst.magrid.ma.

Obtenir le SE sur lequel un fichier se trouve : lcg-lr

Pour savoir sur quel SE votre fichier a été copié, vous pouvez utiliser la commande

[ui2 ~]$ lcg-lr lfn:/grid/magrid/tutoriel/Test-grid.txt srm://se2.cnrst.magrid.ma/dpm/cnrst.magrid.ma/home/magrid/generated/2011-10-29/file230545e2-5ef4-4d81-8ba7-c01b3fc7888b

Ceci vous permet de voir l'emplacement "physique" réel de votre fichier, en l'occurrence sur le SE de MaGrid.

Vous pouvez maintenant lister de nouveau le contenu du répertoire /grid/magrid/tutoriel

[ui2 ~]$ lfc-ls /grid/magrid/tutoriel Test-grid.txt

Ou bien, si vous avez défini ce répertoire comme LFC_HOME

[ui2 ~]$ lfc-ls Test-grid.txt

Vous pouvez créer une réplique de votre fichier sur un autre SE. Ceci peut être utile pour avoir accès à vos données même en cas de problème matériel sur un SE ou bien pour avoir des instances de vos données "proches" physiquement de plusieurs éléments de calcul, ce qui minimisera le temps de transfert pour copier une donnée du SE vers le CE sur lequel elle sera analysée par exemple.

Création d'une réplique d'un fichier : lcg-rep

Il peut être pratique de disposer de répliques d'un même fichier sur différents éléments de la Grille. Par exemple, on peut imaginer que l'exécutable à faire tourner se trouve sur un SE de la Grille. Au moment de l'exécution des runs, disposer de l'exécutable sur plusieurs SE permet de palier au problème d'un SE temporairement inaccessible.

Pour créer une réplique du fichier Test-grid.txt vers le SE appelé se1.cnrst.magrid.ma, vous devez utiliser la commande

[ui2 ~]$ lcg-rep --vo magrid -d se1.cnrst.magrid.ma lfn:Test-grid.txt

Notez que si votre nom de fichier logique commence par un '/', cela signifie que vous donnez son chemin absolu - vous devez donc obligatoirement donner un nom commençant par /grid/magrid/ pour vous placer dans le répertoire de la VO magrid - alors que si votre nom de fichier ne commence pas par un '/', cela signifie que vous donnez un chemin relatif à partir de votre répertoire LFC_HOME. Si vous regardez de nouveau la liste des SE sur lesquels votre fichier se trouve, vous voyez maintenant

[ui2 ~]$ lcg-lr lfn:/grid/magrid/tutoriel/Test-grid.txt srm://se1.cnrst.magrid.ma/dpm/cnrst.magrid.ma/home/magrid/generated/2011-10-29/file2b9bab06-ea24-4eaf-9de1-c0576301d381 srm://se2.cnrst.magrid.ma/dpm/cnrst.magrid.ma/home/magrid/generated/2011-10-29/file230545e2-5ef4-4d81-8ba7-c01b3fc7888b

Destruction d'un fichier et de toutes les répliques d'un fichier : lcg-del

Pour détruire une copie de votre fichier, par exemple celle se trouvant sur le SE se1.cnrst.magrid.ma, vous devez utiliser la commande

[ui2 ~]$ lcg-del --vo magrid -s se1.cnrst.magrid.ma lfn:/grid/magrid/tutoriel/Test-grid.txt

Vous pouvez également détruire toutes les copies de votre fichier avec l'option -a

[ui2 ~]$ lcg-del --vo magrid -a lfn:/grid/magrid/tutoriel/Test-grid.txt

Récupération d'un fichier sur la Grille vers l'UI : lcg-cp

Enfin vous pouvez copier un fichier depuis la grille (Test-grid.txt) vers l'UI (Test-cp.txt) avec la commande

[ui2 ~]$ lcg-cp --vo magrid lfn:Test-grid.txt file:Test-cp.txt
Navigation
Administrateur
Utilisateur
Applications
Autorité de Certification