前面在浅谈Slurm作业调度系统_男孩李的博客-CSDN博客中我们对Slurm调度系统进行了简单的概述,在此,将重点介绍在centos下如何安装部署Slurm集群。
操作系统 | IP | 配置 | 服务器 |
centos7.6 | 192.168.1.1 | CPU:2GHz*2,内存:4GB,磁盘:17GB | 管理节点 |
centos7.6 | 192.168.1.2 | CPU:2GHz*2,内存:4GB,磁盘:17GB | 计算节点 |
配置主机A免密登录到主机B (方法一)
(1)进入到我的home目录 cd ~/.ssh
(2)ssh-keygen(四个回车),会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(3)将公钥拷贝到要免登陆的机器上: ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.1
(方法二)
(1)在主机A生产密钥对: ssh-keygen -t rsa, 会在.ssh目录下产生密钥文件
(2)拷贝主机A的公钥到主机B: scp /root/.ssh/id_rsa.pub B:/root/.ssh/
(3)将主机A的公钥加到主机B的授权列表.ssh/authorized_keys(若不存在,手动创建): cat id_rsa.pub >> authorized_keys
(4)授权列表authorized_keys的权限必须是600,chmod 600 authorized_keys
(1)集群中所有节点安装ntp,
yum install ntp
(2)所有节点设置时区,这里设置为中国所用时间
timedatectl set-timezone Asia/Shanghai
(3)在server节点上启动ntp服务
systemctl start ntpd systemctl enable ntpd
(4)在server节点上设置现在的准确时间
timedatectl set-time HH:MM:SS
(5)在server节点上设置其ntp服务器为其自身,同时设置可以接受连接服务的客户端。修改/etc/ntp.conf,添加两行:restrict 127.0.0.1和server 127.127.1.0
(6)重启ntpd服务
systemctl restart ntpd
(7)在client节点上设置ntp服务器为server节点。修改/etc/ntp.conf,添加一行:server ip地址(替换为server IP)
(8)在client节点上同步server的时间,ntpdate ip地址(替换为server IP)
(9)client节点启动ntpd服务
systemctl start ntpd systemctl enable ntpd
(10)所有节点启动时间同步
timedatectl set-ntp yes
为了防止mysql以及slurm端口被防火墙阻断可以将端口添加防火墙例外也可以直接关闭防火墙,防火墙相关命令如下
开启防火墙命令
systemctl start firewalld.service
查看防火墙状态
systemctl status firewalld.service
关闭防火墙命令
systemctl stop firewalld.service
开机启动防火墙
systemctl enable firewalld.service
开机禁用防火墙
systemctl disable firewalld.service
yum update
MUNGE (MUNGE Uid 'N' Gid Emporium)是一种用于创建和验证凭证的身份验证服务。它允许进程在一组具有公共用户和组的主机中验证另一个本地或远程进程的UID和GID。
yum install munge munge-libs munge-devel
配置 Munge 密钥:使用以下命令生成 Munge 密钥并设置权限:
sudo /usr/sbin/create-munge-key
sudo chown munge: /etc/munge/munge.key
sudo chmod 400 /etc/munge/munge.key
使用以下命令启动 Munge 服务并设置开机自启:
sudo systemctl start munge
sudo systemctl enable munge
从 Slurm 官方网站Slurm Workload Manager - Download Slurm (schedmd.com)
下载Slurm 软件包,并将其上传到目标节点上。
tar --bzip -x -f slurm*tar.bz2
cd slurm-*
./configure
make && make install
进入slurm安装包目录下的contribs/pmi
cd contribs/pmi
make&& make install
进入slurm安装包目录下的
cd contribs/pmi2
make&& make install
mkdir /opt/slurm/etc
配置文件存放目录,默认为安装目录下的etc文件夹
mkdir /opt/slurm/spool
Slurm状态将在此目录保存,以从系统故障中恢复,默认路径为 "/var/spool/",此处新建是因为在slurm.conf文件中指定了该目录
mkdir /opt/slurm/log
日志存放目录,默认目录为/var/log,此处新建是因为在slurm.conf文件中指定了该目录
在安装目录/opt/slurm/etc下,创建配置文件slurm.conf和slurmdbd.conf
关于Slurm有关的配置可以参考:
Slurm中集群配置文件之slurm.conf_slurm配置文件_男孩李的博客-CSDN博客
Slurm中集群配置文件之slurmdbd.conf_男孩李的博客-CSDN博客
Slurm中集群配置文件之slurm_node.conf_男孩李的博客-CSDN博客
Slurm Workload Manager - Quick Start Administrator Guide (schedmd.com)
或者修改源码etc目录下的slurm.conf.example和slurmdbd.conf.example
下一步,拷贝安装包etc目录下的service脚本到启动目录/usr/lib/systemd/system,并添加执行权限
启动slurmdbd服务
systemctl restart slurmdbd.service
启动slurm调度服务
systemctl restart slurmctld.service
systemctl restart slurmd.service