slurm 23.11.0集群 debian 11.5 安装

slurm 23.11.0集群 debian 11.5 安装

用途

Slurm(Simple Linux Utility for Resource Management, http://slurm.schedmd.com/ )是开源的、具有容错性和高度可扩展的Linux集群超级计算系统资源管理和作业调度系统。超级计算系统可利用Slurm对资源和作业进行管理,以避免相互干扰,提高运行效率。所有需运行的作业,无论是用于程序调试还是业务计算,都可以通过交互式并行 srun 、批处理式 sbatch 或分配式 salloc 等命令提交,提交后可以利用相关命令查询作业状态等。

架构

Slurm采用slurmctld服务(守护进程)作为中心管理器用于监测资源和作业,为了提高可用性,还可以配置另一个备份冗余管理器。各计算节点需启动slurmd守护进程,以便被用于作为远程shell使用:等待作业、执行作业、返回状态、再等待更多作业。slurmdbd(Slurm DataBase Daemon)数据库守护进程(非必需,建议采用,也可以记录到纯文本中等),可以将多个slurm管理的集群的记账信息记录在同一个数据库中。还可以启用slurmrestd(Slurm REST API Daemon)服务(非必需),该服务可以通过REST API与Slurm进行交互,所有功能都对应的API。用户工具包含 srun 运行作业、 scancel 终止排队中或运行中的作业、 sinfo 查看系统状态、 squeue 查看作业状态、 sacct 查看运行中或结束了的作业及作业步信息等命令。 sview 命令可以图形化显示系统和作业状态(可含有网络拓扑)。 scontrol 作为管理工具,可以监控、修改集群的配置和状态信息等。用于管理数据库的命令是 sacctmgr ,可认证集群、有效用户、有效记账账户等。

1701768313341

xxxxxxxxxx10 1#192.168.86.134 - 192.168.86.1362cd3ssh-keygen 4sed -i ‘s/#PermitRootLogin prohibit-password/PermitRootLogin yes/’ /etc/ssh/sshd_config5systemctl restart ssh6passwd7#192.168.86.134 8ssh-copy-id slurm-head9ssh-copy-id slurm-db10ssh-copy-id slurm-computebash

  • SlurmDBD Node
    • slurm-smd
    • slurm-smd-slurmdbd
  • Head Node (slurmctld node)
    • slurm-smd
    • slurm-smd-slurmctld
  • Compute Nodes (slurmd node)
    • slurm-smd
    • slurm-smd-slurmd

192.168.86.134 slurm-head # 控制节点 Head Node
192.168.86.135 slurm-db #数据节点 SlurmDBD Node
192.168.86.136 slurm-compute #计算节点 Compute Nodes

注意:如果是老服务器,已有服务在运行,可不改具体的hostname只要对应名称进行替换

修改主机名

# 192.168.86.134 
hostnamectl set-hostname  slurm-head
# 192.168.86.135
hostnamectl set-hostname  slurm-db
# 192.168.86.136
hostnamectl set-hostname  slurm-compute

修改/etc/hosts

#192.168.86.134 - 192.168.86.136
echo "192.168.86.134  slurm-head 
192.168.86.135  slurm-db
192.168.86.136  slurm-compute" >>/etc/hosts
cat /etc/hosts

修改debian的apt源

#192.168.86.134 - 192.168.86.136
mv /etc/apt/sources.list{,.bak}echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmwaredeb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmwaredeb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmwaredeb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware" >/etc/apt/sources.listapt update
apt -y install vim wget

同步时间

#192.168.86.134 - 192.168.86.136
apt update
apt install ntpdate -y
ntpdate ntp1.aliyun.com

远程免密

#192.168.86.134 - 192.168.86.136
cd
ssh-keygen sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
systemctl restart ssh
#192.168.86.134 
ssh-copy-id slurm-head
ssh-copy-id slurm-db
ssh-copy-id slurm-compute

安装munge

#192.168.86.134 - 192.168.86.136
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.安装munge软件
#192.168.86.134 - 192.168.86.136
apt-get install -y munge libmunge-dev libmunge2 rng-tools make hwloc libhwloc-dev git gcc build-essential fakeroot devscripts debhelper libncurses-dev libgtk2.0-dev libpam0g-dev libperl-dev liblua5.3-dev libhwloc-dev dh-exec librrd-dev libipmimonitoring-dev hdf5-helpers libfreeipmi-dev libhdf5-dev man2html libcurl4-openssl-dev libpmix-dev libhttp-parser-dev libyaml-dev libjson-c-dev libjwt-dev liblz4-dev libdbus-1-dev librdkafka-dev libreadline-dev perl libpam0g-dev liblua5.3-dev libhwloc-dev#192.168.86.135
apt-get install mariadb-server libmariadb-dev-compat libmariadb-dev -y
4.添加配置文件 
rngd -r /dev/urandom
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/mungescp /etc/munge/munge.key root@slurm-db:/etc/munge/
scp /etc/munge/munge.key root@slurm-compute:/etc/munge/
6.启动服务systemctl restart munge
systemctl enable munge
systemctl status munge
#192.168.86.135 - 192.168.86.136rngd -r /dev/urandom
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/mungesystemctl start munge
systemctl enable munge
systemctl status munge 

安装slurm

#添加用户
#192.168.86.134 - 192.168.86.136
groupadd slurm
useradd -r -M -g slurm slurm  ## 编译安装
#192.168.86.134  - 192.168.86.136
wget https://download.schedmd.com/slurm/slurm-23.11.0.tar.bz2
tar -xf slurm-23.11.0.tar.bz2
cd slurm-23.11.0/
./configure --enable-debug  --prefix=/usr/local/slurm make && make install#查看是否缺少插件
#192.168.86.135 
ls /usr/local/slurm/lib/slurm|grep accounting_storag|grep mysql  ##启动并且登陆,创建数据库
systemctl start mariadb
mysql -u rootCREATE DATABASE slurm_acct_db;
CREATE USER 'slurm'@'192.168.86.135';
SET PASSWORD FOR 'slurm'@'192.168.86.135' = PASSWORD('mypassword');
GRANT ALL PRIVILEGES ON slurm_acct_db.* TO 'slurm'@'192.168.86.135';
FLUSH PRIVILEGES;
EXIT;CREATE DATABASE slurm_acct_db;
CREATE USER 'slurm'@'192.168.86.134';
SET PASSWORD FOR 'slurm'@'192.168.86.134' = PASSWORD('mypassword');
GRANT ALL PRIVILEGES ON slurm_acct_db.* TO 'slurm'@'192.168.86.134';
FLUSH PRIVILEGES;
EXIT;## 创建文件夹,并且赋权
mkdir -p /var/log/slurm/
chown slurm:  /var/log/slurm/
## 编写配置文件
vim slurmdbd.conf
AuthType=auth/mungeDbdAddr=localhost
DbdHost=localhost
#DbdPort=7031
SlurmUser=slurm                      
MessageTimeout=300                  
DebugLevel=debug5                    
DefaultQOS=normal                  
LogFile=/var/log/slurm/slurmdbd.log 
PidFile=/var/run/slurmdbd.pid
StorageType=accounting_storage/mysql
StorageHost=localhost              
StoragePort=3306                    
StoragePass=mypassword               
StorageUser=slurm                    
StorageLoc=slurm_acct_db             ##更改文件权限
chown slurm: /usr/local/slurm/etc/slurmdbd.conf
chmod 600 /usr/local/slurm/etc/slurmdbd.conf
systemctl start slurmdbd
systemctl status slurmdbdsystemctl enable  slurmdbd#192.168.86.134 - 192.168.86.136 ##控制节点或计算节点
cp -rf etc/ /usr/local/slurm/
cp etc/slurm*.service /lib/systemd/system/cd /usr/local/slurm/etc
cp slurm.conf.example slurm.conf
cp cgroup.conf.example cgroup.conf
cp slurmdbd.conf.example slurmdbd.conf  ## 修改cgroup配置
echo "CgroupMountpoint=/sys/fs/cgroup"  >> cgroup.conf
cat  cgroup.confvim slurm.confClusterName=myCluster
SlurmctldHost=slurm-head
#SlurmctldHost=
#
MpiDefault=none
ProctrackType=proctrack/cgroup
ReturnToService=1
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmctldPort=6817
SlurmdPidFile=/var/run/slurmd.pid
SlurmdPort=6818
SlurmdSpoolDir=/var/spool/slurmd
SlurmdUser=root
StateSaveLocation=/var/spool/slurmctld
SwitchType=switch/none
TaskPlugin=task/affinity
#TaskPlugin=task/cgroup#
#
# TIMERS
InactiveLimit=0
KillWait=30
MinJobAge=300
SlurmctldTimeout=120
SlurmdTimeout=300Waittime=0# SCHEDULING
SchedulerType=sched/backfill
SelectType=select/cons_tres
SelectTypeParameters=CR_Core_Memory
#
#
# JOB PRIORITY
AccountingStorageEnforce=qos,limits
AccountingStorageHost=slurm-db
AccountingStoragePass=/var/run/munge/munge.socket.2
AccountingStorageType=accounting_storage/slurmdbd
AccountingStorageUser=slurm
#AccountingStorageTRES=gres/gpu
JobCompHost=slurm-db
JobCompLoc=slurm_acct_db
JobCompPass=mypassword
JobCompType=jobcomp/none
JobCompUser=slurm
JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/linux
SlurmctldDebug=info
SlurmctldLogFile=/var/log/slurm/slurmctld.log
SlurmdDebug=info
SlurmdLogFile=/var/log/slurm/slurmd.log
#GresTypes=gpuNodeName=slurm-head      RealMemory=1935 State=UNKNOWN
NodeName=slurm-db        RealMemory=1935 State=UNKNOWN
NodeName=slurm-compute   RealMemory=1935 State=UNKNOWN
PartitionName=compute Nodes=slurm-head,slurm-compute  Default=YES MaxTime=168:00:00 State=UP## 创建一些文件,赋权
mkdir /var/log/slurm/touch /var/log/slurm/slurmctld.log
chown slurm: /var/log/slurm/slurmctld.log
chmod u+rw /var/log/slurm/slurmctld.log
touch /var/log/slurm/slurmd.log
chown slurm:   /var/log/slurm/slurmd.log
chmod u+rw /var/log/slurm/slurmd.log
mkdir -p /var/spool/slurmctld
chown slurm: /var/spool/slurmctldmkdir -p /var/spool/slurmd 
chown slurm:  /var/spool/slurmd chown slurm:  /var/log/slurm/systemctl restart slurmctld
systemctl status slurmctldsystemctl restart slurmd
systemctl status slurmdsystemctl enable   slurmctldsystemctl enable  slurmd
***有问题,根据提示,执行以下命令,看下面的踩坑环节***
journalctl  -xeu slurmd
journalctl  -xeu slurmctld
journalctl  -xeu slurmdbd

展示

  • 集群状态验证

1702024509513

  • 任务运行验证

image-20231208163625453

image-20231208163654578

image-20231208163708305

  • 数据库写入验证(与slurmdbd通信 192.168.86.135机器)

image-20231208163224989

image-20231208163252141

image-20231208163313194

image-20231208163332279

踩坑环节

  • Couldn’t find the specified plugin name for cgroup/v2 looking at all files

    ░░ The job identifier is 1747.
    Dec 07 06:28:09 slurm-head slurmd[59887]: slurmd: error: Couldn't find the specified plugin name for cgroup/v2 looking at all files
    Dec 07 06:28:09 slurm-head slurmd[59887]: slurmd: error: cannot find cgroup plugin for cgroup/v2
    Dec 07 06:28:09 slurm-head slurmd[59887]: slurmd: error: cannot create cgroup context for cgroup/v2
    Dec 07 06:28:09 slurm-head slurmd[59887]: slurmd: error: Unable to initialize cgroup plugin
    Dec 07 06:28:09 slurm-head slurmd[59887]: slurmd: error: slurmd initialization failed
    Dec 07 06:28:09 slurm-head systemd[1]: slurmd.service: Main process exited, code=exited, status=1/FAILURE
    ░░ Subject: Unit process exited
    

    这是因为,缺少/usr/local/slurm/lib/slurm/cgroup_v2.so,不要看网上的,很扯淡,基本上没有参考价值

image-20231208170235994

解决:

#老老实实吧以下命令执行一遍
apt-get install -y munge libmunge-dev libmunge2 rng-tools make hwloc libhwloc-dev git gcc build-essential fakeroot devscripts debhelper libncurses-dev libgtk2.0-dev libpam0g-dev libperl-dev liblua5.3-dev libhwloc-dev dh-exec librrd-dev libipmimonitoring-dev hdf5-helpers libfreeipmi-dev libhdf5-dev man2html libcurl4-openssl-dev libpmix-dev libhttp-parser-dev libyaml-dev libjson-c-dev libjwt-dev liblz4-dev libdbus-1-dev librdkafka-dev libreadline-dev perl libpam0g-dev liblua5.3-dev libhwloc-dev
#然后重新config make
cd slurm-23.11.0/
make uninstall
make clean
./configure --enable-debug  --prefix=/usr/local/slurm make && make install
  • slurmdbd无法运行,排除数据库信息不对后

需要make前,安装mariadb/mysql,哪怕你的mysql/mariadb不跟slurmdbd在一台,都是要装,不然缺少组件

缺少/usr/local/slurm/lib/slurm/accounting_storage_mysql.so

  • error: cgroup namespace ‘freezer’ not mounted. aborting

说明你方向错了,没有按照我的配置,先按“Couldn’t find the specified plugin name for cgroup/v2 looking at all files”解决方案解决,然后cgrep.conf如下配置

#CgroupAutomount=yes
CgroupMountpoint=/sys/fs/cgroup
ConstrainCores=yes
ConstrainDevices=yes
ConstrainRAMSpace=yes
ConstrainSwapSpace=yes

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/221015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Jmeter】Jmeter基础4-Jmeter元件介绍之监听器

2.4、监听器 监听器主要用于收集、统计、查看和分析结果。 2.4.1、察看结果树 作用:查看取样器请求和响应结果,包括消息头,请求的数据,响应的数据等。一般在调试时才用,在实际运行压测时建议禁用,因为大量…

【NSX-T】6. 搭建NSX-T环境 —— 配置 Segment 网段

目录 6. 配置 SegmentLab 说明6.1 创建 Segment(1)创建 Web-Segment(2)创建 App-Segment 和 DB-SegmentApp-SegmentDB-Segment 6.2 验证 Segment(1)在 NSX Manager中查看(2)在vSpher…

前端走向未来:真相还是焦虑的贩卖?

目录 一、为什么会出现“前端已死”的言论 二、你如何看待“前端已死” 三、前端技术的未来发展趋势 四、前端人,该如何打好这场职位突围战? 我的其他博客 一、为什么会出现“前端已死”的言论 近来,IT圈内流传着“Java 已死、前端已凉”…

医院污水处理设备远程监控超标报警解决方案

行业背景 近年来,我国医疗机构建设得到了巨大的发展。根据《2022年我国卫生健康事业发展统计公报》,2022年末,全国医疗卫生机构总数达1032918个。截至2022年10月,根据全国排污许可证管理信息平台,共有 13316家医院核发…

修改Docker0和容器的地址

修改Docker0和容器的地址 1. 需求 默认服务器安装完Docker-ce后会给docker0分配172.17.0.1/16地址. 公司新接入一个网段正好与172.17.0.1/16冲突,此时访问这台服务器的容器时就会发生网络不可达. 2. 解决方法 修改/etc/docker/daemon.json 加入一个自定义网段 vim /etc/d…

想要在电脑桌面上使用手机便签怎么操作?

作为一名上班族,我们时常需要在电脑和手机之间同步使用便签,以记录工作、生活中的重要事项。然而,有些时候我们可能更习惯在手机上使用便签,但又希望在电脑桌面上也能够方便地查看和编辑这些便签。那么,如何在电脑桌面…

k8s-8 ingress

ExternalName类型 当集群外的资源往集群内迁移时,地址并不稳定,访问域名或者访问方式等会产生变化; 使用svc的方式来做可以保证不会改变:内部直接访问svc;外部会在dns上加上解析,以确保访问到外部地址。 …

20231214使用WPS将英文SRT字幕的全大写字符转换为首字母大写的小写字幕

20231214使用WPS将英文SRT字幕的全大写字符转换为首字母大写的小写字幕 2023/12/14 13:16 看英文纪录片,发现英文字母是全部大写。 所以需要整理成为小写的字幕【句子的首字符大小!】 https://re.talking.1080p.hdtv.x265.aac.mvgroup.org/index.php?t…

【owt-server】清理日志:owt、srs、ffmpeg

运行一段时间后,云主机的磁盘满了owt的日志和 srs的日志比较多。查看日志文件占用: du 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹 关闭owt-server dist# ./bin/stop-all.sh root@k8s-master-2K4G:~/p2p/zdsvr-20201229/dist# ./bin/stop-all.sh stopp…

Excel函数 - Filter函数六种查询用法

语法:filter(查询区域,条件,查不到结果返回的值) 注意条件是布尔表达式,这个条件为true,filter才返回结果,否则查不到结果。 一、单条件查询,返回多行多列记录 我们要查询“苹果”这个水果&a…

【强化学习-读书笔记】有限马尔可夫决策过程

参考 Reinforcement Learning, Second Edition An Introduction By Richard S. Sutton and Andrew G. BartoMDP 是强化学习问题在数学上的理想化形式,因为在这个框架下我们可以进行精确的理论说明 智能体与环境的交互 智能体与环境交互,会得到轨迹&…

蓝桥杯网络安全组竞赛

竞赛规则及说明 选拔赛时长:4h 决赛时长:4h 竞赛形式:线上比赛: 个人赛:一人一机,全程机考 大赛制定竞赛系统,在时间内提交答案到比赛系统,超时无法提交 机器环境: 电脑…

Navicat 技术指引 | 适用于 GaussDB 分布式的备份/还原功能

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式数据库。GaussDB 分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结…

鸿蒙Web组件_学习

Web组件概述 Web组件用于在应用程序中显示Web页面内容,为开发者提供页面加载、页面交互、页面调试等能力。 页面加载:Web组件提供基础的前端页面加载的能力,包括加载网络页面、本地页面、Html格式文本数据。页面交互:Web组件提供…

产品经理之如何编写竞品分析(医疗HIS系统管理详细案例模板)

目录 一.项目周期 二.竞品分析的目的 三.竞品分析包含的维度 四.如何选择竞品 五.竞品画布 六.案例模板 一.项目周期 在整个项目的周期,产品经理所做的事情主要在项目前期做市场分析、需求调研等,下面一张图概况了整个项目周期产品经理、开发工程师…

成都工业学院2021级操作系统专周课程设计FCFS,SSTF,SCAN,LOOK算法的实现

运行环境 操作系统&#xff1a;Windows 11 家庭版 运行软件&#xff1a;CLion 2023.2.2 源代码文件 #include <iostream> #include <vector> #include <algorithm> #include <random> using namespace std;// 生成随机数 int generateRandomNumber…

工业级以太网交换机的功能介绍

随着互联网技术的迅猛发展&#xff0c;工业以太网在工业通信领域中发挥着重要作用。在整个工业通信行业中&#xff0c;工业以太网交换机作为关键的通信设备&#xff0c;具有非常重要的功能。那么&#xff0c;什么是工业以太网交换机呢&#xff0c;它有哪些功能呢&#xff1f; …

栈——OJ题

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、最小栈1、题目讲解2、思路讲解3、代码实现 二、栈的压入、弹出序列1、题目讲解2、思路讲解…

华为交换机——配置策略路由(基于IP地址)示例

一、组网需求&#xff1a; 汇聚层Switch做三层转发设备&#xff0c;接入层设备LSW做用户网关&#xff0c;接入层LSW和汇聚层Switch之间路由可达。汇聚层Switch通过两条链路连接到两个核心路由器上&#xff0c;一条是高速链路&#xff0c;网关为10.1.20.1/24&#xff1b;另外一…

06进程间关系-学习笔记

Orphan Process孤儿进程 父进程先于子进程退出&#xff0c;子进程失去托管&#xff0c;这种子进程统称为孤儿进程 失效进程&#xff08;孤儿进程&#xff09;&#xff1a;导致内存泄漏&#xff0c;影响新进程的创建孤儿进程的危害不可预测&#xff0c;如果一个孤儿进程持续的申…