slurm--网络配置指南

简介: slurm--网络配置指南

概述

在Slurm集群中,有很多组件需要能够相互通信。有些站点有安全要求,不能打开机器之间的所有通信,需要有选择地打开必要的端口。本文件将介绍不同的组件需要怎样才能相互交流。

下面是一个相当典型的集群图,slurmctld和slurmdbd在不同的机器上。在较小的集群中,MySQL可以和slurmdbd运行在同一台机器上,但在大多数情况下,最好是让它运行在一台专门的机器上。 slurmd运行在计算节点上,客户端命令可以在你选择的机器上安装和运行。

network_standard.gif

slurmctld的通讯方式

slurmctld用于监听传入请求的默认端口是6817,这个端口可以通过slurm.conf修改SlurmctldPort参数改变。Slurmctld在该端口监听传入的请求,并在请求者打开的同一连接上作出回应。

运行slurmctld的机器也需要能够建立对外的连接,它需要在默认的6819端口与slurmdbd进行通信。它还需要与计算节点上的slurmd进行通信,默认端口为6818。

默认情况下,slurmctld会监听IPv4流量。通过在slurm.conf的CommunicationParameters中加入EnableIPv6,可以启用IPv6通信。在启用IPv6后,你可以通过在CommunicationParameters中加入DisableIPv4来禁用IPv4。这些设置必须在slurmdbd.conf和slurm.conf中匹配。

slurmdbd的通信

slurmdbd用于监听传入请求的默认端口是6819,这个端口可以通过slurmdbd.conf上的SlurmctldPort参数改变。Slurmdbd在该端口监听传入的请求,并在请求者打开的同一连接上进行响应。

运行slurmdbd的机器需要能够到达MySQL或MariaDB服务器,默认端口为3306。这个端口可以通过slurmdbd.conf上的StoragePort参数来改变。它还需要能够启动与slurmctld的连接,默认端口为6819。

默认情况下,slurmdbd将监听IPv4流量。通过在slurmdbd.conf的CommunicationParameters中加入EnableIPv6,可以启用IPv6通信。在启用IPv6后,你可以通过在CommunicationParameters中加入DisableIPv4来禁用IPv4。这些设置必须在slurmdbd.conf和slurm.conf中匹配。

slurmd的通信

slurmd用于监听来自slurmctld的传入请求的默认端口是6818,这个端口可以通过slurm.conf上的SlurmdPort参数来改变。

运行srun的机器也使用一系列的端口,以便能够与slurmstepd通信。默认情况下,这些端口是从短暂的端口范围中随机选择的,但是你可以使用SrunPortRange来指定一个可以从中选择的端口范围。这对于在防火墙后面的登录节点是必要的。

运行slurmd的机器需要能够在默认的6817端口与slurmctld建立连接。

默认情况下,slurmd通过IPv4进行通信。由于slurm.conf参数也会影响slurmd守护进程,请参见slurmctld部分,以了解如何改变这一点。

客户端命令的通信

大多数客户端命令默认会在6817端口与slurmctld进行通信(关于如何改变这一点,请参见slurmctld部分),以获得它们需要的信息。这包括以下命令。

  • salloc
  • sacctmgr
  • sbatch
  • sbcast
  • scancel
  • scontrol
  • sdiag
  • sinfo
  • sprio
  • squeue
  • sshare
  • sstat
  • strigger
  • sview

还有一些命令与slurmdbd直接通信,默认端口为6819,下面的命令从slurmdbd获取信息:

  • sacct
  • sacctmgr
  • sreport

当用户使用srun启动一个作业时,必须有一个从调用srun的机器到作业分配的节点的通信路径。通信遵循下面的顺序。

  1. srun向slurmctld发送作业分配请求
  2. slurmctld批准分配并返回详细信息
  3. srun向slurmctld发送步骤创建请求
  4. slurmctld用步骤凭证进行响应
  5. srun为I/O打开套接字
  6. srun将带有任务信息的凭证转发给slurmd
  7. slurmd根据需要转发请求(按扇出)。
  8. slurmd forks/execs slurmstepd
  9. slurmstepd连接I/O并启动任务
  10. 在任务终止时,slurmstepd会通知srun
  11. srun通知slurmctld任务终止
  12. slurmctld通过slurmd验证所有进程的终止,并为下一个作业释放资源

network_srun.gif

与多个控制器的通信

你可以配置一个次要的slurmctld和/或slurmdbd,作为主控制器发生故障时的后备。所涉及的端口不会改变,但有额外的通信路径需要考虑到。客户端命令需要能够到达运行slurmctld的两台机器,以及运行slurmdbd的两台机器。slurmctld的两个实例都需要能够到达slurmdbd的两个实例,每个slurmdbd都需要能够到达MySQL服务器。

network_failover.gif

与多个集群的通信

在多个slurmctld实例共享同一个slurmdbd的环境中,你可以将每个集群配置成独立的,并允许用户指定一个集群来提交他们的作业。不同守护进程使用的端口不会改变,但所有slurmctld实例都需要能够与同一个slurmdbd实例通信。你可以在多集群操作文档中阅读更多关于多集群配置的内容。

network_multi_cluster.gif

federation中的通信

Slurm还提供了在多个集群之间以点对点方式安排作业的能力,允许作业首先在有可用资源的集群上运行。这与多集群配置在通信需求上的区别在于,slurmctld的两个实例需要能够相互通信。在文档中有更多关于使用federation的细节。

network_federation.gif

与IPv6的通信

slurmctld、slurmdbd和slurmd守护进程默认使用IPv4通信,但它们可以被配置为使用IPv6。这可以通过在slurm.conf和slurmdbd.conf中设置CommunicationParameters=EnableIPv6,然后重新启动所有的守护进程来处理。在这种模式下,slurmd可以通过IPv4或IPv6运行。可以通过设置CommunicationParameters=EnableIPv6,DisableIPv4来禁用IPv4。在这个模式下,所有的东西都必须有一个有效的IPv6地址,否则连接会失败。

slurmctld希望一个节点能映射到一个IP地址(这将是用getaddrinfo()查找节点的IP时返回的第一个地址)。如果你在一个现有的集群上启用了IPv6,并且节点有IPv6地址,你必须重新启动slurmd守护进程以建立IPv6的通信。

在 /etc/gai.conf 中出现的优先级 ::fff:0:0/96 100 将导致 IPv4 地址在 IPv6 地址之前被返回。这可能会导致这样一种情况:你已经为 Slurm 启用了 IPv6,但仍然看到节点在用 IPv4 通信。如果对哪个地址被使用感到困惑,你可以调用 scontrol setdebugflags +NET 来在 slurmctld.log 中启用网络相关的调试日志。

如果启用了 IPv4 和 IPv6,环回接口可能仍然解析为 127.0.0.1。这不一定说明有问题。

目录
相关文章
|
安全 Linux 虚拟化
2022年的CentOS7 网络配置超详细ip、网关设置
在win10 系统中的虚机软件VMware Workstation中安装CentOS7,安装过程中没有设置网络,等安装完后才设置的(其实这个没有影响)。后来发现死活都是“有线线缆被拔出”。 解决问题的道路是艰辛的,特别是linux系统的问题。 1.确认你win10系统打开了这两个服务:VMware DHCP Service和VMware NAT Service
1381 1
2022年的CentOS7 网络配置超详细ip、网关设置
|
网络协议 虚拟化 网络架构
VM虚拟机三种网络配置详解(桥接、NAT、仅主机)
VM虚拟机三种网络配置详解(桥接、NAT、仅主机)
542 0
|
移动开发 开发工具 KVM
kvm新增桥接网络,和nat网络,host-only网络
kvm新增桥接网络,和nat网络,host-only网络
431 0
网络配置
网络配置
122 0
网络配置
|
监控 网络协议 Unix
Linux网络服务之网络配置与测试(上)
1 查看网络配置 1.1 ifconfig——查看网络接口信息 ifconfig命令来自于net-tools包 (图形化界面已安装,而最小化界面是没有的。需要自己安装) :
128 0
|
域名解析 网络协议 Unix
Linux网络服务之网络配置与测试(中)
1 查看网络配置 1.1 ifconfig——查看网络接口信息 ifconfig命令来自于net-tools包 (图形化界面已安装,而最小化界面是没有的。需要自己安装) :
181 0
|
域名解析 网络协议 Linux
Linux网络服务之网络配置与测试(下)
1 查看网络配置 1.1 ifconfig——查看网络接口信息 ifconfig命令来自于net-tools包 (图形化界面已安装,而最小化界面是没有的。需要自己安装) :
267 0
|
Linux 开发者
Lindux 的网络配置|学习笔记
快速学习 Lindux 的网络配置
Lindux 的网络配置|学习笔记
|
Kubernetes 网络协议 Linux
Paralles 虚拟机安装及网络配置--设置静态ip
Paralles 虚拟机安装及网络配置--设置静态ip
1313 0
Paralles 虚拟机安装及网络配置--设置静态ip