计算化学公社

标题: 最简单的CentOS及Rocky Linux一键安装slurm队列系统介绍 [打印本页]

作者
Author:
tangelhero    时间: 2024-9-13 20:46
标题: 最简单的CentOS及Rocky Linux一键安装slurm队列系统介绍
本帖最后由 tangelhero 于 2024-9-13 21:25 编辑

鉴于本人折腾slurm队列惨痛的经历,最后还是请教专业技术人员才搞定,特编写如下教程,供网友交流学习
主要测试的系统版本:Rocky Linux 8.1、CentOS 7.7和CentOS 7.9,其他版本Linux操作系统请大家自行测试
安装账户:root身份
主要参考网站:
(1)Centos及Ubuntu一键安装slurm(可下载一键安装脚本,注意下载评论区17#的rocky版本:SLURM_installation.sh,可适用于rocky和centos):http://bbs.keinsci.com/thread-36256-1-1.html
(2)从零开始安装slurm作业调度系统Slurm-Ubuntu{超详细}:https://zhuanlan.zhihu.com/p/675310476
(3)Automatic SLURM Build and Installation Script(国外一键安装slurm开发源,可下载不同版本的slurm):https://www.ni-sp.com/slurm-buil ... entos%207%20and%208
本文提供的附件说明:slurm-23.02.8.tar.bz2为slurm文件,SLURM_installation_rocky.sh为一键安装slurm脚本,适用于本人测试的Rocky和CentOS系统,slurm_sucsess.conf运行成功的配置文件,需要根据每个人的实际情况修改

下载slurm,如slurm-23.02.8.tar.bz2,将脚本附件SLURM_installation.sh与下载的slurm放在一起。
export VER=23.02.8 #进入终端,输入下载的本版号:export VER=23.02.8。
bash SLURM_installation.sh #在脚本目录下,运行一键安装脚本:bash SLURM_installation.sh

安装完成后修改slurm.conf配置文件,参考知乎修改slurm.conf:从零开始安装slurm作业调度系统Slurm-Ubuntu{超详细}:https://zhuanlan.zhihu.com/p/675310476
cd /etc/slurm/ #进入slurm目录
cp slurm.conf slurm.conf.bak #备份slurm.conf
rm /etc/slurm/slurm.conf #删除slurm.conf
vi /etc/slurm/slurm.conf #新建slurm.conf

将以下内容复制填入slurm.conf文件中(修改ControlMachine、NodeName、Nodes为"slurmd -C"命令后的计算机名字;同时修改CPUs个数,也就是线程数目),这里建议不要把windows机的所有CPUs都写入:
# slurm.conf file generated by configurator easy.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
#
ControlMachine=计算机名字
#ControlAddr=
#
#MailProg=/bin/mail
MpiDefault=none
#MpiParams=ports=#-#
ProctrackType=proctrack/pgid
ReturnToService=1
SlurmctldPidFile=/var/run/slurm-llnl/slurmctld.pid
#SlurmctldPort=6817
SlurmdPidFile=/var/run/slurm-llnl/slurmd.pid
#SlurmdPort=6818
SlurmdSpoolDir=/var/spool/slurmd
#SlurmUser=slurm
SlurmdUser=root
StateSaveLocation=/var/spool/slurm-llnl
SwitchType=switch/none
TaskPlugin=task/none
#
#
# TIMERS
#KillWait=30
#MinJobAge=300
#SlurmctldTimeout=120
#SlurmdTimeout=300
#
#
# SCHEDULING
FastSchedule=1
#SchedulerType=sched/backfill
SelectType=select/cons_res
SelectTypeParameters=CR_CPU
#
#
# LOGGING AND ACCOUNTING
AccountingStorageType=accounting_storage/none
ClusterName=cluster
#JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/none
#SlurmctldDebug=3
#SlurmctldLogFile=
#SlurmdDebug=3
#SlurmdLogFile=
#
#
# COMPUTE NODES
NodeName=计算机名字 CPUs= State=UNKNOWN
PartitionName=debug Nodes=计算机名字 Default=YES MaxTime=INFINITE State=UP

新建空目录slurm-llnl,如已建立,可忽略
cd /var/spool/
sudo mkdir slurm-llnl

cd /var/run/
sudo mkdir slurm-llnl

关闭防火墙命令,如已关闭,可忽略
cp /etc/selinux/config /etc/selinux/config.bak
echo SELINUX=disabled >/etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld

在用户根目录下新建slurm.sh
vim slurm.sh
将下列填写进去后保存退出

#!/bin/bash
/usr/sbin/create-munge-key
service munge restart
service slurmctld restart
service slurmd restart
启动(注意每次开机前都要使用一次这个命令。也可以把命令写入bachrc中),个人一般都是sudu运行一下yes
sudo sh slurm.sh

host主机名设置
echo 127.0.0.1 'cell' >>/etc/hosts #在host文件末尾加入主机名,cell是自己的主机名,根据实际hostname进行修改,IP是host开头文件的IP地址,保持一致即可
vi /etc/hosts #查看是否修改成功,也可以insert编辑

scontrol update NodeName=cell State=RESUME #出现配置问题,比如节点不小心处于down或offline状态。在更新配置后,重启服务后还不恢复,可以试试该命令,cell是自己的主机名

如何查看slurm是否安装成功
首先安装完成注意reboot重启一下机器,随后可以进一步用命令查看
slurmd -V #查看版本和信息
slurmd -C #查看版本和信息
sinfo #查看队列信息,一般正常输出就说明没问题
sudo systemctl status slurmdbd
sudo systemctl status slurmctld
sudo systemctl status slurmd
如果服务正在运行,您将看到active (running)状态。如果服务没有安装或没有正确配置,您可能会看到inactive (dead)或错误信息

通过命令安装slurm-wlm-torque包,可实现用pbs的命令来控制Slurm,例如pbsnodes、qstat、qsub等pbs命令。
sudo apt install slurm-wlm-torque
提交作业脚本:job.sh或job,经测试成功的提交脚本
#!/bin/bash
#SBATCH -J test
#SBATCH -p debug #分区名称,一定要注意和slurm.conf配置文件里要一致
#SBATCH -N 1
#SBATCH --ntasks-per-node=8 #分配8线程运行
#SBATCH -o %j.out
#SBATCH -e %j.err

ulimit -s unlimited

mpirun -np 8 vasp_std #此处的vasp_std是自己编译的vasp标准版,路径要加入bashrc中,要先确认直接运行该行命令,vasp运行能成功

网上的其他脚本示例
#!/bin/bash
#
#SBATCH --job-name=
#SBATCH --output=
#SBATCH -N 1
#SBATCH --ntasks-per-node=4
#SBATCH --time=00:30:00
#SBATCH -p debug

EXEC=/home/cndaqiang/work/siesta/siesta-4.1-b1/Obj/siesta
mpirun $EXEC input.fdf | tee result

#注
#默认mpirun使用核数由ntasks-per-node*N确定
#也可用 -np 指定
#mpirun -np 4  $EXEC -i input.in | tee result

提交作业&查看作业信息&取消作业
slurm操作系统:
sbatch job.sh
squeue
scancel jobid

pbs操作系统:
qsub job.sh
qstat
qdel jobid





作者
Author:
abin    时间: 2024-9-15 17:11
我写的方案是
unzip hpc4you*zip; source code

机器只要能上网就行,其他不需要。

不过我的方案需要付费。

话说回来,有时间的话,能通过四级英文考试,
看着原版手册,也能顺利完成,只是好多朋友,没有耐心而已。


作者
Author:
Entropy.S.I    时间: 2024-9-15 22:04
本帖最后由 Entropy.S.I 于 2024-9-15 22:23 编辑
abin 发表于 2024-9-15 17:11
我写的方案是
unzip hpc4you*zip; source code

官网原版手册比任何“教程”都靠谱。很多“教程”都包含作者的非常片面甚至错误的理解,缺乏泛化性和可维护性,而且往往跟不上最新版本。某些懒人硬要看“省流版”,勉强推荐USTC HPC中心李会明写的
作者
Author:
sun35mr    时间: 2024-10-21 20:33
太感谢了,之前用yum install slurm在Rocky8里面一直装不上。
不过有个小疑问,我是完全按照教程安装的,但为什么安装完之后,版本号是 22.05.9呢?我发现在安装过程中自动下载了22.05.9的版本
作者
Author:
tangelhero    时间: 2024-10-23 10:25
sun35mr 发表于 2024-10-21 20:33
太感谢了,之前用yum install slurm在Rocky8里面一直装不上。
不过有个小疑问,我是完全按照教程安装的, ...

不清楚什么原因,我目前在centos上安装和export的版本号一致,Rocky linux没有注意,这个不影响使用就行,哪个版本不重要,安装过程中好像会下载slurm。
作者
Author:
南北多歧路    时间: 2024-10-31 15:12
本帖最后由 南北多歧路 于 2024-10-31 15:50 编辑
abin 发表于 2024-9-15 17:11
我写的方案是
unzip hpc4you*zip; source code

abin老师您好,请问您说的原版手册指的是什么?是这一篇https://slurm.schedmd.com/quickstart_admin.html吗?还是有其他推荐的呢?
作者
Author:
abin    时间: 2024-11-1 09:00
本帖最后由 abin 于 2024-11-1 11:44 编辑
南北多歧路 发表于 2024-10-31 15:12
abin老师您好,请问您说的原版手册指的是什么?是这一篇https://slurm.schedmd.com/quickstart_admin.htm ...

是.


客观的角度讲,
Manual都有, 而且也有案列证实, 东西能用.

那么, 剩下的就是, RTFM, 仔细阅读手册, 照着做就行了.

为什么没做下去, 不是自己理解错了手册, 就是操作错误, 或者才错误的地方实施了操作.

如果是给集群配置slurm, 至少涉及head/control node, slave/computing node.

任何一个地方操作错误, 排查起来都很麻烦的, 需要丰富的经验才可以定位问题.


作者
Author:
Santz    时间: 2024-11-1 10:27
Slurm installation and upgrading   CentOS/Rocky/RedHat 下这个也不错,里面提到了很多 bug 的处理。



作者
Author:
南北多歧路    时间: 2024-11-1 20:16
abin 发表于 2024-11-1 09:00
是.

谢谢abin老师指导!
作者
Author:
南北多歧路    时间: 2024-11-1 20:16
Santz 发表于 2024-11-1 10:27
Slurm installation and upgrading   CentOS/Rocky/RedHat 下这个也不错,里面提到了很多 bug 的处理。

...

谢谢老师指点!
作者
Author:
nianbin    时间: 2024-11-6 15:12
请问 我安装好之后输入 sinfo报错如下,应该如何解决呀   
sinfo
sinfo: error: resolve_ctls_from_dns_srv: res_nsearch error: Unknown host
sinfo: error: fetch_config: DNS SRV lookup failed
sinfo: error: _establish_config_source: failed to fetch config
sinfo: fatal: Could not establish a configuration source

作者
Author:
nianbin    时间: 2024-11-6 15:12
nianbin 发表于 2024-11-6 15:12
请问 我安装好之后输入 sinfo报错如下,应该如何解决呀   
sinfo
sinfo: error: resolve_ctls_from_dns_s ...

rocky linux9.4
作者
Author:
zhg1016    时间: 2024-11-6 17:31
我觉得集群里面配置linux的免密登录、Nfs 、 Nis这些要会点linux基本知识,只是照着教程做,容易出错,也不容易排查。安装前至少在虚拟机上操作一次会好一些,虚拟机做好干净的快照,做错了重新来过。学的会更快一些。




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3