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 les logiciels Bitvise (téléchargeable ici) ou PuTTY, librement téléchargeable ici (utiliser le port 22 en ssh). À partir de Windows 10, un client ssh interne est activable en suivant la procédure indiquée ici. Installer «Windows Sub Linux» (WSL) est également 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") :
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.
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, cf note windiws)
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
remarque: si la commande ssh-copy-id n'est pas disponible, la commande suivante est une alternative:
# (cas ed25519) cat ~/.ssh/id_ed25519.pub | ssh Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. 'cat >> .ssh/authorized_keys'
#(cas id_rsa) cat ~/.ssh/id_rsa.pub | ssh Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. 'cat >> .ssh/authorized_keys'
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
Pour générer la paire de clés et transférer la clé publique sur le serveur, vous pouvez utiliser l'utilitaire "PuTTY
À partir de windows 10 les utilisateurs peuvent se connecter avec des clés ssh en suivant les instructions indiquées là.
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 via nfs)
Pour stocker vos données et vos résultats de calcul, vous disposez de 2 espaces disque plus volumineux : /nfs/data/unprotected et /nfs/data/protected. L'arborescence sous ces montages est la même que celle pratiquée sur l'espace contenant vos "home directory".
Ils sont partagés pour tous les utilisateurs et sont montés sur tous les noeuds. Il n'y a pas de quota individuel sur ces espaces de données mais une limitation par laboratoire.
Note: l'espace /nfs/data/protected est sauvegardé (synchronisé) toutes les nuits. Son volume est environ 10% du volume «unprotected» du laboratoire considéré.
L'espace /nfs/data/protected ne doit pas être utilisé comme espace de travail pour lancer vos travaux. Il ne doit être utilisé uniquement que pour sauvegarder vos résultats / données / documents importants que vous ne voulez absolument pas perdre.
1.3.3. Un espace spécial I/O (workdir via BeeGFS) performant
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. Les données sont supprimées systématiquement après 2 mois.
Pensez également à vérifier de temps à autre, quand vous les utilisez, les occupations totales grâce à la commande "df" :
# df -h | grep data
pcsdata:/unprotectedData/lisic 167T 19T 145T 12% /nfs/data/unprotected/lisic
pcsdata:/unprotectedData/udsmm 23T 1,0M 23T 1% /nfs/data/unprotected/udsmm
...
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/unprotected/votreLabo/votreIdentifiant
203G /nfs/data/unprotected/votreLabo/votreIdentifiant/
1.3.4. Purge des fichiers temporaires ( /scratch et /workdir )
Des scripts journaliers ou hebdomadaires suppriment les fichiers anciens, respectivement 45 jours et 6 mois pour les espaces scratch locaux et l'espace BeeGFS.
L'utilisateur peut vérifier la liste ainsi que date & heure de suppression des ses fichiers avec le script:
# purgelist
================================================= la prochaine purge des espaces disques /scratch est programmé le 12/06/2021 à 02:30, la prochaine purge de l'espace disque /workir est programmé le 17/06/2021 à 03:00
...
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 /workdir (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.
Seuls les espaces /nfs/home et /nfs/data/protected sont sauvegardés. Le pôle ne saurait être tenu responsable de la perte de vos données placées dans les autres espaces disponibles.
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 Bitvise (recommandé), 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/[un]protected/votreLabo/votreIdentifiant/chemin/vers/votre/répertoire/destination
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 (Linux ou Mac) :
......................
Host calculco
Hostname calculco.univ-littoral.fr
User votreIdentifiant
.................... Si en plus, vous indiquez votre clef privée comme suit:
......................
Host calculco
Hostname calculco.univ-littoral.fr
User votreIdentifiant
IdentityFile /votreHomePC/loginPerso/.ssh/id_ed25519
....................
alors, vous rentrez plus votre mot de passe
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
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.