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

02-27

  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

  $ slurm -i eth1

  选项

  按 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