Introduction
============
La `plateforme SCIGNE `_ propose un service de
calcul à haut débit (*high-throughput computing*, HTC) reposant sur des
technologies développées pour les grilles de calcul. Les échanges de données
entre les différents centres de calcul composants ces grilles sont réalisés
à l'aide de protocoles spécifiques (HTTP et XROOTD).
Ce document détaille l'utilisation de l'outil GFAL2 afin d'interagir avec
ces protocoles pour gérer vos données depuis votre station de travail,
la plateforme SCIGNE ou l'un des sites partenaires.
Les systèmes de stockage HTC
============================
Plusieurs systèmes de stockage (dCache, Storm, etc) sont utilisés
par les sites des grilles de calcul. Dans le but d'assurer
l'interopérabilité des systèmes entre eux, ils communiquent avec des
protocoles identiques.
La plateforme SCIGNE utilise le système dCache pour mettre à disposition
le stockage HTC. Bien que plusieurs protocoles soient disponibles
(HTTP, XROOTD), cette documentation se concentre sur
l'utilisation de HTTP.
Le système de stockage dCache est composé d'un serveur
de tête et d'un ensemble de serveurs de fichiers. Le serveur de tête
centralise les requêtes d'accès aux fichiers. Les serveurs de fichiers
stockent physiquement les fichiers. L'accès aux fichiers s'effectue en
interrogeant le serveur de tête à l'aide des commandes détaillées
dans ce document.
L'accès aux données est contrôlé par certificat. Il est donc nécessaire
de posséder un *proxy* valide lors de l'utilisation de ce type de
stockage.
Gestion des données avec dCache
===============================
Cette section détaille la gestion des données stockées sur un serveur
dCache.
Généralités
-----------
L'URL suivante est utilisée pour l'ensemble de cette section. Elle sera
abrégée en ``${BASE_URL}`` :
.. code-block:: console
$ export BASE_URL="https://sbgdcache.in2p3.fr/vo.scigne.fr"
Installation du client
----------------------
Actuellement, les paquets ne sont disponibles que pour la distribution RedHat
et ses dérivés. Les paquets sont disponibles dans le `dépôt EPEL `_.
Une fois ce dépôt disponible sur votre système, les outils ``gfal2`` et
peuvent être rapidement installés avec :
.. code-block:: console
$ dnf install gfal2-util gfal2-all
Lecture du contenu d'un répertoire
----------------------------------
La commande ``gfal-ls`` permet de lister le contenu d'un répertoire. Le
résultat de cette commande est similaire à celui de la commande ``ls``.
L'exemple ci-dessous illustre le fonctionnement de cette commande :
.. code-block:: console
$ gfal-ls ${BASE_URL}
EOST
IBMC
IBMP
ICS
ICUBE
IPHC
.. code-block:: console
$ gfal-ls -l ${BASE_URL}
drwxrwxrwx 0 0 0 0 Aug 22 07:42 EOST
drwxrwxrwx 0 0 0 0 Aug 22 07:42 IBMC
drwxrwxrwx 0 0 0 0 Aug 22 07:42 IBMP
drwxrwxrwx 0 0 0 0 Aug 22 07:42 ICS
drwxrwxrwx 0 0 0 0 Aug 22 07:42 ICUBE
drwxrwxrwx 0 0 0 0 Aug 22 07:43 IPHC
Le contenu de ce répertoire évoluant dans le temps, le résultat affiché
par les commandes précédentes diffère des exemples ci-dessus.
Création d'un répertoire
------------------------
La commande ``gfal-mkdir`` permet de créer un répertoire :
.. code-block:: console
$ gfal-mkdir ${BASE_URL}/lab/user/data
Notez que la valeur */lab/user/data* est donnée à titre d'exemple et doit
être adaptée à votre cas d'usage. Par convention :
* **lab** est l'acronyme du laboratoire en majuscule
* **user** est la concaténation de la première lettre du prénom et du nom
de famille.
Copie d'un fichier
------------------
La commande ``gfal-copy`` permet de copier des données depuis ou vers le
serveur dCache :
.. code-block:: console
$ gfal-copy file://${PWD}/my_dataset.tgz ${BASE_URL}/lab/user/data/my_dataset.tgz
Copying file://${PWD}/my_dataset.tgz [DONE] after 2s
Suppression d'un fichier
------------------------
La commande ``gfal-rm`` permet de supprimer un fichier sur le serveur
dCache :
.. code-block:: console
$ gfal-rm ${BASE_URL}/lab/user/data/my_dataset.tar.gz
https://sbgdcache.in2p3.fr/vo.scigne.fr/lab/user/my_dataset.tgz DELETED
Suppression d'un répertoire
---------------------------
La commande ``gfal-rm -r`` permet de supprimer un répertoire (et son
contenu) :
.. code-block:: console
$ gfal-rm -r ${BASE_URL}/lab/user/data
Documentation complémentaire
============================
Ces liens proposent des références complémentaires pour approfondir la
gestion des données sur la plateforme SCIGNE :
- `documentation sur les commandes gfal2 `_
;
- `documentation sur dCache `_ ;