galaxyproject.slurm

Slurm

Installieren und Konfigurieren eines Slurm-Clusters auf RHEL/CentOS oder Debian/Ubuntu-Servern

Rollenvariablen

Alle Variablen sind optional. Wenn nichts festgelegt ist, installiert die Rolle die Slurm-Client-Programme, Munge und erstellt eine slurm.conf mit einem einzelnen Knoten localhost und einer debug Partition. Siehe die Standardeinstellungen und Beispiel-Playbooks für Beispiele.

Für die verschiedenen Rollen, die ein Slurm-Knoten übernehmen kann, können Sie entweder Gruppennamen setzen oder Werte in eine Liste slurm_roles hinzufügen.

  • Gruppe slurmservers oder slurm_roles: ['controller']
  • Gruppe slurmexechosts oder slurm_roles: ['exec']
  • Gruppe slurmdbdservers oder slurm_roles: ['dbd']

Allgemeine Konfigurationsoptionen für slurm.conf werden in slurm_config, einem Hash, untergebracht. Die Schlüssel sind die Namen der Slurm-Konfigurationsoptionen.

Partitionen und Knoten gehen in slurm_partitions und slurm_nodes, Listen von Hashes. Der einzige erforderliche Schlüssel im Hash ist name, der zum PartitionName oder NodeName für diese Zeile wird. Alle anderen Schlüssel/Werte werden in die Zeile der Partition oder des Knotens eingefügt.

Optionen für die zusätzlichen Konfigurationsdateien acct_gather.conf, cgroup.conf und gres.conf können in slurm_acct_gather_config, slurm_cgroup_config (beide Hashes) und slurm_gres_config (Liste von Hashes) angegeben werden.

Setzen Sie slurm_upgrade auf true, um die installierten Slurm-Pakete zu aktualisieren.

Sie können slurm_user (ein Hash) und slurm_create_user (ein Boolescher Wert) verwenden, um einen Slurm-Benutzer im Voraus zu erstellen, damit die UIDs übereinstimmen.

Bitte beachten Sie, dass diese Rolle Root-Zugriff erfordert, also aktivieren Sie become entweder global in Ihrem Playbook / in der Befehlszeile oder nur für die Rolle wie unten gezeigt.

Abhängigkeiten

Keine.

Beispiel-Playbooks

Minimale Konfiguration, alle Dienste auf einem Knoten:

- name: Slurm alles in einem
  hosts: all
  vars:
    slurm_roles: ['controller', 'exec', 'dbd']
  roles:
    - role: galaxyproject.slurm
      become: True

Umfangreicheres Beispiel:

- name: Slurm Ausführungsserver
  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: "Slurm Workload-Manager"
      gid: 888
      group: slurm
      home: "/var/lib/slurm"
      name: slurm
      shell: "/usr/sbin/nologin"
      uid: 888

Lizenz

MIT

Autoreninformationen

Beitragende auf GitHub anzeigen

Über das Projekt

Install and manage the Slurm Workload Manager

Installieren
ansible-galaxy install galaxyproject.slurm
Lizenz
Unknown
Downloads
14.9k
Besitzer
Galaxy is an open, web-based platform for data-intensive research.