Slurm任务调度系统部署和测试(源码)(1)
1. 概述
slurm任务调度系统,主要应⽤在HPC集资源管理和任务调度。具体信息参见slurm官⽅⽹站:
部署Slurm任务调度系统,需要部署NTP内⽹时间同步服务器,LDAP全局认证服务器,Mysql数据库服务器
本篇博客主要记录如何部署和使⽤slurm任务调度系统。
1.1 节点信息
节点主机名操作系统主机地址主机⾓⾊
node11centos6.5_x86_64192.168.10.11主控制器
node12centos6.5_x86_64192.168.10.12备控制器
node13centos6.5_x86_64192.168.10.13数据存储主控制器
node14centos6.5_x86_64192.168.10.14数据存储备控制器
职高和中专的区别node15centos6.5_x86_64192.168.10.15MySQL数据库服务器
2. 节点准备
本篇博客的节点,均有已经部署好NTP和LDAP服务客户端的node11克隆,减少部署过程的繁琐。
KVM克隆虚拟机,参见博客《》
博客园地址:
根据博客内容指导,很容易克隆出其他⼏台虚拟机,提供slurm任务调度环境部署和测试。
3. 部署NTP服务器
笔记内链:《》
博客园地址:
NTP时间服务器部署完成之后,需要同步各个节点的时间。
注:对于节点的NTP同步,可以采⽤pdsh并⾏⼯具完成
pdsh并⾏⼯具安装和使⽤,参见笔记内链:《》
博客园地址:
4. 部署LDAP服务器
笔记内链:《》
博客园地址:
5. 部署Munge认证服务
笔记内链:《》
博客园地址:
6. 部署Mysql数据库服务
本篇博客在node15上安装MySQL数据库
笔记内链:《》
博客园:
7. 部署slurm
7.1 创建slurm⽤户
需要创建slurmadmin全局⽤户,⽤于运⾏slucrmctld和slurmdbd;
slurmd因为负责节点的状态,因此需要root权限,不需要创建;
同样在LDAP中创建slurmadmin⽤户
参见博客:《》
博客园地址:
7.2 挂载全局⽂件系统
在前⾯的博客中提到,把虚拟机console的/usr/local,作为全局共享⽬录,通过NFS⽂件系统实现共享。
在虚拟机console上,需要启动NFS共享。编辑/etc/exports,内容如下图所⽰:
执⾏命令:exportfs -r,使得配置的内容⽣效,通过"exportfs"查看配置是否⽣效
执⾏命令:pdsh -a "yum -y install nfs-utils rpcbind",安装挂载NFS需要的软件包
执⾏命令:pdsh -a "service rpcbind start",开启rpcbind服务,否则挂载会报错
执⾏命令:pdsh -a "mount -t nfs 192.168.10.8:/usr/local /usr/local",对节点进⾏NFS⽂件系统挂载查询养老保险
执⾏命令:pdsh -a "df -h | grep -w local",对挂载情况进⾏检查
7.3 slurm下载
从slurm官⽅⽹站下载最新版本slurm,下载地址为:
本篇博客主要部署两个版本
slurm-16.05. 该版本已经被官⽹废弃,本篇博客因为⼯作需要继续使⽤
slurm-17.11.7.tar.bz2 截⾄博客更新时的最新版本
7.4 编译安装
因为规划在node15上部署了MySQL数据库(虚拟机console并未部署MySQL),⽽在编译slurm时,需要使⽤到mysql_config,因此需要在node15上进⾏编译
将slurm-16.05.拷贝⾄node15,然后解压,编译,安装
1. 解压
执⾏命令:tar -zxvf slurm-16.05. -C /tmp;
2. YUM安装依赖环境
执⾏命令:yum -y install libgnomeui-devel readline-devel curl-devel
3. 进⼊⽬录,配置configure
执⾏以下命令:
./configure \
--prefix=/usr/local/globle/softs/slurm/16.05.3 \
--sysconfdir=/usr/local/globle/softs/slurm/16.05.3/etc \
--localstatedir=/var \
--enable-pam \
--enable-memory-leak-debug \
--enable-front-end --enable-salloc-kill-cmd \
--enable-simulator \
--enable-multiple-slurmd \
--with-pam_dir=/lib64 \
--with-zlib \
--with-rrdtool \
--with-mysql_config=/usr/lib64/mysql/ \
-
-with-munge=/usr/local/globle/softs/munge/0.5.12/ \
--with-ssl \
--with-libcurl
注:上述部分--with选项,实际并没有编译。通过查看config.log的WARNING可以确认是否安装。mysql_config指定的是mysql_config 的路径,⽽⾮⽂件
4. 编译安装
执⾏命令make进⾏编译,执⾏命令make install进⾏安装
5. 创建配置⽂件⽬录
上述过程完成后,可以在/usr/local/globle/softs/slurm下查看已经安装的⽬录,但是此时该⽬录下并没有etc,log,state等⽬录,因此需要⼿动创建
火车票网上预订时间执⾏命令:mkdir etc log state;
修改⽬录属性:chmod 777 log
6. 拷贝配置⽂件模板
在源码⽬录下的etc⽬录中,存放着配置⽂件的模板⽂件
执⾏命令:f.f.f.example /usr/local/globle/softs/slurm/16.05.3/etc/
8. slurm配置
详细的配置⽂件参数详解,参见官⽅提供的⽂档:
8.1 配置f
编辑slurm集主配置⽂件:/usr/local/globle/softs/slurm/16.05.3/f
笔记内链:《》
博客园地址:
8.2 配置f
编辑slurm集数据库主配置⽂件:/usr/local/globle/softs/slurm/16.05.3/f
笔记内链:《》
博客园地址:
8.3 配置f
编辑slurm集cgroup机制配置⽂件:/usr/local/globle/softs/slurm/16.05.3/f
笔记内链:《》
博客园地址:
8.4 配置数据库和测试
本篇博客前⾯部分已经在虚拟机node15上创建了MySQL数据库。
8.4.1 node15创建数据库并授权
在node15上,执⾏:mysql -uroot -p,输⼊密码进⼊数据库系统
创建数据库:create database slurm_acct_db;
授权node13访问:grant all privileges on slurm_acct_db.* to 'slurmadmin'@'192.168.80.13' identified by 'liwanliang';
授权node14访问:grant all privileges on slurm_acct_db.* to 'slurmadmin'@'192.168.80.14' identified by 'liwanliang';
刷新授权表:flush privileges;
8.4.2 测试连接
泊船瓜洲古诗在node13和node14节点,分别进⾏MySQL数据库的连接。这要求node13和node14必须安装了mysql软件包。
在node13和node14上,分别执⾏:rpm - qa |grep mysql查看是否安装mysql软件包。若未安装,执⾏:yum -y install mysql安装
在node14和node14上,分别执⾏:mysql -h 192.168.80.15 -uslurmadmin -p,输⼊密码进⾏数据库连接测试。
进⼊数据库之后,执⾏:show databases;查看是否存在slurm_acct_db数据库,验证数据库授权是否正确。
9. slurm启动理科什么专业好
9.1 启动数据库存储服务slurmdbd
可以采⽤slurmdbd -vvvvDDDD,进⾏调试启动,查看是否启动过程中有⽆错误。若⽆错误,可以以绝对路径的⽅式启动进程。slurmdbd存在主备节点,node13作为slurmdbd主节点。若配置⽂件中未配置slurmdbd的备份节点,则在node14上⽆法启动slurmdbd。
如需启动,需要修改配置⽂件。
注:在线使⽤过程中,如果修改了f配置,可以通过sacctmgr reconfig重新加载配置⽂件。前提是配置⽂件不能够出现错误,否则会造成当前在线的服务over
9.2 注册集信息
在启动控制器slurmctld之前,需要将f中配置的slurm集名称添加到数据库中。
否则会在启动slurmctld时,提⽰未注册集。
执⾏命令:/usr/local/globle/softs/slurm/16.05.3/bin/sacctmgr add cluster myslurm,根据提⽰输⼊y即可在slurmdbd中,注册集名称
翡翠怎么辨别好坏验证。执⾏命令:/usr/local/globle/softs/slurm/16.05.3/bin/sacctmgr show cluster,即可查看当前注册的slurm集信息。
9.3 启动控制器slurmctld
在节点node11上,执⾏命令:slurmctld -vvvvDDDD,进⾏调试启动,查看启动过程中是否存在错误,若⽆错误,则可以后台启动。
在节点node12上,执⾏同样的命令,即可启动slurmctld的备份控制器。具体使⽤和测试,参见《Slurm任务调度系统部署和测试(源码)(2).md》。
注:在线使⽤过程中,如果修改了f配置,可以通过scontrol reconfig重新加载配置⽂件。前提是配置⽂件不能够出现错误,否则会造成当前在线的服务over
10. 错误及解决
10.1 未安装编译器
如下图提⽰,执⾏命令:yum -y install gcc gcc-c++ automake autoconf
10.2 未发现PAM库路径
如下图提⽰,执⾏命令:find / -name libpam.so*,可确认系统中是否存在pam库,并且能够确认路径,然后在configure配置的--with-
pam_dir=/lib64
10.3 启动slurmdbd⽇志报错
在交互式调式结束后,结束slurmdbd进程。然后直接启动时,从slurmdbd的⽇志报错如下图所⽰:
10.4 节点状态DOWN
在完全配置成功之后,节点启动了slurmd,但是通过sinfo看到的节点状态始终为down。同步了节点时间,关闭节点防⽕墙和selinux均为解决问题。
最后通过查阅官⽅的FAQ,详细的FAQ地址:。最后把f中的ReturnToService=0改为ReturnToService=2解决
<wiz_tmp_tag id="wiz-table-range-border"
contenteditable="false" >
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论