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