站长资源操作系统

Linux系统上安装slurm来监控网络带宽和控制节点

整理:jimmy2024/11/20浏览2
简介SLURM 是一个类似 Sun Grid Engine (SGE) 的开源分布式资源管理软件,用于超级计算机和大型计算节点集群,可高度伸缩和容错。SUN 被卖给 Oracle 后,好用的 SGE 变成 Oracle Grid Engine 并且从 6.2u6 版本开始成为商业软件了(可以免费使用90

SLURM 是一个类似 Sun Grid Engine (SGE) 的开源分布式资源管理软件,用于超级计算机和大型计算节点集群,可高度伸缩和容错。SUN 被卖给 Oracle 后,好用的 SGE 变成 Oracle Grid Engine 并且从 6.2u6 版本开始成为商业软件了(可以免费使用90天),所以我们不得不另寻其他的开源替代方案,SLURM 是上次在德班高性能会议的时候一位陌生人介绍的,听上去不错。
SLURM 通过一对冗余集群控制节点(冗余是可选的)来管理集群计算节点,是由一个名为 slurmctld 的管理守护程序实现的,slurmctld 提供了对计算资源的监视、分配和管理,并将进入的作业序列映射和分发到各个计算节点上。每个计算节点也有一个守护程序 slurmd,slurmd 管理在其上运行的节点,监视节点上运行的任务、接受来自控制节点的请求和工作、将工作映射到节点内部等等。图示如下:
Linux系统上安装slurm来监控网络带宽和控制节点

监控带宽

复制代码代码如下:
$ apt-get install slurm

它会用字符来显示文本图形。
例如:

复制代码代码如下:
$ slurm -i <interface>
$ slurm -i eth1

Linux系统上安装slurm来监控网络带宽和控制节点

选项
按 l 显示 lx/tx 指示灯.
按 c 切换到经典模式.
按 r 刷新屏幕.
按 q 退出.

控制节点
在控制节点和计算结点分别安装 slurm 包,这个包里面既含有控制节点需要的 slurmctld 也含有计算结点需要的 slurmd:

复制代码代码如下:
# apt-get install slurm-llnl

控制节点和计算结点之间需要通信,通信就需要认证,slurm 支持两种认证方式:Brent Chun’s 的 authd 和 LLNL 的 MUNGE,MUNGE 是专为高性能集群计算打造的,这里我们选用 MUNGE,生成 key 后启动 munge 认证服务:

复制代码代码如下:
# /usr/sbin/create-munge-key
Generating a pseudo-random key using /dev/urandom completed.
# /etc/init.d/munge start

使用 SLURM Version 2.3 Configuration Tool 在线配置工具生成配置文件,然后把配置文件拷贝控制节点以及各个计算结点的 /etc/slurm-llnl/slurm.conf(是的,控制节点和计算结点使用同一个配置文件)。
有了配置文件和启动了 munge 服务后就可以在控制节点启动 slurmctld 服务了:

复制代码代码如下:
# /etc/init.d/slurm-llnl start
* Starting slurm central management daemon slurmctld [ OK ]

把控制节点生成的 munge.key 拷贝到各个计算结点:

复制代码代码如下:
# scp /etc/munge/munge.key ubuntu@slurm01:/etc/munge/

登陆计算节点后启动 munge 服务(注意需要改变 munge.key 的 owner 和 group 为 munge,否则会启动失败)和 slurmd 服务:

复制代码代码如下:
# ssh ubuntu@slurm01
# chown munge:munge munge.key
# /etc/init.d/munge start
* Starting MUNGE munged [ OK ]
# slurmd

在控制节点上(slurm00)测试一下是否顺利连接到计算结点(slurm01),并且简单运行一个程序 /bin/hostname 看看效果吧:

复制代码代码如下:
# sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
debug* up infinite 1 idle slurm01
# srun -N1 /bin/hostname
slurm01