升级slurm,从18.08到23.02

前言

本笔记是大致流程,给有一定管理经验的slurm cluster管理员参考,还是建议大家少折腾。

环境

CentOS7, openHPC1.3.9全家桶(附带slurm18.08),xcat集群管理(没有xcat的话,用for循环ssh代替psh和pscp)

slurm版本

Slurm最近的大版本如下(年.月)
18.08, 19.05, 20.02, 20.11, 21.08, 22.05, 23.02, 23.11
Slurm升级时要求不能超过两个大版本,所以策略是:
18.08->20.02->21.08->23.02

软件仓库

本次需要的20.02,21.08,23.02都需要自行下载rpm包

wget --mirror --no-parent https://depot.galaxyproject.org/yum/package/slurm/23.11/7/x86_64/18.08

下载下来就能当仓库,我们只取最后的文件夹,mysql有现成的,应该不需要额外安装

|-- 18.08
|   |-- _archive
|   |-- index.html
|   |-- munge-0.5.14-1.el7.x86_64.rpm
|   |-- munge-devel-0.5.14-1.el7.x86_64.rpm
|   |-- munge-libs-0.5.14-1.el7.x86_64.rpm
|   |-- repodata
|   |-- slurm-18.08.9-1.el7.x86_64.rpm
|   |-- slurm-contribs-18.08.9-1.el7.x86_64.rpm
|   |-- slurm-devel-18.08.9-1.el7.x86_64.rpm
|   |-- slurm-slurmd-18.08.9-1.el7.x86_64.rpm
|   |-- slurm-slurmdbd-18.08.9-1.el7.x86_64.rpm
...
|   `-- _staging
|-- 20.02
|   |-- _archive
|   |-- index.html
...
|-- 21.08
...
|-- 22.05
...
|-- 23.02
...

升级操作

参考

https://wiki.fysik.dtu.dk/Niflheim_system/Slurm_installation/#upgrading-slurm

首先备份数据库(如果不需要计费,也没有特殊规则,问题不大,正常升级不会损坏数据库)
升级顺序是->slurmdbd -> slurmctld -> slurmd
18.08似乎不能把任务扔下而升级slurm(我这里的bug?),我直接停了全部的slurm服务后开始操作

由于slurm与slurm-openHPC不兼容,所以要先在所有节点上卸载openHPC中slurm和相关软件包(比如munge)

psh compute yum remove -y munge-ohpc munge-libs-ohpc slurm-example-configs-ohpc;
yum remove -y slurmdbd slurmctld

创建一个repo

[slurm20.02]
name=Slurm 20.02 Repository
baseurl=file:///root/slurm20.02/
enabled=1
gpgcheck=0

分发到各个计算节点

psh compute mkdir /etc/yum.repos.d/bak/
psh compute mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
pscp /etc/yum.repos.d/slurm20.02.repo compute:/etc/yum.repos.d/slurm20.02.repo
# 分发软件包,如果有合适的共享存储,放在共享存储也行
pscp ~/slurm20.02 compute:

管理节点安装slurmctld和slurmdbd

#把其他所有repo放在bak中,或者去对应文件夹安装rpm全称
yum install -y slurm-slurmcdbd slurm-slurmctld
#不要使用systemd启动slurmdbd,使用命令启动并转化数据库到新版。
slurmdbd -D -vvv

结束后slurmdbd不会结束,看到成功rollup就好,Ctrl+C结束即可。
计算节点安装slurmd和pam(如果需要pam的话)

psh compute yum install slurm-slurmd slurm-pam_slurm

可以启动所有服务了。
下一个版本升级按相似的顺序来。
升级过程中如果遇到数据库升级报错,服务无法启动的情况
也许需要journalctl -xeu service_name查看日志,排查错误。
距离升级过去了几天才有时间写笔记,有点儿记不清了,有问题再讨论。

posted @ 2024-01-16 21:19  花花今天没吃药  阅读(210)  评论(0编辑  收藏  举报