当前位置:   article > 正文

centos 7 安装slurm 19.05详细步骤_slurm rpm 19.05.2-1

slurm rpm 19.05.2-1

最近需要做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之前创建用户:

  1. export MUNGEUSER=991
  2. groupadd -g $MUNGEUSER munge
  3. useradd -m -c "MUNGE Uid 'N' Gid Emporium" -d /var/lib/munge -u $MUNGEUSER -g munge -s /sbin/nologin munge
  4. export SLURMUSER=992
  5. groupadd -g $SLURMUSER slurm
  6. 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

  1. yum install rng-tools -y
  2. rngd -r /dev/urandom

然后

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

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

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

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

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

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

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

  1. munge -n
  2. munge -n | unmunge
  3. munge -n | ssh blog1 unmunge
  4. remunge

3 安装slurm

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

  1. 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
  2. yum install perl-ExtUtils-MakeMaker
  3. yum install gcc

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

  1. yum install wget
  2. 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下,可以在所有节点上进行安装。

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

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

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

  1. ControlMachine: blog1
  2. NodeName: blog2
  3. StateSaveLocation: /var/spool/slurmctld
  4. SlurmctldLogFile: /var/log/slurmctld.log
  5. SlurmdLogFile: /var/log/slurmd.log

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

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

所以在控制节点上,

  1. cd /etc/slurm
  2. cp slurm.conf.example slurm.conf
  3. 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上,配置日志文件和其他文件

  1. mkdir /var/spool/slurmctld
  2. chown slurm: /var/spool/slurmctld
  3. chmod 755 /var/spool/slurmctld
  4. touch /var/log/slurmctld.log
  5. chown slurm: /var/log/slurmctld.log
  6. touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log
  7. chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log

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

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

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

  1. mkdir /var/spool/slurmd
  2. chown slurm: /var/spool/slurmd
  3. chmod 755 /var/spool/slurmd
  4. touch /var/log/slurmd.log
  5. chown slurm: /var/log/slurmd.log

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

  1. systemctl stop firewalld
  2. systemctl disable firewalld

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

slurmd -C

完成slurm安装后启动slurm

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

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

  1. slurmdbd -vvvvDDDD
  2. systemctl start slurmdbd

2.控制节点上启动slurmctld

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

  1. systemctl enable slurmctld.service
  2. systemctl start slurmctld.service
  3. systemctl status slurmctld.service

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

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

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

参考的cgroup.conf,

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

此时slurm已经安装成功了。 

 

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

  1. Compute node bugs: tail /var/log/slurmd.log
  2. 在Server node bugs: tail /var/log/slurmctld.log
  3. 在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,所以我的解决方法是:

  1. sacctmgr --immediate add cluster name=cluster
  2. 在slurmdbd节点上,systemctl restart slurmdbd
  3. 在slurmctld节点上,systemctl restart slurmctld
  4. 然后sacctmgr show cluster
  5. 然后sacctmgr add account none,test Cluster=cluster Description="none" Organization="none"
  6. 然后输入y,确认修改
  7. 最后输入,sacctmgr show cluster

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/1017069
推荐阅读
相关标签
  

闽ICP备14008679号