Accessing CVMFS/fr: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
(Updating to match new version of source page)
No edit summary
Tag: Manual revert
 
(163 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Category:CVMFS]]
<languages />
<languages />


= Introduction =
= Introduction =
Les répertoires de logiciels et de données offerts par Calcul Canada sont accessibles via [https://cernvm.cern.ch/portal/filesystem CVMFS] (''CERN Virtual Machine File System''). Puisque CVMFS est préconfiguré pour vous, vous pouvez utiliser ses répertoires directement.  Pour plus d’information sur l’environnement logiciel de Calcul Canada, consultez les pages wiki [[Available software/fr|Logiciels disponibles]], [[Utiliser des modules]], [[Python/fr|Python]], [[R/fr|R]] et [[Installing software in your home directory/fr|Installation de logiciels dans votre répertoire /home]].
Les répertoires de logiciels et de données que nous offrons sont accessibles via le [[CVMFS/fr|CVMFS (''CERN Virtual Machine File System'')]]. Puisque CVMFS est préconfiguré pour vous, vous pouvez utiliser ses répertoires directement.  Pour plus d’information sur notre environnement logiciel, consultez les pages wiki [[Available software/fr|Logiciels disponibles]], [[Utiliser des modules]], [[Python/fr|Python]], [[R/fr|R]] et [[Installing software in your home directory/fr|Installation de logiciels dans votre répertoire /home]].


Nous décrivons ici comment installer et configurer CVMFS sur ''votre propre ordinateur ou grappe''; vous aurez ainsi accès aux mêmes répertoires et environnements logiciels que ceux des systèmes de Calcul Canada.
Nous décrivons ici comment installer et configurer CVMFS sur <i>votre propre ordinateur ou grappe</i>; vous aurez ainsi accès aux mêmes répertoires et environnements logiciels que ceux de nos systèmes.
Les membres du personnel de Calcul Canada peuvent consulter la [https://wiki.computecanada.ca/staff/CVMFS_client_setup documentation interne].


Nous utilisons comme exemple [https://ssl.linklings.net/conferences/pearc/pearc19_program/views/includes/files/pap139s3-file1.pdf l'environnement logiciel présenté à la conférence PEARC 2019], ''Practices and Experience in Advanced Research Computing''.
Nous utilisons comme exemple [https://ssl.linklings.net/conferences/pearc/pearc19_program/views/includes/files/pap139s3-file1.pdf l'environnement logiciel présenté à la conférence PEARC 2019], <i>Practices and Experience in Advanced Research Computing</i>.


= Avant de commencer =
= Avant de commencer =
{{Note|Si vous êtes membre de nos équipes techniques, lisez  [https://wiki.computecanada.ca/staff/CVMFS_client_setup ce document interne].|reminder}}
{{Panel
{{Panel
   |title=Important
   |title=Important
   |panelstyle=callout
   |panelstyle=callout
   |content=
   |content=
'''Veuillez vous abonner au [[Accessing_CVMFS/fr#S'abonner_au_service_d'annonces|service d'annonces]] et remplir ce [https://docs.google.com/forms/d/1eDJEeaMgooVoc4lTkxcZ9y65iR8hl4qeXMOEU9slEck/viewform formulaire d'enregistrement] (en anglais). Si vous utilisez notre environnement logiciel dans votre recherche, veuillez reconnaître la contribution de Calcul Canada selon [https://www.computecanada.ca/page-daccueil-du-portail-de-recherche/acces-aux-ressources/reconnaissance-de-calcul-canada/?lang=fr ces directives].'''
<b>Veuillez vous abonner au [[Accessing_CVMFS/fr#S'abonner_au_service_d'annonces|service d'annonces]] et remplir ce [https://docs.google.com/forms/d/1eDJEeaMgooVoc4lTkxcZ9y65iR8hl4qeXMOEU9slEck/viewform formulaire d'enregistrement] (en anglais). Si vous utilisez notre environnement logiciel dans votre recherche, veuillez reconnaître notre contribution selon [https://alliancecan.ca/fr/services/calcul-informatique-de-pointe/reconnaissance-de-lalliance ces directives].</b>


Nous vous remercions de mentionner aussi [https://ssl.linklings.net/conferences/pearc/pearc19_program/views/includes/files/pap139s3-file1.pdf notre présentation].  
Nous vous remercions de mentionner aussi [https://ssl.linklings.net/conferences/pearc/pearc19_program/views/includes/files/pap139s3-file1.pdf notre présentation].  
}}
}}
== S'abonner au service d'annonces ==
== S'abonner au service d'annonces ==
Des modifications peuvent être apportées au CVMFS ou aux logiciels et autre contenu des répertoires fournis par Calcul Canada; ces modifications ''touchent les utilisateurs ou nécessitent l’intervention de l’administrateur'' pour assurer la continuité du service.
Des modifications peuvent être apportées au CVMFS ou aux logiciels et autre contenu des répertoires que nous fournissions; ces modifications <i>touchent les utilisateurs ou nécessitent l’intervention de l’administrateur</i> pour assurer la continuité du service.


Abonnez-vous à la liste de diffusion <tt>cvmfs-announce@calculcanada.ca</tt> afin de recevoir les annonces importantes occasionnelles. Vous pouvez vous abonner avec un [https://groups.google.com/a/computecanada.ca/forum/#!forum/cvmfs-announce compte Google] ou en écrivant à [mailto:cvmfs-announce+subscribe@computecanada.ca cvmfs-announce+subscribe@calculcanada.ca] et en répondant au courriel de confirmation.
Abonnez-vous à la liste de diffusion cvmfs-announce@gw.alliancecan.ca afin de recevoir les annonces importantes occasionnelles. Vous pouvez vous abonner en écrivant à [mailto:cvmfs-announce+subscribe@gw.alliancecan.ca cvmfs-announce+subscribe@gw.alliancecan.ca] et en répondant au courriel de confirmation qui vous sera envoyé.
Les membres de nos équipes techniques peuvent aussi  [https://groups.google.com/u/0/a/gw.alliancecan.ca/g/cvmfs-announce/s'abonner ici].


== Conditions d’utilisation et soutien technique ==
== Conditions d’utilisation et soutien technique ==
Le logiciel client CVMFS est fourni par le CERN. Calcul Canada fournit ses répertoires CVMFS '''sans aucune forme de garantie'''. Votre accès aux répertoires et à l’environnement logiciel peut être limité ou bloqué si vous contrevenez aux [https://www.computecanada.ca/page-daccueil-du-portail-de-recherche/securite-de-linformation/conditions-dutilisation/?lang=fr conditions d’utilisation] (par exemple et sans s’y limiter, aux articles 3.5 ou 3.11) ou à la discrétion de Calcul Canada.
Le logiciel client CVMFS est fourni par le CERN. Nos répertoires CVMFS sont offerts <b>sans aucune forme de garantie</b>. Votre accès aux répertoires et à l’environnement logiciel peut être limité ou bloqué si vous contrevenez aux [https://ccdb.alliancecan.ca/agreements/user_aup_2021/user_display conditions d’utilisation], ou à notre discrétion.


== Exigences techniques ==
== Exigences techniques ==
=== Pour un seul système ===
=== Pour un seul système ===
Pour installer CVMFS sur un ordinateur personnel, les exigences sont :
Pour installer CVMFS sur un ordinateur personnel, les exigences sont :
* un système d’exploitation compatible (voir la section [[Accessing_CVMFS/fr#Installation|Installation]]);
* un système d’exploitation compatible (voir [[Accessing_CVMFS/fr#Exigences_de_base|Exigences de base]] ci-dessous);
* le [https://en.wikipedia.org/wiki/Filesystem_in_Userspace logiciel libre FUSE];
* le [https://en.wikipedia.org/wiki/Filesystem_in_Userspace logiciel libre FUSE];
* environ 50Go d’espace de stockage local pour la cache; une cache plus ou moins grande peut convenir, selon les circonstances. Pour une utilisation restreinte sur un ordinateur personnel, de 5 à 10Go peuvent suffire. Pour plus d'information, voyez le [https://cvmfs.readthedocs.io/en/stable/cpt-configure.html#sct-cache paragraphe ''Cache Settings''].
* environ 50Go d’espace de stockage local pour la cache; une cache plus ou moins grande peut convenir, selon les circonstances. Pour une utilisation restreinte sur un ordinateur personnel, de 5 à 10Go peuvent suffire. Pour plus d'information, voyez le [https://cvmfs.readthedocs.io/en/stable/cpt-configure.html#sct-cache paragraphe <i>Cache Settings</i>].
* l’accès HTTP vers l’internet,
* l’accès HTTP vers l’internet,
** ou l’accès HTTP vers un ou plusieurs serveurs proxies locaux.
** ou l’accès HTTP vers un ou plusieurs serveurs proxies locaux.


Si ces conditions ne sont pas respectées ou que vous avez d’autres restrictions, considérez ces [https://cvmfs.readthedocs.io/en/stable/cpt-hpc.html autres options].
Si ces conditions ne sont pas respectées ou que vous avez d’autres restrictions, considérez cette  [https://cvmfs.readthedocs.io/en/stable/cpt-hpc.html autre option].


=== Pour plusieurs systèmes ===
=== Pour plusieurs systèmes ===
Pour déployer plusieurs clients CVMFS, par exemple avec une grappe, dans un laboratoire, sur un campus ou autre, chacun des systèmes doit satisfaire les exigences particulières énoncées ci-dessus. Tenez compte en plus des points suivants :
Pour déployer plusieurs clients CVMFS, par exemple sur une grappe, dans un laboratoire, sur un campus ou autre, chacun des systèmes doit satisfaire les exigences particulières énoncées ci-dessus. Tenez compte en plus des points suivants&nbsp;:
* '''Pour votre site, vous devez déployer des serveurs proxies HTTP avec cache externe (''forward caching'')''', comme [http://www.squid-cache.org/ Squid].
* Pour améliorer la performance, nous vous recommandons de déployer sur votre site des serveurs proxies HTTP avec cache externe (<i>forward caching</i>), particulièrement si vous avez plusieurs clients (voir [https://cvmfs.readthedocs.io/en/stable/cpt-squid.html <i>Setting up a Local Squid Proxy</i>]).
** Le fait de ne disposer que d’un seul serveur proxy est un point individuel de défaillance. Règle générale, vous devriez disposer d’au moins deux serveurs proxies locaux et préférablement un ou plusieurs autres serveurs proxies supplémentaires à proximité pour prendre la relève en cas de problème.
** Le fait de ne disposer que d’un seul serveur proxy est un point individuel de défaillance. Règle générale, vous devriez disposer d’au moins deux serveurs proxies locaux et préférablement un ou plusieurs autres serveurs proxies supplémentaires à proximité pour prendre la relève en cas de problème.
* Nous recommandons de synchroniser l’identité du compte de service <code>cvmfs</code> de tous les nœuds clients avec LDAP ou autrement.
* Nous vous recommandons de synchroniser l’identité du compte de service <code>cvmfs</code> de tous les nœuds clients avec LDAP ou autrement.
** Ceci facilitera l’utilisation d’une [https://cvmfs.readthedocs.io/en/stable/cpt-configure.html#alien-cache cache externe] et devrait être fait avant que CVMFS ne soit installé. Même si l’utilisation d’une cache externe n’est pas prévue, il est plus facile de synchroniser les comptes dès le départ que d’essayer de les changer plus tard.
** Ceci facilitera l’utilisation d’une [https://cvmfs.readthedocs.io/en/stable/cpt-configure.html#alien-cache cache externe] et devrait être fait <b>avant que CVMFS ne soit installé</b>. Même si l’utilisation d’une cache externe n’est pas prévue, il est plus facile de synchroniser les comptes dès le départ que d’essayer de les changer plus tard.


== Exigences de l’environnement logiciel ==
== Exigences de l’environnement logiciel ==
=== Exigences de base ===
=== Exigences de base ===
*Système d’exploitation :
*Système d’exploitation :
** Linux : avec noyau (''kernel'') 2.6.32 ou plus,
** Linux : avec noyau (<i>kernel</i>) 2.6.32 ou plus pour les environnements 2016 et 2018; noyau 3.2 ou plus pour l'environnement 2020,
** Windows : avec la version 2 du sous-système Windows pour Linux (WSL) et une distribution Linux avec noyau (''kernel'') 2.6.32 ou plus,
** Windows : avec la version 2 du sous-système Windows pour Linux (WSL) et une distribution Linux avec noyau 2.6.32 ou plus,
** Mac OS : par instance virtuelle seulement;
** Mac OS : par instance virtuelle seulement;
* CPU : x86, pour jeux d’instructions SSE3, AVX, AVX2 ou AVX512.
* CPU : x86, pour jeux d’instructions SSE3, AVX, AVX2 ou AVX512.
Line 58: Line 62:
* Un minimum de paquets Linux, pour éviter les risques de conflits.
* Un minimum de paquets Linux, pour éviter les risques de conflits.


=Installation de CVMFS=
=Installer CVMFS=
Si vous voulez utiliser [https://docs.ansible.com/ansible/latest/index.html Ansible], il existe un [https://git.computecanada.ca/cc-cvmfs-public/ansible-cvmfs-client rôle client CVMFS]  
Si vous voulez utiliser [https://docs.ansible.com/ansible/latest/index.html Ansible], il existe un [https://github.com/cvmfs-contrib/ansible-cvmfs-client rôle client CVMFS]  
pour la configuration de base d’un client CVMFS avec un système RPM. Sinon, utilisez les directives ci-dessous.
pour la configuration de base d’un client CVMFS avec un système RPM.  
Des [https://github.com/ComputeCanada/CVMFS/tree/main/cvmfs-cloud-scripts scripts] sont disponibles pour installer facilement CVMFS sur une instance infonuagique.
Autrement, suivez les directives ci-dessous.


==Préinstallation==
==Préinstallation==
Nous recommandons que la cache locale CVMFS (située par défaut dans <code>/var/lib/cvmfs</code> et configurable avec le paramètre <code>CVMFS_CACHE_BASE</code>) soit localisée dans un système de fichiers dédié afin que le stockage ne soit pas partagé avec celui d’autres applications. Vous devriez donc avoir ce système de fichiers '''avant''' d’installer CVMFS.
Nous recommandons que la cache locale CVMFS (située par défaut dans <code>/var/lib/cvmfs</code> et configurable avec le paramètre <code>CVMFS_CACHE_BASE</code>) soit localisée dans un système de fichiers dédié afin que le stockage ne soit pas partagé avec celui d’autres applications. Vous devriez donc avoir ce système de fichiers <b>avant</b> d’installer CVMFS.
 
== Installation ==
 
<div class="mw-translate-fuzzy">
Pour les directives, sélectionnez l’onglet correspondant à votre système d’exploitation. Les directives ont été testées avec les distributions suivantes :
*CentOS 6, CentOS 7
*Fedora 29
*Debian 9
*Ubuntu 18.04
</div>
 
À l’installation de paquets, vous devrez peut-être accepter certaines clés. Assurez-vous que leurs empreintes correspondent aux valeurs suivantes :
* CernVM : <code>70B9 8904 8820 8E31 5ED4  5208 230D 389D 8AE4 5CE7</code>
* Calcul Canada, clé 1 : <code>C0C4 0F04 70A3 6AF2 7CC4  4D5A 3B9F C55A CF21 4CFC</code>
* Calcul Canada, clé 2 : <code>DDCD 3C84 ACDF 133F 4BEC  FBFA 49DE 2015 FF55 B476</code>
<tabs>
<tab name="RedHat/CentOS">
* Installez le répertoire YUM du CERN et la clé GPG.
{{Command|sudo yum install https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm}}
* Installez le répertoire YUM de Calcul Canada et les clés GPG.
{{Command|sudo yum install https://package.computecanada.ca/yum/cc-cvmfs-public/Packages/computecanada-release-latest.noarch.rpm}}
* Installez le client CVMFS et les paquets de configuration appropriés selon le répertoire YUM.
{{Command|sudo yum install cvmfs cvmfs-config-default cvmfs-config-computecanada cvmfs-auto-setup}}
</tab>
<tab name="Fedora">
* Installez le paquet de configuration par défaut.
{{Command|sudo dnf install https://ecsft.cern.ch/dist/cvmfs/cvmfs-config/cvmfs-config-default-latest.noarch.rpm}}
* Téléchargez le client CVMFS RPM pour votre système d’exploitation à partir de https://cernvm.cern.ch/portal/filesystem/downloads et installez-le avec <code>dnf</code> ou <code>yum</code>.
** Puisqu’il n’y a pas de répertoire yum pour Fedora, vous devrez vérifier périodiquement s’il existe une mise à jour du client CVMFS et de la configuration par défaut, et en faire l’installation manuellement.
* Effectuez la configuration initiale du client.
{{Command|sudo cvmfs_config setup}}
* Installez le répertoire YUM de Calcul Canada et les clés GPG.
{{Command|sudo dnf install https://package.computecanada.ca/yum/cc-cvmfs-public/Packages/computecanada-release-latest.noarch.rpm}}
* Installez la configuration CVMFS de Calcul Canada à partir de ce répertoire YUM.
{{Command|sudo dnf install cvmfs-config-computecanada}}
</tab>
<tab name="Debian/Ubuntu">
* Suivez [https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html#debian-ubuntu ces directives] pour installer le répertoire APT du CERN.
* Installez le client CVMFS à partir de ce répertoire.
{{Command|sudo apt-get install cvmfs cvmfs-config-default}}
* Effectuez la configuration initiale du client.
{{Command|sudo cvmfs_config setup}}
* Téléchargez et installez le paquet de configuration CVMFS de Calcul Canada.
{{Commands|wget https://package.computecanada.ca/yum/cc-cvmfs-public/OtherPackages/cvmfs-config-computecanada-latest.all.deb
|sudo dpkg -i cvmfs-config-computecanada-latest.all.deb}}
** Puisqu’il n’y a pas de répertoire APT pour ce paquet, assurez-vous de [[Accessing_CVMFS/fr#S'abonner_au_service_d'annonces|vous abonner]] pour recevoir les avis de mise à jour.
</tab>
<tab name="SLES/openSuSE">
Puisque ces systèmes d’exploitation sont basés sur RPM, les directives pour Fedora devraient fonctionner.
</tab>
<tab name="Windows">
* La version 2 du sous-système Windows pour Linux (WSL) est requise; en date de juillet 2019, il s’agit d’une version développeur. Suivez  [https://docs.microsoft.com/en-us/windows/wsl/wsl2-install ces directives pour l’installation].
* Installez ensuite la distribution Linux de votre choix et suivez les directives décrites sous l’onglet approprié. 
* Sous Ubuntu avec WSL2, <tt>/dev/fuse</tt> est disponible uniquement ! l'utilisateur <tt>root</tt>, ce qui fait que CVMFS ne fonctionne pas bien. Pour contrer ceci, exécutez
{{Command|chmod go+rw /dev/fuse}}
</tab>
</tabs>
 
Pour plus d’information, consultez le [https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html#getting-the-software guide de démarrage rapide].


== Configuration ==
== Installation et configuration ==


Aucun fichier de configuration CVMFS ne doit se terminer par <code>.conf</code>; pour éviter les collisions avec d’autres sources éventuelles de configuration, toutes les configurations locales doivent se trouver dans des fichiers se terminant par <code>.local</code>. Pour plus d’information, consultez [https://cvmfs.readthedocs.io/en/stable/cpt-configure.html#structure-of-etc-cvmfs Structure of /etc/cvmfs].  
Voir les directives pour l'installation dans [https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html#getting-the-software <i>Getting the Software</i>].


En particulier, créez le fichier  <code>/etc/cvmfs/default.local</code> avec la configuration minimale suivante :
Pour configurer un client, voir [https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html#setting-up-the-software <i>Setting up the Software</i>] et [http://cvmfs.readthedocs.io/en/stable/apx-parameters.html#client-parameters <i>Client parameters</i>].
CVMFS_REPOSITORIES="cvmfs-config.computecanada.ca,soft.computecanada.ca"
CVMFS_STRICT_MOUNT="yes"
CVMFS_QUOTA_LIMIT=44500
CVMFS_HTTP_PROXY="<define this parameter according to the information below>"


* <code>CVMFS_REPOSITORIES</code> est la liste des répertoires qui vous intéressent; les valeurs sont séparées par des virgules (format CSV);
Le répertoire <code>soft.computecanada.ca</code> est fourni  avec la configuration et vous pouvez ainsi y accéder; vous pouvez l'inclure dans votre configuration client <code>CVMFS_REPOSITORIES</code>.
* <code>CVMFS_QUOTA_LIMIT</code> est la quantité d’espace (en Mo) que CVMFS utilisera comme cache locale; cet espace devrait être environ 15% plus petit que la taille de la cache du système de fichier local;
* <code>CVMFS_HTTP_PROXY</code> est la liste des serveurs proxies à utiliser. Consultez la [https://cvmfs.readthedocs.io/en/stable/cpt-configure.html#proxy-lists documentation] sur ce paramètre avec sa syntaxe, des exemples, l’utilisation de groupes pour balancer la charge et les tourniquets DNS (''round-robin DNS'');
** Si vous travaillez seul et que vous installez CVMFS sur un seul ordinateur pour votre usage personnel, vous pouvez utiliser <code>CVMFS_HTTP_PROXY="DIRECT"</code>. Cependant, s’il y a un administrateur de système dans votre organisation, demandez-lui s’il existe des serveurs HTTP proxies disponibles que vous pouvez utiliser comme cache externe (''forward caching''), ce qui améliorerait la performance de votre client CVMFS;
** Si vous êtes un administrateur et que vous installez CVMFS sur plusieurs systèmes (par exemple une grappe, un laboratoire, un campus ou autre), les proxies que vous avez déployés [[Accessing_CVMFS/fr#Pour_plusieurs_systèmes|pour plusieurs systèmes]] doivent être spécifiés dans le paramètre <code>CVMFS_HTTP_PROXY</code>. Aussi, veillez à informer les utilisateurs de votre site ou de votre organisation qu’ils peuvent utiliser ces serveurs, le cas échéant.
 
Pour plus d’information sur la configuration d’un client, consultez le [https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html#setting-up-the-software guide de démarrage] et la [http://cvmfs.readthedocs.io/en/stable/apx-parameters.html#client-parameters  documentation sur les paramètres].


== Test ==
== Test ==


* Assurez-vous d'abord que les répertoires à tester se trouvent dans <code>CVMFS_REPOSITORIES</code>.
* Validez la configuration.
* Validez la configuration.
{{Command|sudo cvmfs_config chksetup}}
{{Command|sudo cvmfs_config chksetup}}
** Assurez-vous de régler les avertissements ou erreurs qui pourraient survenir.
* Assurez-vous de régler les avertissements ou erreurs qui pourraient survenir.
* Vérifiez les répertoires.
* Vérifiez les répertoires.
{{Command|cvmfs_config probe}}
{{Command|cvmfs_config probe}}


En cas de problème, ce [http://cernvm.cern.ch/portal/filesystem/debugmount guide de débogage] pourrait vous être utile.
En cas de problème, ce [https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html#troubleshooting guide de débogage] pourrait vous être utile.


= Activer notre environnement dans votre session =
= Activer notre environnement dans votre session =
Une fois que le répertoire CVMFS est monté, notre environnement est activé dans votre session en exécutant simplement
Une fois que le répertoire CVMFS est monté, notre environnement est activé dans votre session en utilisant le script <code>/cvmfs/soft.computecanada.ca/config/profile/bash.sh</code>. Celui-ci chargera des modules par défaut. Si vous désirez avoir les modules par défaut d'une grappe de calcul en particulier, définissez la variable <code>CC_CLUSTER</code> en choisissant l'une des valeurs suivantes <code>beluga</code>, <code>cedar</code> ou <code>graham</code>, avant d'utiliser le script. Par exemple:
{{Command|export CC_CLUSTER{{=}}beluga}}
{{Command|source /cvmfs/soft.computecanada.ca/config/profile/bash.sh}}
{{Command|source /cvmfs/soft.computecanada.ca/config/profile/bash.sh}}


Cette commande '''n’exécutera rien si votre identifiant d’utilisateur est sous 1000'''. Il s’agit d’une mesure de sécurité parce que vous ne devriez pas vous attendre à ce que notre environnement logiciel vous procure des privilèges de fonctionnement. Si vous voulez quand même activer notre environnement, vous pouvez d’abord définir la variable <tt>FORCE_CC_CVMFS=1</tt> avec la commande  
Cette commande <b>n’exécutera rien si votre identifiant d’utilisateur est sous 1000</b>. Il s’agit d’une mesure de sécurité parce que vous ne devriez pas vous attendre à ce que notre environnement logiciel vous procure des privilèges de fonctionnement. Si vous voulez quand même activer notre environnement, vous pouvez d’abord définir la variable <code>FORCE_CC_CVMFS=1</code> avec la commande  
{{Command|export FORCE_CC_CVMFS{{=}}1}}
{{Command|export FORCE_CC_CVMFS{{=}}1}}
ou, si vous voulez que notre environnement soit actif en permanence, vous pouvez créer le fichier <tt>$HOME/.force_cc_cvmfs</tt> dans votre répertoire <tt>/home</tt> avec
ou, si vous voulez que notre environnement soit actif en permanence, vous pouvez créer le fichier <code>$HOME/.force_cc_cvmfs</code> dans votre répertoire <code>/home</code> avec
{{Command|touch $HOME/.force_cc_cvmfs}}
{{Command|touch $HOME/.force_cc_cvmfs}}


Si vous voulez au contraire ne pas activer notre environnement, vous pouvez définir <tt>SKIP_CC_CVMFS=1</tt> ou créer le fichier <tt>$HOME/.skip_cc_cvmfs</tt> pour faire en sorte que notre environnement ne soit jamais activé dans cet environnement particulier.
Si vous voulez au contraire ne pas activer notre environnement, vous pouvez définir <code>SKIP_CC_CVMFS=1</code> ou créer le fichier <code>$HOME/.skip_cc_cvmfs</code> pour faire en sorte que notre environnement ne soit jamais activé dans cet environnement particulier.


==Personnaliser votre environnement==
==Personnaliser votre environnement==
Line 167: Line 106:


=== Variables d’environnement ===
=== Variables d’environnement ===
==== <tt>CC_CLUSTER</tt> ====
==== <code>CC_CLUSTER</code> ====
Cette variable identifie la grappe. This variable is used to identify a cluster. Elle achemine des renseignements au journal du système et définit le comportement à adopter selon la licence du logiciel. Sa valeur par défaut est <tt>computecanada</tt>. Vous pourriez définir sa valeur pour que les journaux soient identifiés par le nom de votre système.
Cette variable identifie la grappe. Elle achemine des renseignements au journal du système et définit le comportement à adopter selon la licence du logiciel. Sa valeur par défaut est <code>computecanada</code>. Vous pourriez définir sa valeur pour que les journaux soient identifiés par le nom de votre système.


==== <tt>RSNT_ARCH</tt> ====
==== <code>RSNT_ARCH</code> ====
Cette variable identifie le jeu d’instructions CPU pour le système. Par défaut, elle est détectée automatiquement selon <tt>/proc/cpuinfo</tt>. Vous pouvez cependant utiliser un autre jeu d’instructions en définissant la variable avant d’activer l’environnement. Les jeux possibles sont :
Cette variable identifie le jeu d’instructions CPU pour le système. Par défaut, elle est détectée automatiquement selon <code>/proc/cpuinfo</code>. Vous pouvez cependant utiliser un autre jeu d’instructions en définissant la variable avant d’activer l’environnement. Les jeux possibles sont :
* sse3
* sse3
* avx
* avx
Line 177: Line 116:
* avx512
* avx512


==== <tt>RSNT_INTERCONNECT</tt> ====
==== <code>RSNT_INTERCONNECT</code> ====
Cette variable identifie le type d’interconnexion réseau du système. Elle est détectée automatiquement selon la présence de  <tt>/sys/module/opa_vnic</tt> pour OmniPath ou de <tt>/sys/module/ib_core</tt> pour InfiniBand. La valeur de remplacement est <tt>ethernet</tt>. Les valeurs possibles sont :
Cette variable identifie le type d’interconnexion réseau du système. Elle est détectée automatiquement selon la présence de  <code>/sys/module/opa_vnic</code> pour OmniPath ou de <code>/sys/module/ib_core</code> pour InfiniBand. La valeur de remplacement est <code>ethernet</code>. Les valeurs possibles sont :
* omnipath
* omnipath
* infiniband
* infiniband
Line 185: Line 124:
La valeur de la variable déclenche des options différentes du protocole de transport pour OpenMPI.
La valeur de la variable déclenche des options différentes du protocole de transport pour OpenMPI.


==== <tt>LMOD_SYSTEM_DEFAULT_MODULES</tt> ====
==== <code>RSNT_CUDA_DRIVER_VERSION</code> ====
Cette variable identifie les modules à charger par défaut. Si elle n’est pas définie, notre environnement charge par défaut le module <tt>StdEnv</tt> qui à son tour charge par défaut une version du compilateur Intel ainsi qu’une version OpenMPI.


==== <tt>MODULERCFILE</tt> ====
Cette variable est utilisée pour cacher ou montrer des versions de nos modules CUDA selon la version requise pour les pilotes NVidia, [https://docs.nvidia.com/deploy/cuda-compatibility/index.html comme documenté ici]. Si la variable n’est pas définie, les fichiers dans <code>/usr/lib64/nvidia</code> déterminent les versions à cacher ou à montrer.
Cette variable est utilisée par Lmod pour définir la version par défaut des modules et alias. Vous pouvez définir votre propre fichier <tt>modulerc</tt> et l'ajouter à <tt>MODULERCFILE</tt>. Ceci aura préséance sur ce qui est défini dans notre environnement.
 
Si aucune bibliothèque ne se trouve dans <code>/usr/lib64/nvidia</code>, nous supposons que les versions du pilote sont suffisantes pour CUDA 10.2. Ceci est pour assurer la compatibilité avec les versions antérieures puisque cette fonctionnalité a été rendue disponible à la sortie de CUDA 11.0.
 
Définir la variable d’environnement <code>RSNT_CUDA_DRIVER_VERSION=0.0</code> cache toutes les versions de CUDA.
 
==== <code>RSNT_LOCAL_MODULEPATHS</code> ====
Cette variable identifie les endroits où se trouvent les arbres de modules locaux et les intègre à notre arborescence centrale. Définissez d’abord
{{Command|export RSNT_LOCAL_MODULEPATHS{{=}}/opt/software/easybuild/modules}}
 
et installez ensuite votre recette [[EasyBuild/fr|EasyBuild]] avec
{{Command|eb --installpath /opt/software/easybuild <your recipe>.eb}}
 
Notre nomenclature de modules sera employée pour installer localement votre recette qui sera utilisée dans la hiérarchie des modules. Par exemple, si la recette utilise la chaîne de compilation <code>iompi,2018.3</code>, le module sera disponible après que les modules <code>intel/2018.3</code> et <code>openmpi/3.1.2</code> auront été chargés.
 
==== <code>LMOD_SYSTEM_DEFAULT_MODULES</code> ====
Cette variable identifie les modules à charger par défaut. Si elle n’est pas définie, notre environnement charge par défaut le module <code>StdEnv</code> qui à son tour charge par défaut une version du compilateur Intel ainsi qu’une version OpenMPI.
 
==== <code>MODULERCFILE</code> ====
Cette variable est utilisée par Lmod pour définir la version par défaut des modules et alias. Vous pouvez définir votre propre fichier <code>modulerc</code> et l'ajouter à <code>MODULERCFILE</code>. Ceci aura préséance sur ce qui est défini dans notre environnement.


===Chemin des fichiers===
===Chemin des fichiers===
Notre environnement logiciel est conçu pour dépendre le moins possible du système d’exploitation hôte; cependant, il doit reconnaître certains chemins afin de faciliter les interactions avec les outils qui y sont installés.  
Notre environnement logiciel est conçu pour dépendre le moins possible du système d’exploitation hôte; cependant, il doit reconnaître certains chemins afin de faciliter les interactions avec les outils qui y sont installés.  


==== <tt>/opt/software/modulefiles</tt> ====
==== <code>/opt/software/modulefiles</code> ====
S’il existe, ce chemin est automatiquement ajouté au <tt>MODULEPATH</tt> par défaut. Ceci permet l’utilisation de notre environnement en conservant les modules installés localement.  
S’il existe, ce chemin est automatiquement ajouté au <code>MODULEPATH</code> par défaut. Ceci permet l’utilisation de notre environnement en conservant les modules installés localement.  


==== <tt>$HOME/modulefiles</tt> ====
==== <code>$HOME/modulefiles</code> ====
S’il existe, ce chemin est automatiquement ajouté au MODULEPATH par défaut. Ceci permet l’utilisation de notre environnement en permettant l’installation de modules dans les répertoires <tt>/home</tt>.
S’il existe, ce chemin est automatiquement ajouté au MODULEPATH par défaut. Ceci permet l’utilisation de notre environnement en permettant l’installation de modules dans les répertoires <code>/home</code>.


==== <tt>/opt/software/slurm/bin</tt>, <tt>/opt/software/bin</tt>, <tt>/opt/slurm/bin</tt> ====
==== <code>/opt/software/slurm/bin</code>, <code>/opt/software/bin</code>, <code>/opt/slurm/bin</code> ====
Ces chemins sont automatiquement ajoutés au <tt>PATH</tt> par défaut. Il permet l'ajout de votre exécutable dans le chemin de recherche.
Ces chemins sont automatiquement ajoutés au <code>PATH</code> par défaut. Il permet l'ajout de votre exécutable dans le chemin de recherche.
 
== Installation locale de logiciels ==
Depuis juin 2020, il est possible d'installer des modules additionnels sur votre grappe de calcul; ces modules seront par la suite reconnus par notre hiérarchie centrale.  Pour plus d'information, voyez la [https://github.com/ComputeCanada/software-stack/issues/11 discussion et l'implémentation à ce sujet].
 
Pour installer des modules additionnels, identifiez d'abord un chemin où installer les logiciels, par exemple <code>/opt/software/easybuild</code>. Assurez-vous que ce dossier existe. Exportez ensuite la variable d'environnement <code>RSNT_LOCAL_MODULEPATHS</code> :
{{Command|export RSNT_LOCAL_MODULEPATHS{{=}}/opt/software/easybuild/modules}}
 
Si vous voulez que vos utilisateurs puissent  trouver cette branche, nous vous recommandons de définir cette variable d'environnement dans le profil commun de la grappe. Installez ensuite les paquets logiciels que vous voulez avec [[EasyBuild/fr|EasyBuild]]&nbsp;:
{{Command|eb --installpath /opt/software/easybuild <some easyconfig recipe>}}
 
Les logiciels seront installés localement selon notre hiérarchie de nomenclature de modules. Ils seront automatiquement présentés aux utilisateurs quand ils chargent notre compilateur, MPI et CUDA.


=Mises en garde=
=Mises en garde=
==Utilisation de l’environnement logiciel par un administrateur==
==Utilisation de l’environnement logiciel par un administrateur==
L’administrateur de système (ou l’utilisateur administrateur de son propre système) doit [[Accessing_CVMFS/fr#Activer_notre_environnement_dans_votre__session|s’assurer]] que ses sessions ne dépendent pas de l’environnement logiciel lors des opérations de système. Par exemple, si vous faites la mise à jour de CVMFS avec YUM pendant que votre session utilise un module Python chargé à partir de CVMFS, YUM pourrait être exécuté en utilisant ce même module et en perdre l’accès par la mise à jour qui serait alors bloquée. De même, votre session pourrait figer si votre environnement dépend de CVMFS et que l’accès en soit bloqué pendant une reconfiguration. Dans la plupart des cas, la mise à jour ou la reconfiguration de CVMFS peuvent se faire sans interruption de service car en soi, ces opérations sont réussies.
Si vous effectuez des opérations de système avec des privilèges ou des opérations en rapport avec CVMFS, [[Accessing_CVMFS/fr#Activer_notre_environnement_dans_votre_session|assurez-vous que votre session <i>ne dépend pas de l’environnement logiciel</i>]]. Par exemple, si vous faites la mise à jour de CVMFS avec YUM pendant que votre session utilise un module Python chargé à partir de CVMFS, YUM pourrait être exécuté en utilisant ce même module et en perdre l’accès par la mise à jour qui serait alors bloquée. De même, si votre environnement dépend de CVMFS et que vous reconfigurez CVMFS de façon à ce que l'accès à CVMFS soit temporairement interrompu, votre session pourrait nuire aux opérations de CVMFS ou être suspendue. Tenant compte de ceci, la mise à jour ou la reconfiguration de CVMFS peut se faire sans interruption de service dans la plupart des cas, car l'opération réussirait en raison de l'absence d'une dépendance circulaire.
 
==Répertoire de configuration de Calcul Canada==
Si CVMFS est déjà installé et configuré de telle manière que vous pouvez utiliser d’autres répertoires (ceux du CERN par exemple) et que votre configuration client fait appel à un [http://cvmfs.readthedocs.io/en/stable/cpt-configure.html#the-config-repository répertoire de configuration], sachez que le paquet <tt>cvmfs-config-computecanada</tt> configure et active le répertoire de configuration <tt>cvmfs-config.computecanada.ca</tt>. Puisqu’un client ne peut utiliser qu’un seul répertoire de configuration, un conflit peut se produire si vous utilisez un autre répertoire de configuration et votre configuration préexistante pourrait être endommagée.
(Le répertoire de configuration de Calcul Canada sert à configurer tous les autres répertoires de configuration CVMFS disponibles. Il contient les configurations de clients indépendantes des sites pour permettre l’utilisation de l’ensemble des ressources de Calcul Canada; ce répertoire permet en outre de propager automatiquement les mises à jour. Voyez son contenu dans <tt>/cvmfs/cvmfs-config.computecanada.ca/etc/cvmfs/</tt>.)


== Paquets logiciels non disponibles ==
== Paquets logiciels non disponibles ==
Calcul Canada met plusieurs logiciels du commerce à la disposition des utilisateurs, sous condition de la licence de ces produits. Ces logiciels ne sont pas disponibles ailleurs qu’avec nos ressources et vous n’y aurez pas droit d’accès même si vous suivez les directives pour installer et configurer CVMFS. Prenons l’exemple des compilateurs d’Intel et du Portland Group : si les modules pour ces compilateurs sont disponibles, vous n’avez accès qu’aux parties redistribuables, habituellement les objets partagés. Vous pourrez exécuter des applications compilées, mais il ne vous sera pas possible de compiler de nouvelles applications.
Nous mettons plusieurs logiciels du commerce à la disposition des utilisateurs, sous condition de la licence de ces produits. Ces logiciels ne sont pas disponibles ailleurs qu’avec nos ressources et vous n’y aurez pas droit d’accès même si vous suivez les directives pour installer et configurer CVMFS. Prenons l’exemple des compilateurs d’Intel et du Portland Group&nbsp;: si les modules pour ces compilateurs sont disponibles, vous n’avez accès qu’aux parties redistribuables, habituellement les objets partagés. Vous pourrez exécuter des applications compilées, mais il ne vous sera pas possible de compiler de nouvelles applications.


== Localisation de CUDA  ==
== Localisation de CUDA  ==
Dans le cas des paquets CUDA, notre environnement logiciel utilise des bibliothèques de pilotes installées dans  <tt>/usr/lib64/nvidia</tt>. Cependant, avec certaines plateformes, les récents pilotes NVidia installent les bibliothèques  <tt>/usr/lib64</tt> dans <tt>LD_LIBRARY_PATH</tt> sans emprunter de toutes les bibliothèques du système, ce qui pourrait créer des incompatibilités avec notre environnement logiciel; nous vous recommandons donc de créer des liens symboliques dans <tt>/usr/lib64/nvidia</tt> pour rediriger vers les bibliothèques NVidia qui sont installées. Le script suivant sert à créer les liens symboliques (remplacez le numéro de version par celui de la vôtre).  
Dans le cas des paquets CUDA, notre environnement logiciel utilise des bibliothèques de pilotes installées dans  <code>/usr/lib64/nvidia</code>. Cependant, avec certaines plateformes, les récents pilotes NVidia installent les bibliothèques  <code>/usr/lib64</code> dans <code>LD_LIBRARY_PATH</code> sans emprunter de toutes les bibliothèques du système, ce qui pourrait créer des incompatibilités avec notre environnement logiciel; nous vous recommandons donc de créer des liens symboliques dans <code>/usr/lib64/nvidia</code> pour rediriger vers les bibliothèques NVidia qui sont installées. Le script suivant sert à installer les pilotes et créer les liens symboliques (remplacez le numéro de version par celui que vous désirez).  


{{File|name=script.sh|contents=
{{File|name=script.sh|contents=
Line 227: Line 190:
}}
}}


== <tt>LD_LIBRARY_PATH</tt> ==
== <code>LD_LIBRARY_PATH</code> ==
Notre environnement est conçu  pour utiliser [https://en.wikipedia.org/wiki/Rpath RUNPATH]. Il n’est pas recommandé de définir <tt>LD_LIBRARY_PATH</tt> puisque l'environnement  [https://gms.tf/ld_library_path-considered-harmful.html pourrait causer des problèmes].  
Notre environnement est conçu  pour utiliser [https://en.wikipedia.org/wiki/Rpath RUNPATH]. Il n’est pas recommandé de définir <code>LD_LIBRARY_PATH</code> puisque l'environnement  [https://gms.tf/ld_library_path-considered-harmful.html pourrait causer des problèmes].  


== Bibliothèques introuvables ==
== Bibliothèques introuvables ==
Puisque nous ne définissons pas <tt>LD_LIBRARY_PATH</tt> et que nos bibliothèques ne sont pas installées dans des localisations Linux par défaut, les paquets binaires comme Anaconda ont souvent de la difficulté à trouver les bibliothèques dont ils ont besoin. Consultez notre [[Installing_software_in_your_home_directory/fr#Installer_des_paquets_binaires|documentation sur l’installation de paquets binaires ]].
Puisque nous ne définissons pas <code>LD_LIBRARY_PATH</code> et que nos bibliothèques ne sont pas installées dans des localisations Linux par défaut, les paquets binaires comme Anaconda ont souvent de la difficulté à trouver les bibliothèques dont ils ont besoin. Consultez notre [[Installing_software_in_your_home_directory/fr#Installer_des_paquets_binaires|documentation sur l’installation de paquets binaires]].


== dbus ==
== dbus ==
Pour certaines applications, <tt>dbus</tt> doit être installé localement, sur le système d’exploitation hôte.
Pour certaines applications, <code>dbus</code> doit être installé localement, sur le système d’exploitation hôte.

Latest revision as of 16:32, 27 May 2024

Other languages:

Introduction

Les répertoires de logiciels et de données que nous offrons sont accessibles via le CVMFS (CERN Virtual Machine File System). Puisque CVMFS est préconfiguré pour vous, vous pouvez utiliser ses répertoires directement. Pour plus d’information sur notre environnement logiciel, consultez les pages wiki Logiciels disponibles, Utiliser des modules, Python, R et Installation de logiciels dans votre répertoire /home.

Nous décrivons ici comment installer et configurer CVMFS sur votre propre ordinateur ou grappe; vous aurez ainsi accès aux mêmes répertoires et environnements logiciels que ceux de nos systèmes.

Nous utilisons comme exemple l'environnement logiciel présenté à la conférence PEARC 2019, Practices and Experience in Advanced Research Computing.

Avant de commencer

Light-bulb.pngSi vous êtes membre de nos équipes techniques, lisez ce document interne.


Important

Veuillez vous abonner au service d'annonces et remplir ce formulaire d'enregistrement (en anglais). Si vous utilisez notre environnement logiciel dans votre recherche, veuillez reconnaître notre contribution selon ces directives.

Nous vous remercions de mentionner aussi notre présentation.


S'abonner au service d'annonces

Des modifications peuvent être apportées au CVMFS ou aux logiciels et autre contenu des répertoires que nous fournissions; ces modifications touchent les utilisateurs ou nécessitent l’intervention de l’administrateur pour assurer la continuité du service.

Abonnez-vous à la liste de diffusion cvmfs-announce@gw.alliancecan.ca afin de recevoir les annonces importantes occasionnelles. Vous pouvez vous abonner en écrivant à cvmfs-announce+subscribe@gw.alliancecan.ca et en répondant au courriel de confirmation qui vous sera envoyé. Les membres de nos équipes techniques peuvent aussi ici.

Conditions d’utilisation et soutien technique

Le logiciel client CVMFS est fourni par le CERN. Nos répertoires CVMFS sont offerts sans aucune forme de garantie. Votre accès aux répertoires et à l’environnement logiciel peut être limité ou bloqué si vous contrevenez aux conditions d’utilisation, ou à notre discrétion.

Exigences techniques

Pour un seul système

Pour installer CVMFS sur un ordinateur personnel, les exigences sont :

  • un système d’exploitation compatible (voir Exigences de base ci-dessous);
  • le logiciel libre FUSE;
  • environ 50Go d’espace de stockage local pour la cache; une cache plus ou moins grande peut convenir, selon les circonstances. Pour une utilisation restreinte sur un ordinateur personnel, de 5 à 10Go peuvent suffire. Pour plus d'information, voyez le paragraphe Cache Settings.
  • l’accès HTTP vers l’internet,
    • ou l’accès HTTP vers un ou plusieurs serveurs proxies locaux.

Si ces conditions ne sont pas respectées ou que vous avez d’autres restrictions, considérez cette autre option.

Pour plusieurs systèmes

Pour déployer plusieurs clients CVMFS, par exemple sur une grappe, dans un laboratoire, sur un campus ou autre, chacun des systèmes doit satisfaire les exigences particulières énoncées ci-dessus. Tenez compte en plus des points suivants :

  • Pour améliorer la performance, nous vous recommandons de déployer sur votre site des serveurs proxies HTTP avec cache externe (forward caching), particulièrement si vous avez plusieurs clients (voir Setting up a Local Squid Proxy).
    • Le fait de ne disposer que d’un seul serveur proxy est un point individuel de défaillance. Règle générale, vous devriez disposer d’au moins deux serveurs proxies locaux et préférablement un ou plusieurs autres serveurs proxies supplémentaires à proximité pour prendre la relève en cas de problème.
  • Nous vous recommandons de synchroniser l’identité du compte de service cvmfs de tous les nœuds clients avec LDAP ou autrement.
    • Ceci facilitera l’utilisation d’une cache externe et devrait être fait avant que CVMFS ne soit installé. Même si l’utilisation d’une cache externe n’est pas prévue, il est plus facile de synchroniser les comptes dès le départ que d’essayer de les changer plus tard.

Exigences de l’environnement logiciel

Exigences de base

  • Système d’exploitation :
    • Linux : avec noyau (kernel) 2.6.32 ou plus pour les environnements 2016 et 2018; noyau 3.2 ou plus pour l'environnement 2020,
    • Windows : avec la version 2 du sous-système Windows pour Linux (WSL) et une distribution Linux avec noyau 2.6.32 ou plus,
    • Mac OS : par instance virtuelle seulement;
  • CPU : x86, pour jeux d’instructions SSE3, AVX, AVX2 ou AVX512.

Pour une utilisation optimale

  • Ordonnanceur : Slurm ou Torque, pour une intégration étroite avec les applications OpenMPI;
  • Interconnexion réseau : Ethernet, InfiniBand ou OmniPath, pour les applications parallèles;
  • GPU : NVidia avec pilotes CUDA 7.5 ou plus, pour les applications CUDA (voir la mise en garde ci-dessous);
  • Un minimum de paquets Linux, pour éviter les risques de conflits.

Installer CVMFS

Si vous voulez utiliser Ansible, il existe un rôle client CVMFS pour la configuration de base d’un client CVMFS avec un système RPM. Des scripts sont disponibles pour installer facilement CVMFS sur une instance infonuagique. Autrement, suivez les directives ci-dessous.

Préinstallation

Nous recommandons que la cache locale CVMFS (située par défaut dans /var/lib/cvmfs et configurable avec le paramètre CVMFS_CACHE_BASE) soit localisée dans un système de fichiers dédié afin que le stockage ne soit pas partagé avec celui d’autres applications. Vous devriez donc avoir ce système de fichiers avant d’installer CVMFS.

Installation et configuration

Voir les directives pour l'installation dans Getting the Software.

Pour configurer un client, voir Setting up the Software et Client parameters.

Le répertoire soft.computecanada.ca est fourni avec la configuration et vous pouvez ainsi y accéder; vous pouvez l'inclure dans votre configuration client CVMFS_REPOSITORIES.

Test

  • Assurez-vous d'abord que les répertoires à tester se trouvent dans CVMFS_REPOSITORIES.
  • Validez la configuration.
Question.png
[name@server ~]$ sudo cvmfs_config chksetup
  • Assurez-vous de régler les avertissements ou erreurs qui pourraient survenir.
  • Vérifiez les répertoires.
Question.png
[name@server ~]$ cvmfs_config probe

En cas de problème, ce guide de débogage pourrait vous être utile.

Activer notre environnement dans votre session

Une fois que le répertoire CVMFS est monté, notre environnement est activé dans votre session en utilisant le script /cvmfs/soft.computecanada.ca/config/profile/bash.sh. Celui-ci chargera des modules par défaut. Si vous désirez avoir les modules par défaut d'une grappe de calcul en particulier, définissez la variable CC_CLUSTER en choisissant l'une des valeurs suivantes beluga, cedar ou graham, avant d'utiliser le script. Par exemple:

Question.png
[name@server ~]$ export CC_CLUSTER=beluga
Question.png
[name@server ~]$ source /cvmfs/soft.computecanada.ca/config/profile/bash.sh

Cette commande n’exécutera rien si votre identifiant d’utilisateur est sous 1000. Il s’agit d’une mesure de sécurité parce que vous ne devriez pas vous attendre à ce que notre environnement logiciel vous procure des privilèges de fonctionnement. Si vous voulez quand même activer notre environnement, vous pouvez d’abord définir la variable FORCE_CC_CVMFS=1 avec la commande

Question.png
[name@server ~]$ export FORCE_CC_CVMFS=1

ou, si vous voulez que notre environnement soit actif en permanence, vous pouvez créer le fichier $HOME/.force_cc_cvmfs dans votre répertoire /home avec

Question.png
[name@server ~]$ touch $HOME/.force_cc_cvmfs

Si vous voulez au contraire ne pas activer notre environnement, vous pouvez définir SKIP_CC_CVMFS=1 ou créer le fichier $HOME/.skip_cc_cvmfs pour faire en sorte que notre environnement ne soit jamais activé dans cet environnement particulier.

Personnaliser votre environnement

Par défaut, certaines fonctionnalités de votre système seront automatiquement détectées par l’activation de notre environnement et les modules requis seront chargés. Ce comportement par défaut peut être modifié par la définition préalable des variables d’environnement particulières décrites ci-dessous.

Variables d’environnement

CC_CLUSTER

Cette variable identifie la grappe. Elle achemine des renseignements au journal du système et définit le comportement à adopter selon la licence du logiciel. Sa valeur par défaut est computecanada. Vous pourriez définir sa valeur pour que les journaux soient identifiés par le nom de votre système.

RSNT_ARCH

Cette variable identifie le jeu d’instructions CPU pour le système. Par défaut, elle est détectée automatiquement selon /proc/cpuinfo. Vous pouvez cependant utiliser un autre jeu d’instructions en définissant la variable avant d’activer l’environnement. Les jeux possibles sont :

  • sse3
  • avx
  • avx2
  • avx512

RSNT_INTERCONNECT

Cette variable identifie le type d’interconnexion réseau du système. Elle est détectée automatiquement selon la présence de /sys/module/opa_vnic pour OmniPath ou de /sys/module/ib_core pour InfiniBand. La valeur de remplacement est ethernet. Les valeurs possibles sont :

  • omnipath
  • infiniband
  • ethernet

La valeur de la variable déclenche des options différentes du protocole de transport pour OpenMPI.

RSNT_CUDA_DRIVER_VERSION

Cette variable est utilisée pour cacher ou montrer des versions de nos modules CUDA selon la version requise pour les pilotes NVidia, comme documenté ici. Si la variable n’est pas définie, les fichiers dans /usr/lib64/nvidia déterminent les versions à cacher ou à montrer.

Si aucune bibliothèque ne se trouve dans /usr/lib64/nvidia, nous supposons que les versions du pilote sont suffisantes pour CUDA 10.2. Ceci est pour assurer la compatibilité avec les versions antérieures puisque cette fonctionnalité a été rendue disponible à la sortie de CUDA 11.0.

Définir la variable d’environnement RSNT_CUDA_DRIVER_VERSION=0.0 cache toutes les versions de CUDA.

RSNT_LOCAL_MODULEPATHS

Cette variable identifie les endroits où se trouvent les arbres de modules locaux et les intègre à notre arborescence centrale. Définissez d’abord

Question.png
[name@server ~]$ export RSNT_LOCAL_MODULEPATHS=/opt/software/easybuild/modules

et installez ensuite votre recette EasyBuild avec

Question.png
[name@server ~]$ eb --installpath /opt/software/easybuild <your recipe>.eb

Notre nomenclature de modules sera employée pour installer localement votre recette qui sera utilisée dans la hiérarchie des modules. Par exemple, si la recette utilise la chaîne de compilation iompi,2018.3, le module sera disponible après que les modules intel/2018.3 et openmpi/3.1.2 auront été chargés.

LMOD_SYSTEM_DEFAULT_MODULES

Cette variable identifie les modules à charger par défaut. Si elle n’est pas définie, notre environnement charge par défaut le module StdEnv qui à son tour charge par défaut une version du compilateur Intel ainsi qu’une version OpenMPI.

MODULERCFILE

Cette variable est utilisée par Lmod pour définir la version par défaut des modules et alias. Vous pouvez définir votre propre fichier modulerc et l'ajouter à MODULERCFILE. Ceci aura préséance sur ce qui est défini dans notre environnement.

Chemin des fichiers

Notre environnement logiciel est conçu pour dépendre le moins possible du système d’exploitation hôte; cependant, il doit reconnaître certains chemins afin de faciliter les interactions avec les outils qui y sont installés.

/opt/software/modulefiles

S’il existe, ce chemin est automatiquement ajouté au MODULEPATH par défaut. Ceci permet l’utilisation de notre environnement en conservant les modules installés localement.

$HOME/modulefiles

S’il existe, ce chemin est automatiquement ajouté au MODULEPATH par défaut. Ceci permet l’utilisation de notre environnement en permettant l’installation de modules dans les répertoires /home.

/opt/software/slurm/bin, /opt/software/bin, /opt/slurm/bin

Ces chemins sont automatiquement ajoutés au PATH par défaut. Il permet l'ajout de votre exécutable dans le chemin de recherche.

Installation locale de logiciels

Depuis juin 2020, il est possible d'installer des modules additionnels sur votre grappe de calcul; ces modules seront par la suite reconnus par notre hiérarchie centrale. Pour plus d'information, voyez la discussion et l'implémentation à ce sujet.

Pour installer des modules additionnels, identifiez d'abord un chemin où installer les logiciels, par exemple /opt/software/easybuild. Assurez-vous que ce dossier existe. Exportez ensuite la variable d'environnement RSNT_LOCAL_MODULEPATHS :

Question.png
[name@server ~]$ export RSNT_LOCAL_MODULEPATHS=/opt/software/easybuild/modules

Si vous voulez que vos utilisateurs puissent trouver cette branche, nous vous recommandons de définir cette variable d'environnement dans le profil commun de la grappe. Installez ensuite les paquets logiciels que vous voulez avec EasyBuild :

Question.png
[name@server ~]$ eb --installpath /opt/software/easybuild <some easyconfig recipe>

Les logiciels seront installés localement selon notre hiérarchie de nomenclature de modules. Ils seront automatiquement présentés aux utilisateurs quand ils chargent notre compilateur, MPI et CUDA.

Mises en garde

Utilisation de l’environnement logiciel par un administrateur

Si vous effectuez des opérations de système avec des privilèges ou des opérations en rapport avec CVMFS, assurez-vous que votre session ne dépend pas de l’environnement logiciel. Par exemple, si vous faites la mise à jour de CVMFS avec YUM pendant que votre session utilise un module Python chargé à partir de CVMFS, YUM pourrait être exécuté en utilisant ce même module et en perdre l’accès par la mise à jour qui serait alors bloquée. De même, si votre environnement dépend de CVMFS et que vous reconfigurez CVMFS de façon à ce que l'accès à CVMFS soit temporairement interrompu, votre session pourrait nuire aux opérations de CVMFS ou être suspendue. Tenant compte de ceci, la mise à jour ou la reconfiguration de CVMFS peut se faire sans interruption de service dans la plupart des cas, car l'opération réussirait en raison de l'absence d'une dépendance circulaire.

Paquets logiciels non disponibles

Nous mettons plusieurs logiciels du commerce à la disposition des utilisateurs, sous condition de la licence de ces produits. Ces logiciels ne sont pas disponibles ailleurs qu’avec nos ressources et vous n’y aurez pas droit d’accès même si vous suivez les directives pour installer et configurer CVMFS. Prenons l’exemple des compilateurs d’Intel et du Portland Group : si les modules pour ces compilateurs sont disponibles, vous n’avez accès qu’aux parties redistribuables, habituellement les objets partagés. Vous pourrez exécuter des applications compilées, mais il ne vous sera pas possible de compiler de nouvelles applications.

Localisation de CUDA

Dans le cas des paquets CUDA, notre environnement logiciel utilise des bibliothèques de pilotes installées dans /usr/lib64/nvidia. Cependant, avec certaines plateformes, les récents pilotes NVidia installent les bibliothèques /usr/lib64 dans LD_LIBRARY_PATH sans emprunter de toutes les bibliothèques du système, ce qui pourrait créer des incompatibilités avec notre environnement logiciel; nous vous recommandons donc de créer des liens symboliques dans /usr/lib64/nvidia pour rediriger vers les bibliothèques NVidia qui sont installées. Le script suivant sert à installer les pilotes et créer les liens symboliques (remplacez le numéro de version par celui que vous désirez).


File : script.sh

NVIDIA_DRV_VER="410.48"
nv_pkg=( "nvidia-driver" "nvidia-driver-libs" "nvidia-driver-cuda" "nvidia-driver-cuda-libs" "nvidia-driver-NVML" "nvidia-driver-NvFBCOpenGL" "nvidia-modprobe" )
yum -y install ${nv_pkg[@]/%/-${NVIDIA_DRV_VER}}
for file in $(rpm -ql ${nv_pkg[@]}); do
  [ "${file%/*}" = '/usr/lib64' ] && [ ! -d "${file}" ] && \ 
  ln -snf "$file" "${file%/*}/nvidia/${file##*/}"
done


LD_LIBRARY_PATH

Notre environnement est conçu pour utiliser RUNPATH. Il n’est pas recommandé de définir LD_LIBRARY_PATH puisque l'environnement pourrait causer des problèmes.

Bibliothèques introuvables

Puisque nous ne définissons pas LD_LIBRARY_PATH et que nos bibliothèques ne sont pas installées dans des localisations Linux par défaut, les paquets binaires comme Anaconda ont souvent de la difficulté à trouver les bibliothèques dont ils ont besoin. Consultez notre documentation sur l’installation de paquets binaires.

dbus

Pour certaines applications, dbus doit être installé localement, sur le système d’exploitation hôte.