经验怪谈

技术文章

用 OpenHPC 装 Slurm

管理节点装 slurm-server,计算节点装 slurm-client。slurm.conf 按本集群写,不要复制别人的主机名。

2026-08-28 · Slurm · HPC / 集群 · Linux / 服务器

适用于 Rocky / RHEL 9 一类、用 OpenHPC 仓库装 Slurm 的情况。EL8 用 OpenHPC 2 的 release 包。

1. 添加 OpenHPC 仓库

EL9(Rocky / RHEL 9.1 或更高):

sudo yum install https://repos.openhpc.community/OpenHPC/3/EL_9/x86_64/ohpc-release-3-1.el9.x86_64.rpm -y

CentOS 8 / 较低版本用 OpenHPC 2:

sudo yum install https://repos.openhpc.community/OpenHPC/2/CentOS_8/x86_64/ohpc-release-2-1.el8.x86_64.rpm -y

2. 主控节点装服务器组件

sudo yum install ohpc-slurm-server -y

3. 计算节点装客户端组件

sudo yum install ohpc-slurm-client -y

还需 Munge 等认证组件(OpenHPC 包一般会带依赖)。所有节点的 Munge key 必须一致,先在管理节点生成再同步,不要把 key 发到聊天或公开仓库。

slurm.conf

原文写到 cat > /etc/slurm/slurm.conf 后被截断,现场那份集群名没有完整贴出来。这一步还在:把配置写进 /etc/slurm/slurm.conf。下面是占位,必须改成自己的主机名和规模

sudo tee /etc/slurm/slurm.conf >/dev/null <<'EOF'
ClusterName=mycluster
SlurmctldHost=head01
MpiDefault=none
ProctrackType=proctrack/cgroup
ReturnToService=1
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
SlurmdSpoolDir=/var/spool/slurmd
SlurmUser=slurm
StateSaveLocation=/var/spool/slurmctld

NodeName=node[01-04] CPUs=64 RealMemory=250000 State=UNKNOWN
PartitionName=debug Nodes=node[01-04] Default=YES MaxTime=INFINITE State=UP
EOF

至少要改:

  • ClusterName
  • SlurmctldHost(管理节点主机名)
  • NodeName / PartitionName
  • 每节点 CPUsRealMemorylscpu / free 对齐

配完后在管理节点起 slurmctld,计算节点起 slurmd,用 sinfo / scontrol ping 看节点是否 idle。节点名必须能解析(/etc/hosts 或 DNS)。

时间同步、防火墙只放行 Slurm/Munge 需要的端口。具体端口以你安装的 Slurm 版本文档为准。