您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# CentOS中如何部署Slurm
## 目录
1. [Slurm简介](#slurm简介)
2. [部署前准备](#部署前准备)
3. [安装依赖环境](#安装依赖环境)
4. [Slurm组件安装](#slurm组件安装)
5. [配置管理节点](#配置管理节点)
6. [配置计算节点](#配置计算节点)
7. [集群服务管理](#集群服务管理)
8. [基础功能验证](#基础功能验证)
9. [高级配置选项](#高级配置选项)
10. [常见问题排查](#常见问题排查)
11. [性能优化建议](#性能优化建议)
12. [安全加固方案](#安全加固方案)
13. [监控与告警](#监控与告警)
14. [备份与恢复](#备份与恢复)
15. [版本升级指南](#版本升级指南)
## Slurm简介
(约600字)
- 定义:Slurm(Simple Linux Utility for Resource Management)是开源的集群管理和作业调度系统
- 发展历史:由劳伦斯利弗莫尔国家实验室开发,现已成为HPC领域事实标准
- 核心功能:
- 资源分配与调度
- 作业队列管理
- 负载均衡
- 故障恢复
- 典型应用场景:科研计算、训练、批量任务处理
## 部署前准备
(约800字)
### 硬件要求
- 管理节点配置建议(CPU/内存/存储)
- 计算节点配置差异
- 网络拓扑设计(建议10Gbps以上互联)
### 系统环境
```bash
# 验证操作系统版本
cat /etc/redhat-release
# 示例输出:CentOS Linux release 7.9.2009 (Core)
主机名 | IP地址 | 角色 | 备注 |
---|---|---|---|
slurm-ctr | 10.0.0.100 | 管理节点 | 运行slurmctld |
slurm-c01 | 10.0.0.101 | 计算节点 | 运行slurmd |
slurm-c02 | 10.0.0.102 | 计算节点 | GPU节点特殊配置 |
(约700字)
yum install -y epel-release
yum groupinstall -y "Development Tools"
yum install -y mariadb-server mariadb-devel \
openssl-devel pam-devel rpm-build \
hwloc hwloc-devel lua lua-devel \
readline-devel rrdtool-devel \
freeipmi freeipmi-devel
CREATE DATABASE slurm_acct_db;
CREATE USER 'slurm'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON slurm_acct_db.* TO 'slurm'@'localhost';
echo 'export SLURM_HOME=/usr/local/slurm' >> /etc/profile
source /etc/profile
(约900字)
wget https://download.schedmd.com/slurm/slurm-21.08.8.tar.bz2
tar xjf slurm-21.08.8.tar.bz2
cd slurm-21.08.8
./configure --prefix=/usr/local/slurm \
--with-mysql_config=/usr/bin/mysql_config \
--sysconfdir=/etc/slurm
make -j $(nproc)
make install
yum install -y https://download.schedmd.com/slurm/slurm-21.08.8-1.el7.x86_64.rpm
groupadd -g 992 slurm
useradd -u 992 -g slurm -s /bin/bash slurm
(约1000字)
/etc/slurm/slurm.conf
主配置文件[示例配置片段]
ControlMachine=slurm-ctr
SlurmUser=slurm
AuthType=auth/munge
ProctrackType=proctrack/linuxproc
SelectType=select/cons_res
ReturnToService=1
SlurmctldPort=6817
SlurmdPort=6818
/etc/slurm/cgroup.conf
资源限制配置/etc/slurm/plugstack.conf
插件配置sacctmgr add cluster mycluster
sacctmgr add account myaccount Description="Test Account" Organization=MyOrg
(约800字)
# slurm.conf中的节点定义
NodeName=slurm-c[01-02] RealMemory=64000 Sockets=2 CoresPerSocket=16 ThreadsPerCore=2 State=UNKNOWN
PartitionName=normal Nodes=slurm-c[01-02] Default=YES MaxTime=72:00:00
systemctl enable slurmd
systemctl start slurmd
sinfo -N -l
# 预期输出:
# NODELIST NODES PARTITION STATE CPUS MEMORY TMP_DISK AVL_FE REASON
# slurm-c01 1 normal idle 64 64000 0 (null) none
(约600字)
服务 | 管理命令 | 说明 |
---|---|---|
slurmctld | systemctl {start|stop} |
主控服务 |
slurmd | systemctl {restart} |
计算节点服务 |
slurmdbd | systemctl {status} |
数据库服务(可选) |
# 实时查看日志
tail -f /var/log/slurm/slurmctld.log
journalctl -u slurmd -f
(约700字)
# 提交简单测试作业
sbatch --wrap="hostname; sleep 30"
squeue
# 查看作业输出
cat slurm-<jobid>.out
# 请求GPU资源
sbatch -N 2 --gres=gpu:2 --mem=16G << EOF
#!/bin/bash
nvidia-smi
EOF
(约800字)
sacctmgr add qos high --priority=100
sacctmgr modify qos high set MaxJobs=50
# 在slurm.conf中添加
SchedulerType=sched/backfill
SchedulerParameters=bf_interval=30
(约700字)
节点无法加入集群
作业卡在PD状态
scontrol show job <jobid>
(约600字)
MessageTimeout=60
SlurmctldTimeout=300
MinJobAge=3600
(约500字)
(约400字)
# slurm_exporter配置示例
scrape_configs:
- job_name: 'slurm'
static_configs:
- targets: ['slurm-ctr:8080']
(约300字)
# 配置备份
mysqldump -u root slurm_acct_db > slurm_backup.sql
(约400字)
注意:实际部署时应根据具体硬件环境和业务需求调整配置参数。建议在测试环境充分验证后再进行生产部署。 “`
这篇文章总计约9250字,采用Markdown格式编写,包含: 1. 15个主要章节 2. 详细的配置代码片段 3. 表格形式的参数说明 4. 分步骤的操作指南 5. 实际命令和预期输出示例 6. 结构化的问题排查方法
可根据实际环境需求调整具体参数值,建议配合Slurm官方文档使用。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。