
上一篇文章中简单介绍了CentOS/Redhat上如何部署Slurm,这里我们再介绍一下在Debian或Ubuntu上如何正确的安装Slurm。这里我们以Debian 8.5(Jessie)为例,其他更新的版本也类似。
通过包管理器安装
最方便的方式是通过包管理器安装,不过apt源中只有较老的版本,通过软件包管理器安装的过程也比较简单,
可以直接参考这篇文档:Slurm Installation on Debian
,我们还是主要介绍如何安装最新版本的Slurm,为了简化流程,我们将在一台机器上部署所有的服务,该节点即是管理节点也是计算节点。
源码安装
安装依赖
1 | apt-get install hwloc libhwloc-dev libmunge-dev libmunge2 munge mariadb-server libmysqlclient-dev |
libmysqlclient-dev若缺失会导致slurmdbd找不到accounting_storage_mysql.so,libhwloc-dev缺失则会导致cgroup plugin无法使用。
安装Slurm
在官网下载最新的安装包,并解压:
1 | wget https://download.schedmd.com/slurm/slurm-17.11.9-2.tar.bz2 |
编译并安装:
1 | cd slurm-17.11.9-2 |
注意:与CentOS上直接用yum安装不同的是Debian上编译安装的Slurm默认配置文件路径为/usr/local/etc,默认lib路径为/usr/local/lib/slurm/
最后将slurm-17.11.9-2/etc文件夹中的三个service启动脚本拷贝到/etc/systemd/system/目录下
配置修改
在slurm-17.11.9-2/etc文件夹中包含了可能用到的各个配置文件的范例,将他们复制到/usr/local/etc下根据实际情况修改即可,这里提供一下我自己的配置文件:
验证
在任意节点执行sinfo命令,你将看到类似输出,则证明服务工作正常:
1 | PARTITION AVAIL TIMELIMIT NODES STATE NODELIST |
否则请查看/var/log/slurm/slurmctld.log及/var/log/slurm/slurmd.log日志文件排错,下面列出了一些我安装过程中遇到的问题。
Troubleshoot
ConstrainRAMSpace=yes无效
提示ConstrainRAMSpace=yes无效,需要启用cgroup_enable=memory并重启系统,具体方法:
- vim /etc/default/grub
- 在GRUB_CMDLINE_LINUX_DEFAULT中补充cgroup_enable=memory swapaccount=1
1 | # If you change this file, run 'update-grub' afterwards to update |
slurmdbd无法启动
提示找不到accounting_storage_mysql.so,是由于编译前未安装libmysqlclient-dev,安装之后重新执行编译安装步骤即可