SLURM高可用性头节点

时间:2018-06-05 15:08:31

标签: slurm

根据https://slurm.schedmd.com/quickstart_admin.html#HA SLURM的高可用性是通过部署第二个BackupController来实现的,该第二个BackupController在主服务器发生故障时接管并从共享文件系统(可能是NFS)检索当前状态。

在我看来,这有许多缺点。例如。这将服务器总数限制为2,而第二台服务器可能几乎没有使用。

这是使用SLURM获得高可用头节点的唯一方法吗?

我想要做的是经典的3层设置:第一层中的负载均衡器,它将所有请求均匀地分布在秒层中的节点上。这要求头节点是无状态的。第三层是存储或读取所有信息的数据库层。我对SLURM的内部情况一无所知,我不确定这是否有可能实现。

1 个答案:

答案 0 :(得分:1)

在当前设计中,控制器内部状态是内存中的,并且Slurm会将其保存到StateSaveLocation配置参数指向的目录中的一组文件中。只有一个slurmctld实例可以一次写入该目录。

将状态存储在数据库中的一个问题是资源分配的可怕延迟,需要大量同步,因为最佳资源分配只能通过完整信息来完成。与现有解决方案相比,Slurm现在可以处理与内存状态相同的吞吐量所需的基础设施成本非常高,而目前的解决方案只对内存中的数组进行按位操作。

  

这是使用SLURM获得高可用头节点的唯一方法吗?

您还可以使用Corosync管理单个MasterController。但事实上,Slurm只为HA提供主动/被动选项。

  

在我看来,这有许多缺点。例如。这限制了   服务器总数为2,第二台服务器可能勉强   使用

对于当前处理能力,控制器上的负载通常非常合理,并且资源分配问题不能简单地并行化(或无状态)。通常,备份控制器位于运行其他服务的计算机上。例如,在小型部署中,一台机器运行Slurm主控制器和其他服务(NFS,LDAP等)等,而另一台机器运行用户登录节点,它也充当辅助Slurm控制器。

相关问题