1 SLURM调度软件的安装配置
1.1 slurm运行架构
主要服务:
Ø 主控服务(slurmctld):故障切换、资源监控、队列管理、作业调度
Ø 数据服务(slurmdbd):记账数据、配置信息、故障切换
Ø 计算代理(slurmd):启动任务、监控任务、分层通信
Ø 数据库(MySQL):记账和配置信息存储
Ø 认证服务(munge):内部通信认证
1.2 安装环境准备
本次安装采用两台centos7.6虚拟机(CPU:4 内存:16GB 磁盘:50GB),munge安装包、slurm安装包,在这里我们使用slurm 19.05.5和munge 0.5.13版本进行安装。
操作系统 | IP | 配置 | 说明 |
---|---|---|---|
Centos7.6 | 10.0.50.164 | CPU:4核、内存:16GB磁盘:50GB | 管理节点 |
Centos7.6 | 10.0.50.179 | CPU:4核、内存:16GB磁盘:50GB | 计算节点 |
1.3 配置ssh免密码登录
在mgt节点上执行:ssh-keygen -t rsa产生密钥对
将管理节点的公钥cat id_rsa.pub > authorized_keys,将管理节点的.ssh文件夹拷贝到计算节点scp -r .ssh node1:~
修改authorized_keys文件权限:chmod 600 authorized_keys
1.4 配置NTP时间同步
所有节点同步操作:
修改时区timedatectl set-timezone Asia/Shanghai
同步时间ntpdate 0.centos.pool.ntp.org
1.5 关闭防火墙
- 所有节点同步操作:
关闭防火墙命令:systemctl stop firewalld.service
禁止开机启动:systemctl disable firewalld.service
1.6 slurm组件预安装
1.6.1 mysql数据库安装
- 管理节点安装mariadb数据库:
- 设置数据库密码
1 | mysqladmin --protocol=tcp -P 3306 -uroot password 111111 |
1.6.2 安装munge
MUNGE (MUNGE Uid ‘N’ Gid Emporium)是一种用于创建和验证凭证的身份验证服务。它允许进程在一组具有公共用户和组的主机中验证另一个本地或远程进程的UID和GID,用作内部通信认证,所以管理节点和计算节点都需要安装.
munge的安装需要提前安装两个库Libgpg-error和libgcrypt,可以通过命令rpm -qa | grep -E ‘libgpg|libgcrypt’查看是否存在
- 在两个节点上执行:
1 | tar -xvf munge-munge-0.5.13.tar.gz |
- 在管理节点上生成密钥,并拷贝到计算节点
管理节点:echo -n “foo” | sha1sum | cut -d ‘ ‘ -f1 > /opt/munge/etc/munge/munge.key
计算节点: scp /opt/munge/etc/munge/munge.key gv171:/opt/munge/etc/munge/
chmod 0400 /opt/munge/etc/munge/munge.key
- munge权限修改
设置使用root用户启动munge,修改munge安装目录/opt/munge/etc/sysconfig/munge中USER=“root”
安装包目录中的src/etc 下修改munge.service的User和Group为root,并放到/usr/lib/systemd/system下,添加执行权限
1 | systemctl daemon-reload |
- 验证
1.7 安装slurm及slurm文件配置
1.7.1 编译安装slurm
将slurm19.05.5版本安装包上传到用户目录,然后在管理节点和计算节点分别配置slurm的安装目录并进行编译安装(因为管理节点需要配置数据库地址,计算节点不需要)
管理节点:./configure –prefix=/opt/slurm –with-munge=/opt/munge –with-mysql_config =/usr/bin
计算节点:./configure –prefix=/opt/slurm –with-munge=/opt/munge
管理和计算节点编译安装slurm:make&& make install
1.7.2 编译安装pmi和pmi2
进入slurm安装包目录下的contribs/pmi
make&& make install
进入slurm安装包目录下的contribs/pmi2
make&& make install
1.7.3 创建工作目录
在/opt/slurm下分别创建etc、spool、log目录
mkdir /opt/slurm/etc /opt/slurm/spool /opt/slurm/log
etc:存放slurm.conf、slurmdbd.con、slurm_partition.conf和slurm_node.conf四个配置文件
spool:Slurm状态将在此目录保存,以便从系统故障中恢复
log:存放slurmdbd slurmctld slurmd服务产生的日志
1.7.4 配置集群参数
在安装目录/opt/slurm/etc下,创建配置文件slurm.conf、slurmdbd.con、slurm_partition.conf和slurm_node.conf四个文件或者从安装包slurm_conf目录下拷贝并修改相应参数
拷贝安装包etc目录下的slurmdbd.service、slurmctld.service、slurmd.service脚本到启动目录/usr/lib/systemd/system
- cat slurm.conf
1 | # Example slurm.conf file. Please run configurator.html |
- cat slurmdbd.conf
1 | # Example slurmdbd.conf file. |
- cat slurm_node.conf
1 | NodeName=mgt NodeHostname=mgt NodeAddr=mgt CPUs=4 Boards=1 SocketsPerBoard=1 CoresPerSocket=4 ThreadsPerCore=1 RealMemory=15000 MemSpecLimit=10240 State=UNKNOWN |
- cat slurm_node.conf
1 | PartitionName=debug Nodes=ALL Default=YES MaxTime=INFINITE DefaultTime=24:00:00 State=UP PriorityTier=6000 |
PriorityTier=11000
1.7.5 启动slurm集群
在管理节点启动slurmctld和slurmdbd服务
1 | systemctl restart slurmdbd.service |
- 管理节点也参与调度
1 | systemctl restart slurmd.service |
- 在计算节点启动slurmd服务
1 | systemctl restart slurmd.service |
1 | srun -p normal sleep 10 |