galaxyproject.slurm
Slurm
在 RHEL/CentOS 或 Debian/Ubuntu 服务器上安装和配置 Slurm 集群
角色变量
所有变量都是可选的。如果没有设置,角色将安装 Slurm 客户端程序、munge,并创建一个包含单个 localhost
节点和 debug
分区的 slurm.conf
文件。有关示例,请参见 defaults 和 示例剧本。
对于 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 一体化安装
hosts: all
vars:
slurm_roles: ['controller', 'exec', 'dbd']
roles:
- role: galaxyproject.slurm
become: True
更详细的示例:
- name: Slurm 执行主机
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 工作负载管理器"
gid: 888
group: slurm
home: "/var/lib/slurm"
name: slurm
shell: "/usr/sbin/nologin"
uid: 888
许可证
MIT