HPC 系列文章(7):Debian/Ubuntu安装Slurm

deploy

上一篇文章中简单介绍了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.solibhwloc-dev缺失则会导致cgroup plugin无法使用。

安装Slurm

在官网下载最新的安装包,并解压:

1
2
wget https://download.schedmd.com/slurm/slurm-17.11.9-2.tar.bz2
tar --bzip -x -f slurm-17.11.9-2.tar.bz2

编译并安装:

1
2
3
4
cd slurm-17.11.9-2
./configure
make
make install

注意:与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
2
PARTITION    AVAIL  TIMELIMIT  NODES  STATE NODELIST
master-only* up infinite 1 idle debian

否则请查看/var/log/slurm/slurmctld.log及/var/log/slurm/slurmd.log日志文件排错,下面列出了一些我安装过程中遇到的问题。

Troubleshoot

ConstrainRAMSpace=yes无效

提示ConstrainRAMSpace=yes无效,需要启用cgroup_enable=memory并重启系统,具体方法:

  1. vim /etc/default/grub
  2. 在GRUB_CMDLINE_LINUX_DEFAULT中补充cgroup_enable=memory swapaccount=1
1
2
3
4
5
6
7
8
9
10
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet cgroup_enable=memory swapaccount=1"
GRUB_CMDLINE_LINUX="initrd=/install/initrd.gz"

slurmdbd无法启动

提示找不到accounting_storage_mysql.so,是由于编译前未安装libmysqlclient-dev,安装之后重新执行编译安装步骤即可

坚持原创技术分享,您的支持将鼓励我继续创作!