我正在尝试建立一个简单的 Slurm 集群。设置如下:两台虚拟机,一台是master(也是一台worker),我们称之为Master(ubu18gpu-210),另一台是另一个worker,我们称之为Worker(ubu18gpu-211) )。
两台机器的名称都是 hostname -s
的准确输出。命令。
所有要求和 Slurm 的安装已经在两台机器上完成。我什至可以在主节点上运行作业。但是,我面临的问题是 Worker 无法连接到 master。
我在主节点中运行 Slurmdbd、Slurmctld 和 Slurmd 守护程序,没有任何问题。 Worker 节点也在运行 Slurmd 守护进程,但日志总是报告相同的错误:
[2021-09-22T10:52:54.049] error: get_addr_info: getaddrinfo() failed: Name or service not known
[2021-09-22T10:52:54.049] error: slurm_set_addr: Unable to resolve "ubu18gpu-210"
[2021-09-22T10:52:54.049] error: Unable to establish control machine address
[2021-09-22T10:52:54.049] error: Unable to register: No error
多次查看配置文件slurm.conf
我认为这是正确的,至少是专门用于定义主节点和节点的部分:slurm.conf
使用
sinfo
在主节点中显示信息时会出现奇怪的情况。和 scontrol
命令。我将在此处粘贴输出:sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
debug* up infinite 2 idle ubu18gpu-[210-211]
scontrol show nodes ubu18gpu-[210-211]
NodeName=ubu18gpu-210 Arch=x86_64 CoresPerSocket=6
CPUAlloc=0 CPUTot=6 CPULoad=0.00
AvailableFeatures=(null)
ActiveFeatures=(null)
Gres=gpu:1
NodeAddr=192.168.23.210 NodeHostName=ubu18gpu-210 Version=21.08.0
OS=Linux 4.15.0-117-generic #118-Ubuntu SMP Fri Sep 4 20:02:41 UTC 2020
RealMemory=23531 AllocMem=0 FreeMem=8695 Sockets=1 Boards=1
State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A
Partitions=debug
BootTime=2021-09-21T16:13:38 SlurmdStartTime=2021-09-22T11:08:39
LastBusyTime=2021-09-22T11:08:39
CfgTRES=cpu=6,mem=23531M,billing=6,gres/gpu=1
AllocTRES=
CapWatts=n/a
CurrentWatts=0 AveWatts=0
ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s
NodeName=ubu18gpu-211 CoresPerSocket=6
CPUAlloc=0 CPUTot=6 CPULoad=0.00
AvailableFeatures=(null)
ActiveFeatures=(null)
Gres=gpu:1
NodeAddr=192.168.23.211 NodeHostName=ubu18gpu-211
RealMemory=23531 AllocMem=0 FreeMem=22257 Sockets=1 Boards=1
State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A
Partitions=debug
BootTime=None SlurmdStartTime=None
LastBusyTime=2021-09-22T11:08:42
CfgTRES=cpu=6,mem=23531M,billing=6,gres/gpu=1
AllocTRES=
CapWatts=n/a
CurrentWatts=0 AveWatts=0
ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s
似乎可以正确检测到 Worker 节点,尽管我认为这是因为配置文件中的信息。我真的不知道会发生什么......我可以正确地从一台机器ping到另一台机器,因此它们之间存在连接。我还打开了 6817-6818 Slurm 默认端口,没有任何改进。我也关注了Official Troubleshooting Guide一切似乎都是正确的。
此外,我使用网络时间协议(protocol) (NTP) 在机器之间同步时间。 Master 托管 NTP 服务器,Worker 的输出为:
ntpq -c lpeer
remote refid st t when poll reach delay offset jitter
==============================================================================
*192.168.23.210 LOCAL(0) 11 u 38 64 377 0.255 -0.518 0.299
我认为这是正确的行为有谁知道这里可能发生什么?
最佳答案
好吧,看来幸运的是我已经找到了解决方案。我不知道我的配置中是否有特定内容,但在每个节点中我必须更新 /etc/hosts
文件添加主名称和 IP 为:
192.168.23.210 ubu18gpu-210 ubu18gpu-210
关于ubuntu - Slurm Worker 节点无法连接到 Master 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69281495/