简介
坚持官网为第一手资料,努力做到按照本文即可快速使用slurm
As depicted in Figure 1, Slurm consists of a slurmd daemon running on each compute node and a central slurmctld daemon running on a management node (with optional fail-over twin). The slurmd daemons provide fault-tolerant hierarchical communications. The user commands include: sacct, sacctmgr, salloc, sattach, sbatch, sbcast, scancel, scontrol, scrontab, sdiag, sh5util, sinfo, sprio, squeue, sreport, srun, sshare, sstat, strigger and sview. All of the commands can run anywhere in the cluster.
快速部署使用
- Slurm Tutorials
- Documentation
- Quick Start User Guide #快速看Examples
本次部署说明
10.192.55.66作为管理节点(也是计算节点),其他的作为计算节点,管理节点需要运行的slurm服务有slurmdbd(记账服务)、slurmctld(控制管理服务)、slurmd(作业调度服务),其他的节点只需要运行slurmd(作业调度服务)即可。
1.依赖服务-munge认证服务部署
munge是认证服务,用于生成和验证证书。应用于大规模的HPC集群中,slurm官方推荐使用munge作为slurm作业调度系统的认证服务,用于主控节点和计算节点之间的认证通信。配置时分为server端和client端,其中server端应作为slurm调度服务的主控节点,用于管理认证服务。
本次配置系统为:Centos stream 9
server端IP:10.192.55.66
client端:10.192.55.66、87-88
- server端配置:
1)server端首先需要确保以前没有安装过munge,如果安装过需要把以前的munge用户删掉
dnf remove munge-libs munge -y
userdel -r munge
2)删除完之后需要新建munge用户,server端和client端的munge用户UID必须保持一致,因此必须在创建时指定UID,执行如下命令即可。
export MUNGEUSER=1120
groupadd -g $MUNGEUSER munge
useradd -m -c "MUNGE Uid 'N' Gid Emporium" -d /var/lib/munge -u $MUNGEUSER -g munge -s /sbin/nologin munge
3)安装包
yum install munge munge-devel munge-libs rng-tools -y
4)为系统新增熵池
rngd -r /dev/urandom
5)创建munge.key文件:
create-munge-key
6)在/etc/munge/下面会生成munge.key,需修改munge.key的权限以及所属用户,把所属用户改成munge。
dd if=/dev/urandom bs=1 count=1024 > /etc/munge/munge.key
chown munge: /etc/munge/munge.key
chmod 400 /etc/munge/munge.key
chown -R munge: /var/lib/munge
chown -R munge: /var/run/munge
chown -R munge: /var/log/munge
7)把munge.key分发给其他的client端的机器:
scp /etc/munge/munge.key root@hik7:/etc/munge/
scp /etc/munge/munge.key root@hik8:/etc/munge/
6)启动munge service
systemctl status munge.service
systemctl start munge.service
systemctl enable munge.service
- client 配置
1)server端首先需要确保以前没有安装过munge,如果安装过需要把以前的munge用户删掉
dnf remove munge-libs munge -y
userdel -r munge
2)删除完之后需要新建munge用户,server端和client端的munge用户UID必须保持一致,因此必须在创建时指定UID,执行如下命令即可。
export MUNGEUSER=1120
groupadd -g $MUNGEUSER munge
useradd -m -c "MUNGE Uid 'N' Gid Emporium" -d /var/lib/munge -u $MUNGEUSER -g munge -s /sbin/nologin munge
3)安装包
yum install munge munge-devel munge-libs rng-tools -y
4)为系统新增熵池
rngd -r /dev/urandom
5)在配置server端时,已经把munge.key发送至了client端,此时在client端同样需修改munge.key文件的所属用户,并修改相关目录的权限,改成munge即可。
chmod 700 /etc/munge
chown -R munge: /etc/munge
chown -R munge: /var/lib/munge
chown -R munge: /var/run/munge
chown -R munge: /var/log/munge
6)启动munge service
systemctl status munge.service
systemctl start munge.service
systemctl enable munge.service
2.主控节点配置slurm
1)配置slurmdbd服务
- 添加slurm用户
export SLURMUSER=1121
groupadd -g $SLURMUSER slurm
useradd -m -c "SLURM workload manager" -d /var/lib/slurm -u $SLURMUSER -g slurm -s /bin/bash slurm
- 安装slurm rpm包
dnf install slurm -y;dnf install slurm-* -y
systemctl enable slurmctld.service slurmdbd.service
systemctl start slurmctld.service slurmdbd.service
-修改权限
- 修改配置文件/etc/slurm/slurmdbd.conf
修改项:
AuthInfo=/var/run/munge/munge.socket.2
2)配置slurmd服务
- 编辑/etc/slurm/slurm.conf
修改项:
SlurmctldHost=hik6
# COMPUTE NODES
NodeName=hik[6-8] CPUs=1 State=UNKNOWN
# PARTITIONS
PartitionName=daos_client Nodes=ALL Default=YES MaxTime=INFINITE State=UP
- 启动slurmd 、slurmctld
systemctl enable slurmd.service
systemctl start slurmd.service
systemctl enable slurmctld.service
systemctl start slurctld.service
3.计算节点
dnf install slurm -y;dnf install slurm-* -y
systemctl enable slurmd.service
systemctl start slurmd.service
4.检查slurm部署的正确性-闭环
在主控节点:可以看到partition 信息了
[root@hik6 ftest]# sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
daos_client* up infinite 3 idle hik[6-8]