HPC 集群主节点作为虚拟机

HPC 集群主节点作为虚拟机

对于给定的小型 HPC 集群(约 16 个节点),主节点用作用户登录和与 SLURM 交互的前端,而不是计算节点。主节点目前是裸机服务器。由于集群太小,因此出现了将主节点迁移到虚拟机而不是裸机节点的想法,以便拥有一个额外的计算节点。

将主节点作为 HPC 集群的虚拟机有哪些优缺点?

答案1

在 HPC 环境中,您不希望出现一些可能降低计算性能的情况,但考虑到这一点,您可以将头节点虚拟化,事实上,如果您可以处理它的缺点,这是一个很好的方法。

其优点与虚拟化服务器相同,您可以利用快照、轻松发布备份、根据需要扩展虚拟机以及执行通常使用虚拟机执行的其他好操作。

对于缺点,我们来说一下:

  • 通常,您希望登录节点(或如果用户在头节点上登录,则为头节点)具有与您的 HPC 集群相同的 CPU 架构。为什么会这样?这样,用户就可以轻松地在登录节点上使用优化标志编译软件-march=native,并启用诸如 AVX2 和 AVX-512 之类的矢量化技术(如果您使用的是最新的 Intel 处理器)。在 VM 上,如果您在混合 CPU 环境中运行,您可能需要教育用户指定集群或队列的目标 CPU。

  • 如果有任何并行文件系统,如 Lustre 和 BeeGFS,并且它们仅在 Infiniband 上可用,则可能很难在 VM 上提供对它的访问,您可能需要启用 IOMMU 才能通过 Infiniband 接口传递到 VM,并且请记住存储性能会比裸机差。

  • 关于 Infiniband 主题,通常登录节点和头节点可以具有低延迟结构接口,通常是 Infiniband。这不是必需的,但通常我们添加这些卡只是为了更方便操作。因此,您将在登录节点上拥有整个 OpenFabrics 堆栈,用户可以使用 PMI/PMIx 之类的东西在队列系统中提交作业,以及使用正确的 MPI(消息传递接口)库编译软件所需的库。您可以在没有硬件的情况下添加这些,但有硬件更简单。

  • 最后一点也适用于可视化。一些 HPC 环境具有带有 Quadro GPU 的可视化节点,用于数据可视化。您可能需要通过 GPU 来获得对数据可视化软件的适当支持。这是可能的,只是需要做的工作比在裸机上运行更多。

  • 最后是网络,也许最具挑战性的方面与网络有关。在裸机头节点和登录节点上,您通常只需按原样添加网络接口并尝试使用基本网络。在虚拟机内部,您可能需要在虚拟机内配置 VLAN 以到达计算节点所在的交换机。如果您想正确控制计算节点,则存在关于带外管理的问题,例如 IPMI/BMC/iDRAC/iLO/等,应该可以从头节点访问。因此,在虚拟机中运行头节点时,建议进行一些网络规划。

  • 对于计算节点,您可能希望运行有状态而不是无状态,因为无状态会在头节点上产生过多的流量,而不仅仅是运行有状态的节点。在裸机上,我们通常使用无状态,因为它更易于维护,并且我们在头节点上有很多空闲资源,但如果头节点在虚拟机上,情况可能并非如此。

这是我多年来管理 HPC 的经验。我仍然有一些虚拟化的头节点,但我更喜欢将它们保留为裸机。

相关内容