
本节将介绍Slurm实验环境的安装,包括一个控制节点和两个计算节点(控制节点同时作为计算节点),无特殊说明的情况下一下步骤在每个节点上都要执行(仅有少量区别),如果节点比较多可以考虑使用Ansible或者Salt之类的运维管理工具批量操作。
安装准备
关闭SELinux
1 | vim /etc/sysconfig/selinux |
关闭部分服务
建议先将防火墙和NetworkManager服务关掉,后面我们再介绍防火墙的配置
1 | systemctl stop firewalld NetworkManager |
EPEL源配置
Slurm所依赖的软件包在EPEL源中才能找到,所以我们需要先配置EPEL
1 | rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm |
安装时间同步服务
各个节点上通过ntpd服务实现时间同步,确保各节点的系统时间一致。先校准主控节点的时间,然后配置ntpd服务
1 | yum install ntp -y |
软件安装
依赖包安装
1 | yum install -y readline-devel perl-ExtUtils-MakeMaker openssl-devel pam-devel rpm-build perl-DBI perl-Switch mariadb-devel hwloc-devel |
hwloc-devel缺失会导致cgroup plugin无法使用
安装MUNGE
Slurm采用MUNGE提供进程鉴权服务,集群中每个节点都应该采用相同的密钥。在启动Slurm服务之前,需要先启动munged。
1 | yum install -y munge-devel munge-libs munge |
设置正确的权限
配置正确的文件权限,否则munged服务将无法启动
1 | chmod -Rf 700 /etc/munge |
另外需要注意的是检查一下 / etc/munge/munge.key 文件,文件的 owner 和 group 必须是 munge,否则启动会失败。
下载Slurm软件包
1 | wget https://download.schedmd.com/slurm/slurm-17.11.9-2.tar.bz2 |
编译Slurm
1 | rpmbuild -ta slurm-17.11.9-2.tar.bz2 |
安装Slurm
1 | ls -l ~/rpmbuild/RPMS/x86_64/*.rpm |
在计算节点上无需安装slurmdbd、slurmctld服务
安装MariaDB
因为Slurmdbd依赖MariaDB所以如果需要使用Slurmdbd则我们需要安装MariaDB
1 | yum install mariadb-server -y |
创建数据库
使用mysql命令行执行如下命令:
1 | grant all on slurm_acct_db.* TO 'slurm'@'localhost' |
Slurm基本配置
进入 / etc/slurm / 目录,复制 slurm.conf.example 文件成 slurm.conf,然后编辑 / etc/slurm/slurm.conf 文件,下面是我的文件中修改的部分:
1 | ControlMachine=master |
这是一份最简单的Slurm配置,后面我们将逐步详细介绍Slurm的配置项。将此配置项拷贝到node01的相同目录下。启动服务:
1 | 主控节点 |
验证
在任意节点执行sinfo命令,你将看到类似输出,则证明服务工作正常:
1 | sinfo |
否则请查看/var/log/slurm/slurmctld.log及/var/log/slurm/slurmd.log日志文件排错。