HPC集群(SLURM):build议build立一个安全稳定的系统的方法

我正在使用SLURM驱动的HPC集群,包含1个控制节点和34个计算节点,而且由于当前系统并不十分稳定,因此我正在寻找有关如何以某种方式构build这样一个集群的指南或最佳实践它变得更加稳定和安全。 而且要清楚的是,我并不是在寻找关于资源pipe理的详细答案,或者是其他的工具,但是对于非常基本的设置build议(见下面的“问题”)。

我目前的设置

我不使用任何备份控制节点。

如果我们的控制节点丢失了,如果当前正在运行的作业能够存活,似乎总是一个运气问题,所以我正在寻找一种方法来创build一个更稳定的设置。

当前设置可能存在的问题

1)共享slurm目录。 我在网上找不到任何东西,如果这是一个好的或不好的做法,但由于slurmconfiguration文件必须在所有机器上相同,我想我可能会分享完整的slurm安装。 但是,当然,如果计算节点丢失,所有的文件也将变得不可用。

2)缺less备份控制节点。 这需要一个可以保存当前状态的共享NFS目录。 问题是,这个目录应该放在哪里? 当然,把它放在控制节点上是没有意义的,但是它应该在备份控制节点上吗? 或者在一个完全不同的机器上?

那么,是否有一些指导原则可以用来构buildHPC群集? 问题是,涉及到哪些不同types的节点,他们的工作是什么以及应该通过NFS共享什么样的数据,以及这些共享目录应该存活在哪里? 我也会很感激任何一种文学或教程,这些都指向了正确的方向。

我感动了SLURM已经有一段时间了,所以拿下一点盐。 另外,群集的devise将由您的工作负载决定。 通常,您从一个头节点和一些计算节点开始,然后从那里开始build立起来。 像Rocks这样的软件包可以成为一个很好的开始。

我可以看到共享目录是一个问题。 根据你的工作量,你可能已经有很多的stream量通过NFS,所以我会在本地安装SLURM。 您可以在NFS导出的卷上创buildslurmconfiguration的副本,并使用“fornodes”脚本或使用脚本化的scp进行复制。 如果你正在对你的slurmconfiguration进行很多修改,你甚至可以添加slurmd restart到脚本。

至于备份控制节点,我不会担心。 你的头节点可能是一个单一的失败点,所以如果你失去了,你已经会有你的工作有问题。 我也不确定如果启用SLURM记帐的备份机制是如何工作的,因为它通常使用像MySQL这样的数据库。

对于导出,我通常导出/ home目录和/ opt在较小的群集。 根据您的数据需求,您可以考虑使用额外存储的单独存储节点来分配NFS负载。 既然你提到你的稳定性有问题,你可以考虑使用像Ganglia这样的软件包来监视节点负载,内存利用率,networking吞吐量和其他值,并以一系列图表的forms显示出来。 您还可以通过命令行工具学习相当多的东西,比如计算节点上运行的顶级命令行工具。 你也将要testing你的工作的规模。 如果您的作业跨节点(MPI?)运行时性能可怕,则可能需要更快,更低延迟的互连,如Infiniband或10Gb以太网。

祝你好运与SLURM。 我喜欢在改变职位之前使用它,但由于它不像Torque / Maui或Sun / Oracle Grid Engine那样受欢迎,所以我的奇怪问题总是很难find。