galaxyproject.slurm

Slurm

Zainstaluj i skonfiguruj klaster Slurm na serwerach RHEL/CentOS lub Debian/Ubuntu

Zmienna Roli

Wszystkie zmienne są opcjonalne. Jeśli nic nie jest ustawione, rola zainstaluje programy klienckie Slurm, munge i stworzy plik slurm.conf z jednym węzłem localhost oraz partycją debug. Zobacz domyślne oraz przykładowe playbooki dla przykładów.

Dla różnych ról, jakie może pełnić węzeł Slurm, możesz albo ustawić nazwę grupy, albo dodać wartości do listy slurm_roles.

  • grupa slurmservers lub slurm_roles: ['controller']
  • grupa slurmexechosts lub slurm_roles: ['exec']
  • grupa slurmdbdservers lub slurm_roles: ['dbd']

Ogólne opcje konfiguracyjne dla slurm.conf umieszczamy w slurm_config, jako hasz. Klucze to nazwy opcji konfiguracyjnych Slurm.

Partyje i węzły umieszczone są w slurm_partitions i slurm_nodes, listach haszy. Jedynym wymaganym kluczem w haszu jest name, który stanie się PartitionName lub NodeName dla danej linii. Wszystkie inne klucze/wartości są umieszczane w linii dla danej partycji lub węzła.

Opcje dla dodatkowych plików konfiguracyjnych acct_gather.conf, cgroup.conf i gres.conf można określić w slurm_acct_gather_config, slurm_cgroup_config (obydwa jako hasze) oraz slurm_gres_config (lista haszy) odpowiednio.

Ustaw slurm_upgrade na true, aby zaktualizować zainstalowane pakiety Slurm.

Możesz użyć slurm_user (hasz) i slurm_create_user (bool) do wcześniejszego utworzenia użytkownika Slurm, aby identyfikatory UID się zgadzały.

Zauważ, że ta rola wymaga dostępu roota, więc włącz become globalnie w swoim playbooku lub w linii poleceń albo tylko dla tej roli jak pokazano poniżej.

Zależności

Brak.

Przykładowe Playbooki

Minimalna konfiguracja, wszystkie usługi na jednym węźle:

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

Bardziej rozbudowany przykład:

- name: Slurm hosts wykonawcze
  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: "Menadżer obciążenia Slurm"
      gid: 888
      group: slurm
      home: "/var/lib/slurm"
      name: slurm
      shell: "/usr/sbin/nologin"
      uid: 888

Licencja

MIT

Informacje o autorach

Zobacz współautorów na GitHubie

O projekcie

Install and manage the Slurm Workload Manager

Zainstaluj
ansible-galaxy install galaxyproject.slurm
Licencja
Unknown
Pobrania
14.9k
Właściciel
Galaxy is an open, web-based platform for data-intensive research.