galaxyproject.slurm

Slurm

Installer et configurer un cluster Slurm sur des serveurs RHEL/CentOS ou Debian/Ubuntu

Variables de rôle

Toutes les variables sont optionnelles. Si rien n'est défini, le rôle installera les programmes clients Slurm, munge, et créera un slurm.conf avec un seul nœud localhost et une partition debug. Voir les par défaut et exemples de playbooks pour plus d'exemples.

Pour les différents rôles qu'un nœud Slurm peut jouer, vous pouvez soit définir des noms de groupe, soit ajouter des valeurs à une liste, slurm_roles.

  • groupe slurmservers ou slurm_roles: ['controller']
  • groupe slurmexechosts ou slurm_roles: ['exec']
  • groupe slurmdbdservers ou slurm_roles: ['dbd']

Les options de configuration générales pour slurm.conf vont dans slurm_config, un hash. Les clés sont des noms d'options de configuration Slurm.

Les partitions et nœuds vont dans slurm_partitions et slurm_nodes, des listes de hashes. La seule clé requise dans le hash est name, qui devient PartitionName ou NodeName pour cette ligne. Toutes les autres clés/valeurs sont ajoutées à la ligne de cette partition ou nœud.

Les options pour les fichiers de configuration supplémentaires acct_gather.conf, cgroup.conf et gres.conf peuvent être spécifiées dans slurm_acct_gather_config, slurm_cgroup_config (tous deux des hashes) et slurm_gres_config (liste de hashes) respectivement.

Définissez slurm_upgrade à true pour mettre à jour les paquets Slurm installés.

Vous pouvez utiliser slurm_user (un hash) et slurm_create_user (un bool) pour pré-créer un utilisateur Slurm afin que les uid correspondent.

Notez que ce rôle nécessite un accès root, donc activez become soit globalement dans votre playbook / sur la ligne de commande, soit juste pour le rôle comme indiqué ci-dessous.

Dépendances

Aucune.

Exemples de Playbooks

Configuration minimale, tous les services sur un nœud :

- name: Slurm tout en un
  hosts: all
  vars:
    slurm_roles: ['controller', 'exec', 'dbd']
  roles:
    - role: galaxyproject.slurm
      become: True

Exemple plus complet :

- name: Nœuds d'exécution Slurm
  hosts: all
  roles:
    - role: galaxyproject.slurm
      become: True
  vars:
    slurm_cgroup_config:
      CgroupMountpoint: "/sys/fs/cgroup"
      CgroupAutomount: yes
      ConstrainCores: yes
      TaskAffinity: no
      ConstrainRAMSpace: yes
      ConstrainSwapSpace: no
      ConstrainDevices: no
      AllowedRamSpace: 100
      AllowedSwapSpace: 0
      MaxRAMPercent: 100
      MaxSwapPercent: 100
      MinRAMSpace: 30
    slurm_config:
      AccountingStorageType: "accounting_storage/none"
      ClusterName: cluster
      GresTypes: gpu
      JobAcctGatherType: "jobacct_gather/none"
      MpiDefault: none
      ProctrackType: "proctrack/cgroup"
      ReturnToService: 1
      SchedulerType: "sched/backfill"
      SelectType: "select/cons_res"
      SelectTypeParameters: "CR_Core"
      SlurmctldHost: "slurmctl"
      SlurmctldLogFile: "/var/log/slurm/slurmctld.log"
      SlurmctldPidFile: "/var/run/slurmctld.pid"
      SlurmdLogFile: "/var/log/slurm/slurmd.log"
      SlurmdPidFile: "/var/run/slurmd.pid"
      SlurmdSpoolDir: "/var/spool/slurmd"
      StateSaveLocation: "/var/spool/slurmctld"
      SwitchType: "switch/none"
      TaskPlugin: "task/affinity,task/cgroup"
      TaskPluginParam: Sched
    slurm_create_user: yes
    slurm_gres_config:
      - File: /dev/nvidia[0-3]
        Name: gpu
        NodeName: gpu[01-10]
        Type: tesla
    slurm_munge_key: "../../../munge.key"
    slurm_nodes:
      - name: "gpu[01-10]"
        CoresPerSocket: 18
        Gres: "gpu:tesla:4"
        Sockets: 2
        ThreadsPerCore: 2
    slurm_partitions:
      - name: gpu
        Default: YES
        MaxTime: UNLIMITED
        Nodes: "gpu[01-10]"
    slurm_roles: ['exec']
    slurm_user:
      comment: "Gestionnaire de charge de travail Slurm"
      gid: 888
      group: slurm
      home: "/var/lib/slurm"
      name: slurm
      shell: "/usr/sbin/nologin"
      uid: 888

Licence

MIT

Informations sur les auteurs

Voir les contributeurs sur GitHub

À propos du projet

Install and manage the Slurm Workload Manager

Installer
ansible-galaxy install galaxyproject.slurm
Licence
Unknown
Téléchargements
14.9k
Propriétaire
Galaxy is an open, web-based platform for data-intensive research.