Lustre

De Wiki de Calcul Québec
Aller à : Navigation, rechercher
Autres langues :anglais 100% • ‎français 100%

Le système de fichiers Lustre

Lustre est un système de fichiers distribué de haute performance, permettant aux usagers de Calcul Québec de réaliser des opérations d'entrées-sorties en parallèle avec un fort débit. Il y a cependant quelques précautions à prendre si on veut obtenir un rendement maximal. Lustre est le système de fichier utilisé sur Colosse, Mammouth (Mp2 et Ms2) et Cottos.

Stripe count et stripe size

Pour chaque fichier ou répertoire, il est possible de modifier les paramètres stripe size et stripe count. stripe size est la quantité de données qui est ajoutée à la fois à un fichier lorsqu'on a besoin d'allouer plus d'espace. stripe count est le nombre de disques sur lesquels les données sont réparties.

Il est possible de connaître la valeur de ces paramètres pour un fichier ou un répertoire donnée à l'aide de la commande

[nom@serveur $] lfs getstripe ''/path/to/file''


De même, il est possible de modifier les paramètres pour un répertoire donné à l'aide de la commande

[nom@serveur $] lfs setstripe -c ''count'' -s ''size'' ''/path/to/dir''


Par exemple, si count=8 et size=4m, alors le fichier sera réparti sur huit disques différents et grossira par incréments de 4 Mo chaque fois que cela sera nécessaire.

Il est impossible de changer le stripe count ou le stripe size d'un fichier existant. Il faut le copier (pas déplacer) vers un répertoire avec des paramètres différents. Pour créer un fichier vide avec un stripe count et un stripe size donné sans modifier les paramètres du répertoire, vous pouvez exécuter un lfs setstripe sur un fichier non existant. Il sera créé, vide, avec les paramètres donnés.

Augmenter le stripe count peut augmenter les performances d'un programme parallèle, mais rend aussi le fichier plus vulnérable aux défaillances matérielles.

Lorsqu'un programme parallèle a besoin de lire un petit fichier (< 1 Mo), par exemple un fichier de configuration, il est plus efficace de placer ce fichier sur un seul disque (stripe count=1), de le lire avec le processus maître, et ensuite de l'envoyer aux autres nœuds de calcul à l'aide d'un MPI_Broadcast ou d'un MPI_Scatter.

Lorsque l'on manipule de gros fichiers de données, le mieux est habituellement d'utiliser un stripe count aussi grand que le nombre de processus. Quant au stripe size, il sera habituellement de la même taille que le tampon de données qui est lu ou écrit par chaque processus. Par exemple, si chaque processus lit 1 Mo de données à la fois, alors un stripe size de 1 Mo sera probablement l'idéal. Si vous n'avez pas de bonne raison de modifier cette taille, nous vous recommandons de la laisser à sa taille par défaut, qui a été optimisée pour des fichiers de grande taille. Notez qu'il ne faut jamais utiliser un stripe size qui ne soit pas un multiple entier de 1 Mo.

De manière générale, il faut réduire au maximum les ouvertures et fermetures de fichiers. Il sera donc préférable d’agglomérer toutes les données dans un seul fichier plutôt que d'écrire une multitude de petits fichiers. Il sera aussi grandement préférable d'ouvrir le fichier une seule fois au début de l'exécution et de le refermer à la fin, plutôt que de l'ouvrir et de le fermer chaque fois que l'on veut y ajouter de nouvelles données, à l'intérieur d'une même exécution.

Voir aussi

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Ressources de Calcul Québec
Outils
Partager