centos 7 安装slurm 19.05详细步骤

最近需要做slurm相关的东西,于是在自己本机上安装了slurm。因为slurm最近刚更新了最新版19.05,所以之前所有的安装博客都失效了。完成安装之后,写下这个博客,供参考。

部分命令参考https://www.slothparadise.com/how-to-install-slurm-on-centos-7-cluster/,不太一样。

在本篇博客中共有两个节点,控制节点名为blog1,ip 192.168.109.137,计算节点名blog2, ip 192.168.109.136,数据存储节点blog3,即mysql所在节点,ip 192.168.109.135。读者可自行修改节点名和节点数量。

1 创建全局用户

安装slurm需要安装Munge。Slurm和Munge需要跨集群中的每个节点一致的UID和GID。对于所有节点(控制节点和计算节点),在安装Slurm或Munge之前创建用户:

export MUNGEUSER=991
groupadd -g $MUNGEUSER munge
useradd  -m -c "MUNGE Uid 'N' Gid Emporium" -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge
export SLURMUSER=992
groupadd -g $SLURMUSER slurm
useradd  -m -c "SLURM workload manager" -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm

2 安装Munge

安装EPEL源

yum install epel-release

然后使用EPEL安装Munge

yum install munge munge-libs munge-devel -y

在安装Munge之后,需要把Munge的key从控制节点配置到所有的计算节点。在计算节点上blog1创建Munge的key,只需要在控制节点上创建Munge的key。首先安装rng-tools

yum install rng-tools -y
rngd -r /dev/urandom

然后

/usr/sbin/create-munge-key -r
dd if=/dev/urandom bs=1 count=1024 > /etc/munge/munge.key
chown munge: /etc/munge/munge.key
chmod 400 /etc/munge/munge.key

创建完成之后,将控制节点的key发送到所有的计算节点中

scp /etc/munge/munge.key root@blog2:/etc/munge/

此时,所有的节点上都已经有了key,启动Munge并且配置munge权限

chown -R munge: /etc/munge/ /var/log/munge/
chmod 0700 /etc/munge/ /var/log/munge/
systemctl enable munge
systemctl start munge

如果启动失败,要检测是否munge的key创建失败。

然后对Munge进行测试,每个计算节点与控制节点blog1进行连接。

munge -n
munge -n | unmunge
munge -n | ssh blog1 unmunge
remunge

3 安装slurm

在所有的节点上安装slurm依赖,slurm在创建安装包时需要 perl-ExtUtils-MakeMaker和 gcc

yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y
yum install perl-ExtUtils-MakeMaker
yum install gcc

然后去slurm官网下载最新版本(19.05)的源码,我们使用源码进行安装。

yum install wget
wget https://download.schedmd.com/slurm/slurm-19.05.2.tar.bz2

如果没有安装rpm,

yum install rpm-build

现在,我们使用rpm创建slurm的安装包(只需在控制节点上创建安装包,其他节点可以通过scp -r 命令将安装包所在目录传输过去)

rpmbuild -ta slurm-19.05.2.tar.bz2

安装包创建完成后在/root/rpmbuild/RPMS/x86_64下,可以在所有节点上进行安装。

cd /root/rpmbuild/RPMS/x86_64
yum localinstall slurm-*.rpm

安装完成后,要配置slurm的配置文件,可以访问http://slurm.schedmd.com/configurator.easy.html

我修改了下面的配置,其他都是默认配置。点击提交后,网页会出现自定义的配置文件,复制粘贴到slurm.conf文件里面。

ControlMachine: blog1
NodeName: blog2
StateSaveLocation: /var/spool/slurmctld
SlurmctldLogFile: /var/log/slurmctld.log
SlurmdLogFile: /var/log/slurmd.log

在/etc/slurm文件夹下面,有几个slurm的配置文件模板xxx.conf.example

对于控制节点必要的是slurm.conf,对于计算节点,必要的是slurm.conf, cgroup.conf

所以在控制节点上,

cd /etc/slurm
cp slurm.conf.example slurm.conf
vi slurm.conf

参考的slurm.conf文件,https://blog.csdn.net/qq_34149581/article/details/104868057

参考的slurmdbd.conf文件,https://blog.csdn.net/qq_34149581/article/details/104868194

配置完成后,将slurm.conf发送到所有的节点。

scp slurm.conf root@blog2:/etc/slurm

现在,在控制节点blog1上,配置日志文件和其他文件

mkdir /var/spool/slurmctld
chown slurm: /var/spool/slurmctld
chmod 755 /var/spool/slurmctld
touch /var/log/slurmctld.log
chown slurm: /var/log/slurmctld.log
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log

在slurmdbd配置节点blog2上,配置slurmdbd的日志文件

touch /var/log/slurmdbd.log
chown slurm: /var/log/slurmdbd.log

 在所有的计算节点上blog2,配置日志文件

mkdir /var/spool/slurmd
chown slurm: /var/spool/slurmd
chmod 755 /var/spool/slurmd
touch /var/log/slurmd.log
chown slurm: /var/log/slurmd.log

同时,在计算节点上关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

此时已经完成slurm的安装,可以使用下面的命令查看当前节点的配置信息。

slurmd -C

完成slurm安装后启动slurm

1.首先在数据库控制节点启动slurmdbd

在数据库控制节点blog2,的控制台中使用slurmdbd -vvvvDDDD,进行调试启动,查看是否启动过程中有无错误。无错误后启动slurmdbd

slurmdbd -vvvvDDDD

systemctl start slurmdbd

2.控制节点上启动slurmctld

在控制节点blog1,使用slurmctld -vvvvDDDD,进行调试启动,查看启动过程中有无错误。无错误后启动

systemctl enable slurmctld.service
systemctl start slurmctld.service
systemctl status slurmctld.service

显示active(running)表示slurm controller 进程启动成功

在计算节点上启动slurmd守护进程

直接启动是不能启动成功的,因为cgroup.conf没有配置, 在计算节点blog2上

参考的cgroup.conf,

https://blog.csdn.net/qq_34149581/article/details/104868476
cd /etc/slurm
cp cgroup.conf.example cgroup.conf
systemctl enable slurmd.service
systemctl start slurmd.service
systemctl status slurmd.service

此时slurm已经安装成功了。 

 

在启动过程中有任何错误都可以查看日志文件

在Compute node bugs: tail /var/log/slurmd.log
在Server node bugs: tail /var/log/slurmctld.log
在slurmdbd上, tail /var/log/slurmdbd.log

 

注意:此时可能会因为slurm系统中没有配置cluster导致sacct不能正常使用,出错的结果可以在slurmdbd.conf中查看到,类似于

error: We should have gotten a new id: Table 'slurm_acct_db.cluster_job_table' doesn't exist

解决办法是向slurm中加入cluster,同时cluster的名字必须为slurm.conf中配置的ClusterName。

我在slurm.conf中配置的ClusterName=cluster,所以我的解决方法是:

sacctmgr --immediate add cluster name=cluster

在slurmdbd节点上,systemctl restart slurmdbd
在slurmctld节点上,systemctl restart slurmctld


然后sacctmgr show cluster

然后sacctmgr add account none,test Cluster=cluster Description="none" Organization="none"
然后输入y,确认修改
最后输入,sacctmgr show cluster

 

 

 

 

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值