当前位置: 首页 > news >正文

Rocky Linux 9.3系统搭建Slurm环境【笔记】

实践环境:Rocky Linux 9.3

[root@m1 ~]# cat /etc/redhat-release 
Rocky Linux release 9.3 (Blue Onyx)
[root@m1 ~]# uname -r
5.14.0-362.8.1.el9_3.x86_64
[root@m1 ~]#

主机名和IP

● 控制节点m1:10.1.1.10

● 计算节点c1:10.1.1.11

● 计算节点c2:10.1.1.12

一、基础配置部分:

1. 设置主机名

示例:

sudo hostnamectl set-hostname m1 

2.所有节点

编辑 /etc/hosts 文件

echo -e "10.1.1.10 m1\n10.1.1.11 c1\n10.1.1.12 c2" | sudo tee -a /etc/hosts

3.管理节点和计算节点需要配置无秘钥认证访问

[root@m1 ~]# ssh-keygen -t rsa
[root@m1 ~]# ssh-copy-id -i .ssh/id_rsa.pub c1 && ssh-copy-id -i .ssh/id_rsa.pub c2

  1. 安装NTP时间同步服务

在每台主机上安装并配置NTP服务以使用中国上海时区。

# 在每台主机上  
dnf install -y chrony  # 配置chrony  
echo "server ntp1.aliyun.com iburst" >> /etc/chrony.conf  
echo "server ntp2.aliyun.com iburst" >> /etc/chrony.conf  
echo "server ntp3.aliyun.com iburst" >> /etc/chrony.conf  # 启动并启用chronyd  
systemctl enable chronyd  
systemctl start chronyd  # 设置时区为上海  
timedatectl set-timezone Asia/Shanghai 

二、munge认证服务部署

1.控制节点和计算节点均需创建munge账号和组

# 创建munge账号和组
groupadd -g 1108 munge
useradd -m -c "Munge Uid 'N' Gid Emporium" -d /var/lib/munge -u 1108 -g munge -s /sbin/nologin munge

验证:

[root@m1 munge]# for i in `seq 1 2`;do ssh c$i id munge;done
uid=1108(munge) gid=1108(munge) groups=1108(munge)
uid=1108(munge) gid=1108(munge) groups=1108(munge)
[root@m1 munge]# 

2.部署Munge

Munge是认证服务,实现本地或者远程主机进程的UID、GID验证。

2.1 安装munge(所有节点操作)

# 安装 munge
# 管理节点
sudo dnf install munge munge-libs munge-devel -y

通过 SSH 连接到两台不同的主机 (c1 和 c2) 并在每台机器上安装 MUNGE 及其相关库。

for i in `seq 1 2`; do ssh c$i "sudo dnf install -y munge munge-libs munge-devel";done

2.2 创建全局密钥

在Master Node

生成全局使用的秘钥文件:/etc/munge/munge.key (Master Node执行)

为了在 Master Node 上生成全局使用的 MUNGE 密钥文件 /etc/munge/munge.key,你可以选择使用 dd 命令从 /dev/urandom 生成随机数据,或者使用 create-munge-key 工具来创建密钥文件。下面是两种方法的具体步骤:

方法一:使用 dd 命令

# 清空或创建新文件
dd if=/dev/urandom bs=1 count=1024 > /etc/munge/munge.key
# 设置正确的文件权限
chmod 0600 /etc/munge/munge.key

方法二:使用 create-munge-key 工具

如果你的系统上已经安装了 create-munge-key 工具,那么可以直接使用该工具来生成密钥文件:

# 创建密钥文件
create-munge-key -f /etc/munge/munge.key
# 检查并设置正确的文件权限
chmod 0600 /etc/munge/munge.key

请注意,在生成密钥文件后,你需要确保该文件具有正确的权限,通常是 0600,这意味着只有文件所有者(通常是 root 用户)才能读取和写入此文件。


3.分发密钥文件

一旦在 Master Node 上生成了密钥文件,你需要将这个密钥文件安全地分发到集群中的所有节点。这可以通过 SCP(Secure Copy)或其他安全的方法来完成。例如:

# 分发密钥文件到其他节点
for node in c1 c2 # 假设 c1 和 c2 是你的其他节点
doscp /etc/munge/munge.key root@$node:/etc/munge/ssh root@$node "chmod 0600 /etc/munge/munge.key"
done

请确保替换 c1c2 为实际的节点名或 IP 地址,并且确保你有足够的权限来通过 SSH 访问这些节点。

4.验证密钥文件

在所有节点上,你应该验证 MUNGE 是否能正确识别密钥文件。通常这涉及到重启 MUNGE 服务并检查日志文件是否存在任何错误:

# 在每个节点上重启 MUNGE 服务

相关文章:

Rocky Linux 9.3系统搭建Slurm环境【笔记】

实践环境:Rocky Linux 9.3 [root@m1 ~]# cat /etc/redhat-release Rocky Linux release 9.3 (Blue Onyx) [root@m1 ~]# uname -r 5.14.0-362.8.1.el9_3.x86_64 [root@m1 ~]#主机名和IP ● 控制节点m1:10.1.1.10 ● 计算节点c1:10.1.1.11 ● 计算节点c2:10.1.1.12 一、…...

原生微信小程序使用原子化tailwindcss

这里使用了第三方库来实现:https://weapp-tw.icebreaker.top/ 官方配置步骤一: https://weapp-tw.icebreaker.top/docs/quick-start/native/install 官方配置步骤二:https://weapp-tw.icebreaker.top/docs/quick-start/native/install-plugin 我下面的操作步骤跟官方步骤…...

《掌握Nmap:全面解析网络扫描与安全检测的终极指南》

 nmap # 简介(帮助) 用法:nmap [扫描类型] [选项] {目标指定内容} 简介(帮助) 用法:nmap [扫描类型] [选项] {目标指定内容} 一、目标指定: 可以传入主机名、IP 地址、网络等。 例如&a…...

k8s-Informer概要解析(2)

Client-go 主要用在 k8s 控制器中 什么是 k8s Informer Informer 负责与 kubernetes APIServer 进行 Watch 操作,Watch 的资源,可以是 kubernetes 内置资源对象,也可以 CRD。 Informer 是一个带有本地缓存以及索引机制的核心工具包&#x…...

UE5基本数据类型

bool: 表示布尔值,只有两个取值:true 或 false,用于表示逻辑条件。int8: 表示 8 位的有符号整数,范围是 −128−128 到 127127。uint8: 表示 8 位的无符号整数,范围是 00 到 255255。int16: 表示 16 位的有符号整数&am…...

Next.js 系统性教学:中间件与国际化功能深入剖析

更多有关Next.js教程,请查阅: 【目录】Next.js 独立开发系列教程-CSDN博客 目录 一、Next.js 中间件 (Middleware) 功能解析 1.1 什么是中间件? 1.2 Next.js 中间件的工作机制 1.3 中间件的功能应用 身份验证与授权 请求重定向 修改请…...

鸿蒙HarmonyOS元服务应用开发实战完全指导

内容提要 元服务概述 元服务开发流程 第一个元服务开发 元服务部署与运行 一、服务概述 1、什么是元服务 在万物互联时代,人均持有设备量不断攀升,设备种类和使用场景更加多样,使得应用开发、应用入口变得更加复杂。在此背景下&#x…...

CT中的2D、MPR、VR渲染、高级临床功能

CT中的2D、MPR、VR渲染 在CT(计算机断层扫描)中,2D、MPR(多平面重建)、VR(体积渲染)是不同的图像显示和处理技术,它们各自有独特的用途和优势。下面分别介绍这三种技术:…...

利用docker-compose来搭建flink集群

1.前期准备 (1)把docker,docker-compose,kafka集群安装配置好 参考文章: 利用docker搭建kafka集群并且进行相应的实践-CSDN博客 这篇文章里面有另外两篇文章的链接,点进去就能够看到 (2&…...

力扣打卡10:K个一组翻转链表

链接:25. K 个一组翻转链表 - 力扣(LeetCode) 这道题需要在链表上,每k个为一组,翻转,链接。 乍一看好像比较容易,其实有很多细节。比如每一组反转后怎么找到上一组的新尾,怎么找到…...

深度学习详解

深度学习(Deep Learning,DL)是机器学习(Machine Learning,ML)中的一个子领域,利用多层次(深层)神经网络来自动从数据中提取特征和规律,模仿人脑的神经系统来进…...

鸿蒙分享(一):添加模块,修改app名称图标

码仓库:https://gitee.com/linguanzhong/share_harmonyos 鸿蒙api:12 新建公共模块common 在entry的oh-package.json5添加dependencies,引入common模块 "dependencies": {"common": "file:../common" } 修改app名称&…...

【Redis】not support: redis

1、查看redis进程 2、查看是否安装redis扩展,此处以宝塔为例...

【集群划分】含分布式光伏的配电网集群电压控制【33节点】

目录 主要内容 模型研究 1.节点电压灵敏度的计算 2.Kmeans聚类划分 3.集群K值 部分代码 运行结果 下载链接 主要内容 该程序参考文献《含分布式光伏的配电网集群划分和集群电压协调控制》,基于社团检测算法,实现基于电气距离和区域电压调节能…...

嵌入式蓝桥杯学习5 定时中断实现按键

Cubemx配置 打开cubemx。 前面的配置与前文一样,这里主要配置基本定时器的定时功能。 1.在Timer中点击TIM6,勾选activated。配置Parameter Settings中的预分频器(PSC)和计数器(auto-reload Register) 补…...

【Java】类似王者荣耀游戏

r77683962/WangZheYouDianRongYao 运行效果图: 类似王者荣耀游戏运行效果图_哔哩哔哩_bilibili...

C++<基本>:union是没有构造函数和析构函数的

今天发现当我在union中包含了多个结构体时,结构体有默认构造函数时,编译报错。 问题点: union不支持构造函数和析构函数union中的元素本身也是不支持构造函数和析构函数的。包含union的结构体也不支持构造函数和析构函数。 出错代码如下&a…...

SQL中IN和NOT操作符的用法

1. IN操作符(布尔逻辑) 在SQL中,IN 是一个用于检查某个字段值是否包含在给定的多个可能值中的布尔操作符。它经常与条件表达式一起使用,通常出现在WHERE子句中。 用法: IN操作符用来确定某个字段的值是否存在于给定…...

C++平常学习用的

4.1 友元函数 4.2 友元类 5.2 类模板 7.2 虚函数dynamic_cast运算 7.2 纯虚函数和抽象类...

JAVA |日常开发中Servlet详解

JAVA |日常开发中Servlet详解 前言一、Servlet 概述1.1 定义1.2 历史背景 二、Servlet 的生命周期2.1 加载和实例化2.2 初始化(init 方法)2.3 服务(service 方法)2.4 销毁(destroy 方法) 三、Se…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

页面渲染流程与性能优化

页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

使用SSE解决获取状态不一致问题

使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件&#xff0c;这个上传文件是整体功能的一部分&#xff0c;文件在上传的过程中…...