slurm
Slurm
Установка и настройка кластера Slurm на серверах RHEL/CentOS или Debian/Ubuntu
Переменные роли
Все переменные являются необязательными. Если ничего не задано, роль установит клиентские программы Slurm, munge и
создаст slurm.conf
с единственным узлом localhost
и парцией debug
.
Смотрите значения по умолчанию и примерные сценарии для примеров.
Для различных ролей, которые может выполнять узел Slurm, вы можете задать имена групп или добавить значения в список slurm_roles
.
- группа slurmservers или
slurm_roles: ['controller']
- группа slurmexechosts или
slurm_roles: ['exec']
- группа slurmdbdservers или
slurm_roles: ['dbd']
Общие параметры конфигурации для slurm.conf указываются в slurm_config
, хеш. Ключи — это имена опций конфигурации Slurm.
Партиции и узлы указываются в slurm_partitions
и slurm_nodes
, списках хешей. Единственный обязательный ключ в хеше — это
name
, который становится PartitionName
или NodeName
для этой строки. Все остальные ключи/значения помещаются на строку
той партиции или узла.
Опции для дополнительных конфигурационных файлов acct_gather.conf,
cgroup.conf и gres.conf
могут быть указаны в slurm_acct_gather_config
, slurm_cgroup_config
(оба — хеши) и
slurm_gres_config
(список хешей) соответственно.
Установите slurm_upgrade
в true, чтобы обновить установленные пакеты Slurm.
Вы можете использовать slurm_user
(хеш) и slurm_create_user
(логическое значение) для предварительного создания пользователя Slurm, чтобы uid совпадали.
Обратите внимание, что эта роль требует прав root, поэтому включите become
либо глобально в вашем сценарии/в командной строке, либо
только для роли, как показано ниже.
Зависимости
Нет.
Примерные сценарии
Минимальная настройка, все службы на одном узле:
- name: Slurm all in One
hosts: all
vars:
slurm_roles: ['controller', 'exec', 'dbd']
roles:
- role: galaxyproject.slurm
become: True
Более обширный пример:
- name: Slurm execution hosts
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
Лицензия
MIT
Информация об авторе
ansible-galaxy install galaxyproject/ansible-slurm