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。所有命令都可以在群集中的任何位置运行。
安装
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