Back
Featured image of post Slurm

Slurm

need to be sloved

守护进程slurmctld 从systemctl 启动一直timeout,只能手动启动 尝试用init.d 启动

Slurm 简介

Slurm是一个开源,容错,高度可扩展的集群管理和作业调度系统,适用于大型和小型Linux集群。Slurm不需要对其操作进行内核修改,并且相对独立。作为集群工作负载管理器,Slurm有三个关键功能。首先,它在一段时间内为用户分配对资源(计算节点)的独占和/或非独占访问,以便他们可以执行工作。其次,它提供了一个框架,用于在分配的节点集上启动,执行和监视工作(通常是并行作业)。最后,它通过管理待处理工作的队列来仲裁资源争用。

架构

如图1所示,Slurm包含在每个计算节点上运行的slurmd守护程序和在管理节点上运行的中央slurmctld守护程序(带有可选的故障转移双胞胎)。该slurmd守护程序提供容错层次通信。用户命令包括:sacct,salloc,sattach,sbatch,sbcast,scancel,scontrol, sinfo,SMAP,SQUEUE,SRUN,strigger 和sview。所有命令都可以在群集中的任何位置运行。

安装

slurm introduction

sudo apt install munge
sudo apt install slurm-wlm

在节点上配置启动munge

Install MUNGE for authentication. Make sure that all nodes in your cluster have the same munge.key. Make sure the MUNGE daemon, munged, is started before you start the Slurm daemons.

在主节点运行create-munge-key,再 systemctl enable munge 打开munge.拷贝/etc/munge/munge.key 到各个计算节点。

munge -n
munge -n | unmunge
munge -n | ssh cityu14 unmunge

配置slurm

确保所有节点有同一个用户名,且他们的uid和gid都是统一的。

usermod -u 1006 slurm
groupmod -g 1006 slurm

slurm.conf移动到/etc/slurm-llnl/目录。

sudo slurmctld -c -D
sudo slurmd -D

给配置文件中的存储数据文件夹,更改权限

sudo mkdir /var/run/slurm-llnl/
sudo chown slurm /var/run/slurm-llnl
sudo mkdir /var/spool/slurm-llnl
sudo chown slurm /var/spool/slurm-llnl

如果修改了配置文件,可以使用scontrol reconfig 这两个守护进程看看有没有报错,没有就可以在后台开启slurm了

sudo systemctl enable slurmctld
sudo systemctl enable slurmd

部署全局文件系统

参考之前的NFS设置 注意防火墙规则,即使只有内网权限的ip地址,也需要注意端口是否开放

sudo apt install firewalld
firewall-cmd --query-port=6817/tcp  #查看是否打开这个端口
firewall-cmd --add-port=6817/tcp --permanent #打开这个端口
firewall-cmd --reload

slurm 使用

Slurm命令 功能
sinfo 查看集群分区状态
squeue 查看作业队列
srun, salloc 交互式运行作业
sbatch 提交作业
scancel 取消作业
scontrol 查看和修改作业参数
sacct 查看已完成作业

module 环境变量管理

sudo apt install environment-modules

注意,必须重新打开窗口才可以使用 设置module path

export MODULEPATH=$MODULEPATH:/sec/NFS_share/moduleFile

sbatch 提交任务