Description | Installation de Slurm sur centos 7 |
---|---|
Supports de cours liés | HPC Administration Module2 |
Authors | Ndomassi TANDO (ndomassi.tando@ird.fr) |
Creation Date | 23/09/2019 |
Last Modified Date | 23/09/2019 |
Sommaire
- Definition
- Authentification et bases de données
- Installation de Slurm
- Configuration des limites d’utilisation
- Liens
- License
Definition
Slurm is an open source, fault-tolerant, and highly scalable cluster management and job scheduling system for large and small Linux clusters.
https://slurm.schedmd.com/
Authentification et bases de données:
Créer les utilisateurs pour munge et slurm:
Slurm et Munge requièrent d’avoir les mêmes UID et GID sur chaque noeud du cluster. Pour tous les noeuds, lancer les commandes suivantes avant d’installer Slurm ou Munge:
Installation de Munge pour l’authentification:
Créer une clé d’authentification Munge:
Copier la clé d’authentification sur chaque noeud:
Mettre les droits:
Activer et démarrer le service munge service:
Tester munge depuis la machine maître:
installation et configuration de Mariadb
Installer mariadb avec la commande:
Activer et démarrer le service mariadb:
sécuriser l’installation:
Mettre en place un mot de passe root pour mariadb:
Modifier la configuration innodb :
Mettre des valeurs plus importantes pour innodb_lock_wait_timeout,innodb_log_file_size:
Créer le fichier /etc/my.cnf.d/innodb.cnf
avec les lignes suivantes:
Pour mettre en place ces changements, il faut redémarrer et supprimer les fichiers de logs:
Installation de Slurm:
Installer les pré-requis:
Récupérer le tarball
Créer les RPMs:
Les RPMs sont situés dans /root/rpmbuild/RPMS/x86_64/
Installer slurm sur la machine maître et les noeuds
Dans le répertoire des RPMs, lancer la commande:
Créer et configurer la base de données slurm_acct_db:
Configurer la slurm db backend:
Modifier /etc/slurm/slurmdbd.conf
avec les paramètres suivants:
Ensuite activer et lancer le service slurmdbd
Cela permettra de créer les tables de la base slurm_acct_db.
Configuration du fichier /etc/slurm/slurm.conf:
Lancer la commande lscpu
sur chacun des noeuds pour avoir des informations sur les processeurs.
Aller sur http://slurm.schedmd.com/configurator.easy.html pour créer un fichier de configuration pour Slurm.
Modifier les paramètres suivants dans /etc/slurm/slurm.conf
en fonction des caractéristiques de votre cluster:
Il faut maintenant envoyer les fichiers slurm.conf et slurmdbd.conf sur tous les noeuds de calcul.
Créer les répertoires pour accueillir les logs
Sur la machine maître:
Sur les noeuds de calcul:
tester la configuration:
On doit obtenir quellque chose comme:
Lancer le service slurmd sur les noeuds de calcul:
Lancer le service slurmctld sur la machine maître:
Changer l’état d’un noeud de down à idle
Où nodeX est le nom du noeud.
Modification du fichier de configuration /etc/slurm/slurm.conf:
Lorsque l’on modifie le fichier /et/slurm/slurm.conf
il faut propager ce fichier sur tous les noeuds puis taper la commande suivante sur la machine maître:
Configurer les limites d’utilisation
Modifier le fichier /etc/slurm/slurm.conf
Modifier le paramètre AccountingStorageEnforce
avec:
Copier le fichier modifié sur les noeuds
Redémarrer le service slurmctld pour mettre en place ces modifications:
Créer un cluster:
Le cluster est le nom que l’on veut donner au cluster slurm.
Dans le fichier /etc/slurm/slurm.conf
, changer la ligne suivante:
Pour mettre en place des limites d’utilisation, il faut créer un accounting cluster
avec la commande:
Créer un accounting account
Un accounting account
est un group créer sous Slurm qui permet à l’administrateur de gérer les droits des utilisateurs pour utiliser Slurm.
Exemple: création d’un groupe pour regrouper les membre de l’équipe bioinfo:
Création d’un groupe pour permettre aux utilisateurs d’utiliser la parttion gpu
Créer un user account
En positionnant la valeur limts dans le fichier /etc/slurm/slurm.conf
, on doit créer des utilisateurs slurm pour que ceux-ci puissent lancer des jobs.
Modifier un user account pour le rajouter à un nouveau accounting account:
Modifier la description d’un noeuds de calcul
Ajouter le montant de la partition /scratch
Dans le fichier /etc/slurm/slurm.conf
Modifier la variable TmpFS avec la valeur de scratch
Ajouter la valeur TmpDisk pour /scratch
Le TmpDisk
est la taille de la partition /scratch en Mo, à rajouter dans la ligne commençant par NodeName
Par exemple, pour un noeud avec 3To de disque:
Modifier une définition de partition
Une partition est une file d’attente comportant plusieurs noeuds et de nombreuses caractéristiques en terme de limites de temps, de mémoire disponible etc…
Une partition permet de prioriser les jobs entre utilisateurs.
Modifier la ligne commençant par PartitionName
dans le fichier /etc/slurm/slurm.conf
.
Plusieurs options sont disponibles selon ce qu’on veut faire
Ajouter une limitation de temps pour les running jobs (MaxTime)
Une limitation de temps sur les partitions permet à Slurm de gérer les priorités entre les jobs sur le même noeud.
On peut l’ajouter à la ligne commençant par PartitionName
avec le montant en minutes
Par exemple pour une partition avec 1 jour maximum, la définition de la partition sera:
Ajouter une mémoire maximum par CPU (MaxMemPerCPU)
Comme la mémoire est une ressource consommable, MaxMemPerCPU sert non seulement à protéger la mémoire du noeud mais augmentera automatiquement le nombre de coeurs maximum quand c’est possible.
On doit l’ajouter sur la ligne PartitionName
avec le montant de la mémoire en Mo.
MaxMemPerCPU est normalement fixé avec le rapport MaxMem/NumCores
Par exemple 2Go/CPU, la définition de la partition sera
Liens
- Related courses : HPC Trainings