Gestion des données sur la baie de disques¶
Les chemins, les quotas, les conseils et commandes pour gérer au mieux ses données de calcul sur Austral
Introduction¶
Les données du calculateur Austral sont stockées sur une baie de disques accessible sur l'ensemble du cluster grâce à un système de fichiers Lustre. La baie est composée d'un pool flash
de 1Po de stockage en technologie de flash et d'un pool disk
de 1Po de stockage en technologie disques rotatifs mécaniques. Les performances mesurées lors de la livraison sont de 283 Go/s en lecture et 163 Go/s en écriture pour l'espace par défaut (pool flash).
A la saturation de l'espace flash
, les données sont automatiquement migrées sur l'espace disk
moins performant.
Ces deux espaces forment un système de fichiers unique présenté sur les nœuds du calculateur Austral, de manière transparente pour les utilisateurs.
Rôles des arborescences :
/home
contient les dossiers d'accueil des utilisateurs./dlocal
contient les dossiers temporaires des calculs (/dlocal/run
) et certains dossiers de calcul permanents (/dlocal/home
) quand le besoin est qualifié./soft
contient les logiciels mis à disposition par le CRIANN
Attention : aucune sauvegarde n'est effectuée sur les données utilisateurs. Pensez à rapatrier vos codes et vos données dans vos laboratoires.
Les quotas¶
Afin d'éviter une saturation de la baie de disque en volumétrie et en nombre d'inodes, il a été mis en place des quotas à deux niveaux :
- par identifiant sur la totalité de la baie de disques
- volumétrie : quota strict de 30To
- nombre d'inodes (lié au nombre de fichiers) : quota strict de 5M
- par arborescence indépendamment du propriétaire des fichiers
/home/projet_id/identifiant
: quota strict de 50Go, sur le dossier d'accueil de l'utilisateur/home/projet_id/PARTAGE
: quota strict de 200Go sur le dossier PARTAGE associé au projet- (optionnel)
/dlocal/home/projet_id
: quota informatif sans limitation. Cas particulier pour certains projets
Ces quotas peuvent être adaptés sur demande justifiée après du support (support@criann.fr).
Ménage dans /dlocal/run¶
Le CRIANN a fait le choix de décaler la suppression automatique des dossiers temporaires (/dlocal/run/<jobid>
). Cela permet d'enchaîner plusieurs calculs dans ce dossier.
Depuis le 2 juin 2025, un script automatique efface les dossiers temporaires /dlocal/home/<jobid>
45 jours après la fin du calcul associé <jobid>
. Ce comportement est identique à celui que vous connaissiez sur Myria.
Seuls les dossiers présents dans /dlocal/run/<jobid>
sont supprimés : le script ne touche pas aux arborescences /home
ou /dlocal/home/<jobid>
.
Nous vous recommandons de ne pas laisser de fichiers à conserver dans ces arborescences sous peine de les voir disparaître.
Si vous générez un grand nombre de fichiers lors de vos calculs, surveillez votre consommation d'inodes :
- supprimer vos données de
/dlocal/run/<jobid>
au fur et à mesure. - archivez certaines arborescences avec la commande
tar
: une archive = 1 fichier
L'archivage permet de simplifier et d'optimiser les transferts réseaux, notamment pour le rapatriement de vos données sur vos espaces de stockage dans vos laboratoires.
Cas particulier : OpenFoam¶
En fonction du paramétrage, les solveurs parallèles d'OpenFOAM peuvent fortement solliciter le système de fichiers parallèles d'Austral, en écrivant un tout petit fichier pour chaque tâche MPI à chaque pas de temps, ou fréquemment, et pour chaque variable. Le nombre de fichiers ainsi généré peut être très élevé.
Les post-traitements peuvent alors solliciter fortement le système de fichiers parallèle en relisant tous ces petits fichiers.
Pour rappel : le système de fichiers Lustre est optimisé pour les gros fichiers.
Bonne pratique : utilisation d'objets fonctionnels pour créer des images de post-traitement de sous-ensembles de données :
https://doc.openfoam.com/2306/tools/post-processing/function-objects/
En outre, le format de fichier agrégé (collated
) a été introduit dans OpenFOAM, dans lequel les données de chaque champ (et maille) décomposé sont agrégées dans un fichier unique qui est écrit (et lu) sur le processeur principal. Les fichiers sont stockés dans un répertoire unique appelé pocessors.
L’option -fileHandler collated
est disponible pour les lignes de commande de decomposePar
et des solveurs parallèles.
Voir par exemple « File input/output in parallel » sur :
https://doc.cfd.direct/openfoam/user-guide-v11/running-applications-parallel
et la page :
https://www.openfoam.com/news/main-news/openfoam-v1712/parallel
Volumétrie utilisée¶
Les commandes Lustre
étant complexes, le Criann a mis un place un script permettant un affichage simplifié et synthétique : cri_quota
Syntaxe : cri_quota
-h
: aide en ligne indiquant des options avancées
$ cri_quota
Quota information for user user_name (member of primary group project_id) : 2024-06-04 11:58:46
p.s: user and group types: across the whole storage
+------+----------------------------+---------+--------+----------+----------+-----------+-----------+-----------+------------+------------+-------------+
| type | name | blk_pct | used | blk_soft | blk_hard | blk_grace | inode_pct | files | inode_soft | inode_hard | inode_grace |
+------+----------------------------+---------+--------+----------+----------+-----------+-----------+-----------+------------+------------+-------------+
| user | user_name | 0.298% | 91.46G | 30T | 30T | - | 1.3% | 195 414 | 5 000 000 | 5 100 000 | - |
| path | /home/project_id/PARTAGE | - | 15.12T | - | - | - | - | 2 946 756 | - | - | - |
| path | /home/project_id/user_name | - | 27.35G | - | - | - | - | 147 056 | - | - | - |
+------+----------------------------+---------+--------+----------+----------+-----------+-----------+-----------+------------+------------+-------------+
Il reste possible d'interroger Lustre directement avec la commande lfs quota
. Pour plus d'informations sur cette commande consulter le manuel : man lfs-quota
Utilisation d'une arborescence sur le pool disk¶
Le pool par défaut dans les arborescences /home
, /dlocal/run
et /dlocal/home
est le pool flash
.
Pour éviter la saturation du pool flash
, dans le cas d'utilisation d'une grosse volumétrie, il peut être pertinent d'utiliser le pool disk
. Ce pool étant plus lent, nous vous conseillons de comparer les performances par rapport au pool flash
.
En cas de questions, contacter le support.
Création d'un dossier dans le pool disk¶
# Création
$ mkdir mon_dossier
$ lfs setstripe --pool disk mon_dossier
# Vérification
$ lfs getstripe -d --pool mon_dossier
disk
Remarque :
- pour choisir le pool
flash
, il suffit de spécifier--pool flash
- l'option
-d
indique que l'on souhaite connaître l'information pour le dossier et non son contenu.
Création des fichiers dans le pool disk¶
Le pool utilisé lors de la création d'un nouveau fichier ou dossier est déterminé par héritage du dossier où il est créé.
Si le fichier ou dossier est ensuite déplacé (mv
), il reste sur le pool initial. Par conséquence, pour changer de pool, recopiez vos fichiers dans le nouveau dossier ou archivez-désarchivez s'il s'agit d'une arborescence.
L'espace par défaut est le pool flash
mais en cas de remplissage important de la baie de disques, les fichiers les plus volumineux sont déplacés automatiquement vers le pool disk
sans changer leur emplacement dans l'arborescence. En cas de doute, vérifiez le pool utilisé pour vos fichiers.
Localisation d'un fichier (pool)¶
La commande lfs getstripe
permet de connaître le pool utilisé par un fichier.
Changement de pool d'un fichier ou d'une arborescence¶
Deux solutions pour changer un fichier de pool :
- le migrer avec la commande
lfs migrate
(voir ci-dessous) - le recopier (
cp
et nonmv
) dans un dossier déjà situé sur le pool souhaité puis supprimer l'original
La commande lfs migrate
, comme son nom l'indique, permet entre autre de migrer des fichiers d'un pool à l'autre. Celle-ci ne fonctionne pas sur les dossiers.
Deux solutions pour changer un dossier (sans son contenu) de pool :
- utiliser la commande
lfs setstripe
(voir ci-dessous) - le recopier dans un dossier déjà dans le pool souhaité
Pour changer une arborescence (dossier et contenu) de pool :
- les migrer en utilisant les deux commandes
lfs migrate
etlfs setstripe
(voir ci-dessous) - recopier (
cp -R
) dans un dossier déjà dans le pool souhaité - l'archiver/désarchiver (
tar
)
Il n'existe pas de commande unique accessible par les utilisateurs pour migrer une arborescence (dossier et contenu) : il faut combiner 2 commandes.
Exemples :
# Migration d'un fichier du pool disk au pool flash
$ lfs migrate --pool flash mon_fichier
# Migration d'un fichier du pool flash au pool disk
$ lfs migrate --pool disk mon_fichier
# Migration d'un dossier du pool disk au pool flash
$ lfs setstripe --pool flash mon_dossier
# Migration d'un dossier du pool flash au pool disk
$ lfs setstripe --pool disk mon_dossier
# Migration d'une arborescence (dossier et contenu) du pool flash au pool disk, en 2 temps
## Les dossiers
$ lfs find mon_dossier --pool disk --type f --print0 | xargs -n 1 -0 lfs migrate --pool flash
## Les fichiers
$ lfs find mon_dossier --pool disk --type d --print0 | xargs -n 1 -0 lfs setstripe --pool flash
Attention : ne pas modifier un fichier en cours de migration.
Le stripping¶
La baie de stockage est composée de plusieurs serveurs de données. Le stripping correspond à la répartition de données des fichiers sur ces différents serveurs. Il permet également de définir une taille de blocs.
Si vous souhaitez plus d'informations sur les commandes liée au striping, contactez le support (support@criann.fr).
Astuces et commandes utiles¶
Liste des dossiers temporaires pour un utilisateur¶
Liste des calculs dans une partition¶
Liste des calculs soumis dans la partition hpda
entre le 1/10/2023 et le 15/10/2023
Vous pouvez rajouter l'option -l
pour afficher plus d'informations.
Nombre de fichiers dans une arborescence¶
Pour connaître le nombre de fichiers dans une arborescence :
Recommandations¶
Dans les scripts de soumission...
Le rapatriement des données s'effectue avec une commande mv
pour rester sur le pool flash
et cp
pour recopier dans un dossier sur pool disk
.
Intérêt des gros fichiers
Si vous développez, privilégiez les fichiers volumineux avec des formats de type HDF5 plutôt qu'une multitude de petits fichiers. Vous gagnerez en performances sur les clusters de calcul.
Surveillance des quotas
Si vous générez un très grand nombre de fichiers, surveillez votre quota : vous pouvez l'afficher automatiquement lors de la connexion, en ajoutant la commande ma_conso
dans votre fichier ~/.bash_profile
.
Versioning
Nous vous encourageons fortement à utiliser les outils de versioning de vos établissements, tel que GIT. Renseignez-vous auprès de vos DSI.
Le client git
est installé sur les frontales, sans chargement de module.