Projet

Général

Profil

Utiliser la solution

Droit d'accès

Tout utilisateur du Mésocentre a accès à l'instance iRODS.
Cependant, il est indispensable de créer un mot de passe spécifique pour accéder à iRODS: Modifier-ou-créer-son-mot-de-passe-iRODS

Pour les nouveaux utilisateurs, il suffit de s'inscrire (via la procédure d'inscription du mésocentre): Cluster Curta Comptes_Utilisateurs

Les paramètres de connexion

Documentation officielle iRODS: https://docs.irods.org/master/system_overview/configuration/#irodsirods_environmentjson
La commande iinit permet de configurer automatiquement l’environnement utilisateur et demande les informations minimales ci-dessous.

Soit dans le fichier ~/.irods/irods_environment.json ou via une interface graphique, il faut renseigner au minimum les informations suivantes:

  • irods_host = icat1.mcia.fr # Le serveur central (catalogue) de la solution iRODS
  • irods_port = 1234 # Port réseau (TCP) de la solution (1247 par défaut)
  • irods_user_name = <login> # Nom d'utilisateur (identique à Curta)
  • irods_zone_name = MCIA # Zone iRODS à utiliser ("MCIA")

On peut également définir d'autre paramètres mais ceux par défaut conviennent tout à fait.

Le mot de passe sera stocké brouillé dans ~/.irods/.irodsA par iinit ou, à défaut, demandé à chaque commande.

Exemple de fichier de configuration finale:

$ cat ~/.irods/irods_environment.json
{
    "irods_host": "icat1.mcia.fr",
    "irods_port": 1247,
    "irods_user_name": "<login>",
    "irods_zone_name": "MCIA",
    "irods_client_server_negotiation": "request_server_negotiation", 
    "irods_encryption_algorithm": "AES-256-CBC", 
    "irods_encryption_key_size": 32, 
    "irods_encryption_num_hash_rounds": 16, 
    "irods_encryption_salt_size": 8, 
    "irods_ssl_verify_server" : "host" 
}

Clients

Un client est indispensable pour accéder à iRODS.
Vous pouver utiliser un client déjà installé par exemple sur Curta, ou utiliser un client listé (non exhaustif) ici: https://irods.org/clients/

Ligne de commande (irods-icommands)

Note importante : dans certains contextes, il arrive que les iCommandes (iget,iput,irsync, ...) fassent des erreurs bizarres et ne fonctionnent pas. Dans ce cas, il faut ajouter l'option '-N 0' (ex: iget -N 0 monFichier ) pour désactiver le traitement parallèle, ce qui en pratique ne semble pas nuire aux performances. Nous investiguons pour essayer de régler ce problème.

C'est le client que nous privilégions.
L'interface en ligne de commande est constituée des iCommands: https://docs.irods.org/master/icommands/user/.
On retrouve les commandes de base:

iinit   # Configuration de son environnement

ils     # lister le contenu d'un répertoire

iput    # Copier un fichier sur iRODS
iget    # Récupérer un fichier depuis iRODS

imkdir  # créer un répertoire
icd     # changer le répertoire courant
ipwd    # afficher le chemin courant
imv     # déplacer
icp     # copier
irm     # supprimmer
irsync  # synchronisé
[..]

On peut lire quelques commentaires en français pour leur utilisation sur la page wiki du MCIA dédiée: ICommands

Installation

Téléchargez les paquets officiels pour CentOS/Ubuntu ou les sources via: https://irods.org/download/
Ou reportez vous à la page wiki dédié: Installation_ICommands

Depuis le cluster de calcul du MCIA Curta

Les iCommands sont directement accessibles en chargeant le module correspondant:

module load irods/mcia2

Initialisez ensuite simplement votre environnement:

iinit

Client graphique Brocoli

Une application graphique développée rien que pour vous! https://github.com/mesocentre-mcia/brocoli
Installation sous Linux avec droits d'administrateur:

pip install brocoli

Sans droits administrateur:

pip install brocoli --user

La configuration et l'utilisation sont décrites ici: https://github.com/mesocentre-mcia/brocoli

La configuration pour se connecter à l'instance iRODS du MCIA devrait ressembler à ceci:
Brocoli MCIA Connection Dialog

python-irodsclient

iRODS dispose d'une API Python. Site web: https://github.com/irods/python-irodsclient
Pour l'installer:

pip install python-irodsclient

Vous pouvez ajouter l'option "--user" pour une installation personnelle ou bien "--target=<path>" pour installer dans un répertoire précis.

Conseils

En particulier au moment des transferts, iRods fonctionne beaucoup mieux avec "un petit nombre de gros fichiers" plutôt qu'avec une myriades de petits fichiers.
Si vous avez beaucoup de petits fichiers, il est donc recommandé de créer des archives (avec tar, zip, ...) et de transférer ces archives sur iRods.
Dans le cas de très gros répertoires (plusieurs centaines de giga), générer une seule énorme archive peut être extrêmement long à générer et être "fragile" dans le sens où la moindre corruption dans le fichier peut invalider l'ensemble de cette archive.
Si vous avez un mélange de petits et de gros fichiers, et que l'ensemble est très gros, vous pouvez utiliser l'outil https://plmlab.math.cnrs.fr/laurent.facq/tar-chunker

Exemple d'utilisation : tar-chunker -s 10G mon_repertoire -- -z
va créer autant de fichiers d'archive tar indépendants que nécessaires, de 10Go maximum (sauf si des fichiers sont plus gros). Dans cet exemple, les archives sont compressées (l'option "-z" est passée à la commande tar sous-jacente). Par défaut, jusqu'à 2 processus tar peuvent travailler en parallèle (à ajuster en fonction de la puissance de la machine utilisée).