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
ansible-galaxy install galaxyproject.slurm