Accéder à la plate-forme

Vous trouverez ici les informations pour vous connecter à la plate-forme, une description des espaces disques que vous pouvez utiliser et comment procéder pour transférer vos fichiers.

 

1. Connexion

L'accès aux ressources se fait via le frontal calculco.univ-littoral.fr avec les identifiant et mot de passe que vous avez reçus lors de la création de votre compte.

  • Sous Mac OS, un client ssh est disponible en standard.
  • Sous Linux, La plupart des distributions intègrent également un client ssh. Si ce n'est pas le cas vous pouvez installer openssh.
  • Sous Windows, vous pouvez utiliser le logiciel PuTTY. Il est librement téléchargeable ici (utiliser le port 22 en ssh). À partir de Windows 10, installer «Windows Sub Linux» (WSL) est une bonne option. En effet, en sus de tous les utilitaires de connexion du tutorial ci-après, vous pourrez installer par la suite un environnement de développement similaire à celui de la plate-forme.

Dans un terminal taper la commande :

# ssh votreIdentifiant@calculco.univ-littoral.fr

Vous trouverez le message d’accueil suivant (avec un terminal configuré avec une palette "blanc sur noir") :

frontal

Quelques infos sont disponibles, comme par exemple :

  • La trace de votre dernière connexion.
  • Votre quota d'utilisation de l'espace disque "home".
  • Le nombre d'utilisateurs actuellement connectés à la plate-forme.

1.1. Par mot de passe

Lors de la création de votre compte un mot de passe aléatoire a été généré. Si vous désirez continuer d'utiliser ce moyen d'authentification au serveur, nous vous recommandons de le modifier lors de votre première connexion, vous ne le retiendrez pas! Pour cela utiliser la commande passwd. Il faudra choisir un mot de passe de 8 caractères minimum qui n'appartient pas au dictionnaire.

bulb  Une méthode pour définir un mot de passe robuste et facilement mémorisable est de choisir par exemple une phrase, un titre de livre ou encore un dicton et de ne garder que les premières lettres. On pourra agrémenter le tout de quelques chiffres et/ou caractères spéciaux afin de le complexifier un peu plus.
Prenons l'exemple du mot de passe 
lve1lftd'EC qui est un bon mot de passe puisqu'il est assez long et dispose d'un chiffre, de deux majuscules et de 2 caractères spéciaux. Il est néanmoins facile à retenir puisque qu'il s'agit des initiales du film "la vie est un long fleuve tranquille" d'Étienne Chatiliez.

1.2. Par clé ssh

C'est la méthode à privilégier. Elle permet de renforcer la sécurité au niveau du processus de connexion.  Pour cela il faut générer une paire de clés (publique et privé). La clé publique sera placée sur le serveur auquel vous voulez vous connecter (calculco) et la clé privée doit être gardée précieusement et secrètement sur votre poste client. Lors de la tentative de connexion ssh va vérifier si vous possédez bien (en local) la clé privée qui est appairée à la clé publique enregistrée (dans le fichier ~/.ssh/authorized_keys sur le serveur).

Voilà comment faire, ainsi que nos recommendations, pour utiliser cette méthode sur la plate-forme.

1.2.1. Poste client sous linux (ou win 10 avec WSL)

Sur votre poste, générer la paire de clés grâce à la commande ssh-keygen. Si vous ne spécifiez pas d'option, par défaut elles utilisent sûrement le type RSA avec une longueur de 2048 bits et sont utilisables sur la plate-forme. Nous vous conseillons malgré tout d'utiliser plutôt le type ed25519. Cela devrait être possible à part si votre client ssh est trop vieux (privilégier alors le type RSA avec une longueur de 4096 bits).

Cf. quelques explications ici 

En résumé sous linux, les commandes suivantes devraient faire l'affaire :

Génération des clés sur votre poste :

# ssh-keygen -t ed25519 -o -a 64

ou si le type ed25519 n'est pas reconnu

# ssh-keygen -t rsa -b 4096

Ajouter ensuite la clé publique sur calculco (en supposant que vous ayez gardé les fichiers par défaut lors de la génération des clés) :

# ssh-copy-id -i ~/.ssh/id_ed25519.pub votreIdentifiant@calculco.univ-littoral.fr

ou pour le type rsa

# ssh-copy-id -i ~/.ssh/id_rsa.pub votreIdentifiant@calculco.univ-littoral.fr

Votre mot de passe de calculco sera nécessaire pour cette étape. La clé publique sera stockée dans le fichier ~/.ssh/authorized_keys sur calculco.
Une fois la procédure terminée vous pourrez vous connecter depuis votre poste client sans le mot de passe qui vous a été founi, seul celui de déverrouillage de votre clé privée vous sera demandé (si vous en avez spécifié un ou s’il n’a pas été mémorisé par ssh-agent).

1.2.2. Poste client sous windows (avec PuTTY)

Pour générer la paire de clés et transférer la clé publique sur le serveur, vous pouvez utiliser l'utilitaire "PuTTYgen". Les explications sont disponibles ici.

 

Espace disque

Il existe deux types d'espace disque disponibles sur la plate-forme :

1.3. Les volumes montés

Ces espaces disques sont attachés au frontal de connexion et montés via nfs ou beegfs sur tous les nœuds. Il en existe de 3 sortes :

1.3.1. Votre espace de travail (Home Directory via nfs)

Cet espace doit essentiellement servir à déposer vos codes sources et certains de vos résultats si ceux-ci ne sont pas volumineux. Il est limité pour chaque utilisateur, vous disposez par défaut de 50Go. Toutefois, sur justifications, votre quota pourra être augmenté.  Le point de montage de cet espace disque est /nfs/home/votreLabo/votreIdentifiant. Pour vérifier l'espace que vous occupez, vous diposez de la commande "quota" :

# quota -s
Disk quotas for user votreIdentifiant :
Système fichiers   space   quota  limite  sursisfichiers   quota  limite  sursis
      /dev/sdb1  18624K  25293M  26624M             913       0       0      

 

1.3.2. Les espaces pour les données (data et data2 via nfs)

Pour stocker vos données et vos résultats de calcul, vous disposez de 2 espaces disque plus volumineux : data (58To) et data2 (36To). Ils sont montés respectivement sous /nfs/data et /nfs/data2. L'arborescence sous ces montages est la même que celle pratiquée sur l'espace contenant vos "home directory".
Ils sont partagés par tous les utilisateurs (sans quota) et sont montés sur tous les noeuds.
Merci de privilégier l'espace /nfs/data si vous ne faites pas partie du LOG (le financeur du second espace).

 

1.3.3. Un espace spécial I/O (workdir via beegfs)

Cet espace (système de fichier distribué) d'une capacité de 30To peut et doit être privilégié lors de calculs intensifs parallèles sur plusieurs nœuds et nécessitant de nombreuses entrées/sorties. C'est un espace "scratch" (cf. scratch locaux ci-après) mais commun à tous les nœuds. Il permet d'y placer vos données temporaires utilisées pour vos calculs en entrée comme en sortie. L'arborescence sous ce montage (/workdir) est la même que celle pratiquée sur l'espace contenant vos "home directory". N'oubliez pas d'y faire le ménage de vos fichiers temporaires après chaque travaux.


Pensez également à vérifier de temps à autre, quand vous les utilisez, les occupations totales grâce à la commande "df" :

# df -h | grep data
/dev/sde1 58T 21T 36T 37% /nfs/data
/dev/sdf1 36T 12T 23T 34% /nfs/data2

 

De même, pour connaître le volume que vous utilisez dans un espace, vous pouvez utiliser la commande "du" (exemple sur data) :

# du -sh /nfs/data/votreLabo/votreIdentifiant
203G    /nfs/data/votreLabo/votreIdentifiant/

 

1.4. Les volumes locaux (Scratch)

Sur chaque nœud de calcul vous disposez d'un espace disque dit "Scratch". Si vous faites dans vos programmes de nombreux accès en lecture et/ou écriture, l'utilisation des montages nfs est à éviter. Il faudra travailler sur le montage local /scratch. Cet espace n'est malheureusement pas partagé entre les nœuds de la plate-forme, si c'est nécessaire il faut dans ce cas utiliser l'espace /wordir (scratch distribué cf. section précédente).

L'espace /scratch ne doit pas être utilisé pour stocker des données de façon pérenne.

La démarche à suivre lors de travaux sur le nœud consiste à prévoir des étapes de pré-traitement et post-traitement : Avant de lancer votre "job" il vous faudra y copier les données dont votre programme a besoin en lecture intensif. Les résultats volumineux générés par votre programme devront également y être écrits. A la fin de votre "job" il faudra prévoir un post-traitement de ces données (analyse, plot ...) et/ou une recopie des données dans /nfs/data avant de les détruire (cet espace scratch est par nature temporaire, utilisé fréquemment par tout le monde).

Sachez que des instructions en crontab purgeront périodiquement les données les plus vieilles de cet espace pour assurer le bon fonctionnement des nœuds.

 

Il n'y a pas de sauvegarde des espaces de stockage "Data". C'est à vous de le gérer. Le pôle ne saurait être tenu responsable de la perte de vos données. Une sauvegarde des comptes Home a été mise en place sur la 1ère baie de disques.

 

2. Les transferts de données

Pour travailler sur la plate-forme, il va falloir y copier vos codes sources et/ou données de façon sécurisée. Sous Linux vous disposez essentiellement de 2 commandes de base : scp et rsync.

  • scp peut être utilisé si vous transférez quelques fichiers ou répertoires de tailles modestes.
  • rsync doit être privilégié pour de lourds transferts qui risquent d'être interrompus. En effet rsync permet de synchroniser la destination avec la source, il n'y aura donc que les fichiers modifiés ou nouvellement créés dans le(s) répertoire(s) source(s) qui seront transmis. En cas de plantage on ne retransmet donc pas tout, et au final on bénéficie d'une synchro.

L'utilisation du mode compressé des 2 commandes est par ailleurs à privilégier.

Pour les utilisateurs Windows et OS X, vous trouverez des équivalents ... et pour les adeptes du mode graphique il existe par exemple Winscp, FileZilla et Cyberduck. Il faudra configurer ces applications pour travailler en ssh sur le port 22.

 

2.1. Scp

Scp utilise par défaut ssh sur le port 22, il n'y a donc rien à préciser pour le cryptage. l'option -C permet de travailler en mode compréssé et l'option -r indique une copie récursive.
Pour copier l'ensemble d'un répertoire sur le frontal depuis votre poste vous pouvez lancer la commande :

# scp -Cr ~/chemin/vers/votre/répertoire/local votreIdentifiant@calculco.univ-littoral.fr:/chemin/vers/votre/répertoire/destination

Ici il s'agit d'une copie dans votre arborescence "Home" de la plate-forme, pour une copie dans l'espace "Data" il faudra spécifier le chemin entier :

# scp -Cr ~/chemin/vers/votre/répertoire/local votreIdentifiant@calculco.univ-littoral.fr:/nfs/data/votreLabo/votreIdentifiant/chemin/vers/votre/répertoire/destination

bulb  Afin de ne pas avoir à spécifier à chaque fois votre Identifant calculco (différent de celui sur votre poste local) et le nom complet de la plate-forme, vous pouvez par exemple mettre les lignes suivantes dans le fichier ~/.ssh/config de votre poste :
......................
Host calculco
        Hostname calculco.univ-littoral.fr
        User votreIdentifiant
....................

Vous pourrez alors remplacer votreIdentifiant@calculco.univ-littoral.fr par calculco dans les deux commandes précédentes. Par ailleurs, vous pourrez ainsi vous connecter en ne tapant que la commande ssh calculco.

 

Attention avec cette commande : le principal problème réside dans le fait que scp suit les liens symboliques dans son mécanisme de copie. Cela peut mener à copier un volume important (voire infini) de données et ainsi saturer un espace disque si on n'y prête pas attention. A utiliser donc avec précaution !

 

2.2. Rsync

Rsync permet de copier tout en gérant la synchronisation de la destination sur la source. On ne recopie donc que ce qui est nécessaire. Rsync permet de préserver les liens symboliques et de procéder également en mode compressé et sécurisé. La commande à lancer est la suivante :

# rsync -e ssh -azuv source destination

-e ssh permet de sécuriser la copie via ssh
-a travaille en mode archive, cela permet de ne pas suivre les liens symboliques et de préserver les permissions des fichiers.
-z active la compression avant le mécanisme de copie.
-v pour le mode verbeux.

Pour synchroniser un répertoire de développement de votre pc sur la plate-forme, il suffit alors de lancer (en supposant que vous ayez renseigné votre fichier ~/.ssh/config) la commande :

# rsync -e ssh -azuv ~/chemin_source/monprojet calculco:/chemin_destination

 A l'inverse, pour récupérer sur votre PC des résultats stockés sur la plate-forme, la commande aura la forme suivante :

# rsync -e ssh -azuv calculco:/chemin_vers/mes_resultats /chemin/de/stockage/local

 

2.3. Sshfs

Vous pouvez aussi décider de travailler directement sur les fichiers stockés sur la plate-forme depuis votre poste client. Pour cela il suffit de monter le système de fichiers distant à travers une connexion sécurisée SSH.

Sous Linux, il faut installer les paquets fuse et sshfs. Pour monter votre répertoire Home de la plate-forme sur le répertoire "calculcoHome" du répertoire courant, procédez de la façon suivante :

# mkdir ./calculcoHome
# sshfs votreIdentifiant@calculco.univ-littoral.fr: calculcoHome -o follow_symlinks

L'option follow_symlinks permet d'accéder à vos liens symboliques à travers sshfs.
Vous pouvez alors travailler localement dans ce répertoire sur les fichiers de la plate-forme avec les droits de votre "utilisateur calculco".
Pour démonter le système de fichiers :

# fusermount -u calculcoHome

 

bulb  En cas de montage instable les options -o ServerAliveInterval et -o reconnect peuvent être intéressantes.
L'erreur "Failed to open /dev/fuse : Permission denied" indique que l'utilisateur n'appartient pas au groupe fuse.

Sous Windows vous pouvez utiliser win-sshfs tandis que sous Mac OSX vous pouvez vous rendre sur osxfuse site pour mettre en place ce mécanisme.

 

2.4. Logiciel de gestion de versions

La meilleure méthode, lorsque vous travaillez sur un projet (notamment à plusieurs), est d'utiliser un logiciel de gestion de versions. Il permettra, via un serveur central, de récupérer les dernières versions de vos sources, d'en garder un historique, d'y travailler à plusieurs ... Les plus connus sont svn et git.

A l'université vous disposez de Gogs, une plate-forme de service Git auto-hébergée. Vous pouvez y créer un compte automatiquement en utilisant vos identifiant et mot de passe CALCULCO ou ceux de la messagerie ULCO. Attention n'utilisez qu'une source d'authentification sinon vous disposerez de 2 comptes.

 

 

suite  Environnement logiciel