lustre集群部署2

news2024/10/1 19:20:34

1. 前言

本文详细介绍如何在almalinux8.9上部署基于ldiskfs的lustre容灾集群。系统环境如下:

lustre版本:2.15.4
操作系统:almalinux 8.9
内核版本:4.18.0-513.5.1.el8_9.x86_64

 
 

2. 集群规划

mgt      192.168.3.11:192.168.3.12
mdt0     192.168.3.11:192.168.3.12
ost0     192.168.3.11:192.168.3.12
client   192.168.3.13

 
 

3. 系统设置

3.1. 防火墙设置

3.1.1. 关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

 

3.2. selinux设置

3.2.1. 关闭selinux

sed -i.org 's|SELINUX=enforcing|SELINUX=disabled|g' /etc/selinux/config

3.2.2. 重启机器

reboot

3.2.3. 检查selinux状态

getenforce

如果输出结果是disabled,表明selinux已经关闭。

 
 

4. 集群部署

4.1. 服务端

4.1.1. 安装服务端软件

rpm -ivh --replacepkgs --upgrade kernel/*.rpm
rpm -ivh --replacepkgs --upgrade e2fsprogs/*.rpm
rpm -ivh --replacepkgs --upgrade lustre/server/*.rpm

如果已经做了离线yum源,也可以使用dnf installdnf reinstall命令安装。

dnf reinstall kernel kernel-modules \
kernel-core kernel-tools kernel-tools-libs

dnf reinstall e2fsprogs e2fsprogs-libs libcom_err libss

dnf install kmod-lustre kmod-lustre-osd-ldiskfs \
lustre lustre-osd-ldiskfs-mount \
lustre-iokit lustre-resource-agents

4.1.2. 加载lustre内核模块

modprobe -v lustre

4.1.3. 配置网络

lustre集群内部通过LNet网络通信,LNet支持InfiniBand and IP networks。本案例采用TCP模式。

初始化配置lnet

lnetctl lnet configure

默认情况下lnetctl lnet configure会加载第一个up状态的网卡,所以一般情况下不需要再配置net。
可以使用lnetctl net show命令列出所有的net配置信息,如果没有符合要求的net信息,需要按照下面步骤添加。

添加tcp

lnetctl net add --net tcp0 --if enp0s8

如果lnetctl lnet configure已经将添加了tcp0,使用lnetctl net del删除tcp0,然后用lnetctl net add重新添加。
tcp0可以理解为一个子网,原则上tcp后面的数字可以任意写。如果定义成tcp0,那么集群中所有的服务以及客户端都应该设置成同一子网,即tcp0

查看添加的tcp

lnetctl net show --net tcp0

保存到配置文件

lnetctl net show --net tcp0 >> /etc/lnet.conf

开机自启动lnet服务

systemctl enable lnet

4.1.4. 部署MGS服务

创建mgt

mkfs.lustre --mgs \
--servicenode=192.168.3.11@tcp0 \
--servicenode=192.168.3.12@tcp0 \
--backfstype=ldiskfs \
--reformat /dev/sdb

servicenode参数指定当前创建的mgt能够在哪些节点上被使用(容灾)。该参数的数量没有限制。
可以将多个servicenode参数合并成一个,比如上面的参数可以改写成--servicenode=192.168.3.11@tcp0:192.168.3.12@tcp0

启动mgs服务

mkdir -p /lustre/mgt
mount -t lustre -U 95d74a36-996f-403a-84b4-1912bec0143b /lustre/mgt -v

其中95d74a36-996f-403a-84b4-1912bec0143b/dev/sdb的uuid,可以通过blkid命令查询。建议采用uuid,因为磁盘盘符会改变。
原则上挂载点的名字可以任意取名,建议和mgt名字保持一致。

4.1.5. 部署MDS服务

创建mdt

mkfs.lustre --mdt \
--fsname fs00 \
--index 0 \
--mgsnode 192.168.3.11@tcp0 \
--mgsnode 192.168.3.12@tcp0 \
--servicenode 192.168.3.11@tcp0 \
--servicenode 192.168.3.12@tcp0 \
--backfstype=ldiskfs \
--reformat /dev/sdc

如果磁盘空间容量比较大,可以添加参数--mkfsoptions="-E nodiscard",加快格式化过程。
如果mgs服务有多个,必须要同时指定多个mgsnode,而且第一个mgsnode必须是primary mgs。
对于每一个lustre文件系统,mdt index序号必须从0开始,0代表整个文件系统的根目录。

启动mds服务

mkdir -p /lustre/mdt/mdt0
mount -t lustre -U 6feb0516-e2b1-4075-8b37-de94bb65c93b /lustre/mdt/mdt0 -v

4.1.6. 部署OSS服务

创建ost

mkfs.lustre --ost \
--fsname fs00 \
--index 0 \
--mgsnode 192.168.3.11@tcp0 \
--mgsnode 192.168.3.12@tcp0 \
--servicenode 192.168.3.11@tcp0 \
--servicenode 192.168.3.12@tcp0 \
--backfstype=ldiskfs \
--reformat /dev/sde

启动oss服务

mkdir -p /lustre/ost/ost0
mount -t lustre -U 930e22ba-969c-4f95-820a-d7f521b47b0d /lustre/ost/ost0 -v

 

4.2. 客户端

lustre客户端软件不能和服务端软件安装在同一台机器上,因为lustre服务端软件已经包含了客户端软件所有的文件。所以,非必要,可以直接在服务端挂载lustre文件系统,而无需再另外一台机器上安装客户端软件。

4.2.1. 安装客户端软件

rpm -ivh --replacepkgs --upgrade lustre/server/*.rpm

如果已经做了离线yum源,也可以使用dnf install命令安装。

dnf install kmod-lustre-client lustre-client lustre-iokit

4.2.2. 加载lustre内核模块

modprobe -v lustre

4.2.3. 配置网络

lustre集群内部通过LNet网络通信,LNet支持InfiniBand and IP networks。本案例采用TCP模式。

初始化配置lnet

lnetctl lnet configure

默认情况下lnetctl lnet configure会加载第一个up状态的网卡,所以一般情况下不需要再配置net。
可以使用lnetctl net show命令列出所有的net配置信息,如果没有符合要求的net信息,需要按照下面步骤添加。

添加tcp

lnetctl net add --net tcp0 --if enp0s8

如果lnetctl lnet configure已经将添加了tcp0,使用lnetctl net del删除tcp0,然后用lnetctl net add重新添加。
tcp0可以理解为一个子网,原则上tcp后面的数字可以任意写。如果定义成tcp0,那么集群中所有的服务以及客户端都应该设置成同一子网,即tcp0

查看添加的tcp

lnetctl net show --net tcp0

保存到配置文件

lnetctl net show --net tcp0 >> /etc/lnet.conf

开机自启动lnet服务

systemctl enable lnet

4.2.4. 挂载文件系统

mkdir -p /mnt/fs00
mount -t lustre 192.168.3.11@tcp0:192.168.3.12@tcp0:/fs00 /mnt/fs00 -v

 
 

5. 参考资料

  • https://wiki.lustre.org/Category:Lustre_Systems_Administration

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

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

相关文章

STL容器适配器

欢迎来到本期节目- - - STL容器适配器 适配器模式: 在C中,适配器是一种设计模式,有时也称包装样式; 通过将类自己的接口包裹在一个已存在的类中,使得因接口不兼容而不能在一起工作的类能在一起工作; 也就…

使用VBA快速生成Excel工作表非连续列图片快照

Excel中示例数据如下图所示。 现在需要拷贝A2:A15,D2:D15,J2:J15,L2:L15,R2:R15为图片,然后粘贴到A18单元格,如下图所示。 大家都知道VBA中Range对象有CopyPicture方法可以拷贝为图片,但是如果Range对象为非连续区域,那么将产生10…

详解DHCP服务工作原理及配置案例

一. DHCP概述 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个主机IP简化分配管理的TCP/IP协议,用户通过DHCP服务器动态的分配给客户端IP地址及其他环境的配置工作,包括IP地址、子网掩码、网关和…

【NVIDIA】如何使用nvidia-smi命令管理和监控GPU

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

KPConv: Flexible and Deformable Convolution for Point Clouds

Abstract Kernel Point Convolution(KPConv)是一种点云卷积方法,它可以直接在点云数据上进行操作,无需任何中间的表示形式。方法的核心在于使用核点来定义卷积权重,核点位于欧几里得空间中,并仅对靠近它们…

Spring DI 笔记

目录 1.什么是DI? 2.依赖注入的三种⽅式 2.1属性注⼊ 2.2构造⽅法注⼊ 2.3Setter 注⼊ 2.4三种注⼊优缺点分析 3.Autowired存在问题 1.什么是DI? DI: 依赖注⼊ 依赖注⼊是⼀个过程,是指IoC容器在创建Bean时, 去提供运⾏时所依赖的资源,⽽资源指的…

(JAVA)浅尝关于 “栈” 数据结构

1. 栈的概述: 1.1 生活中的栈 存储货物或供旅客住宿的地方,可引申为仓库、中转站。例如酒店,在古时候叫客栈,是供旅客休息的地方,旅客可以进客栈休息,休息完毕后就离开客栈 1.2计算机中的栈 将生活中的…

第1 章 第一节:基础语法

第1 章 第一节:基础语法 1.1书写规则 1.1.1关键字 在Java语言中,已经定义好的,具有一定的功能和作用的英文单词。所有的关键字都是小写的 在Java中总共有51个关键字,还有两个保留字const\goto. 常见的关键字: if…

User-Agent在WebMagic爬虫中的重要性

对于需要从网站上抓取数据的开发者来说,WebMagic是一个强大的工具。它是一个简单灵活的Java爬虫框架,用于抓取网页数据。在爬虫技术中,User-Agent(用户代理)是一个关键的HTTP请求头,它告诉服务器关于客户端…

中九无科研无竞赛保研经验帖——上交软院、中科大计算机、复旦工程硕、南大工程硕、浙大软件

本人bg: 学校:中九软件工程rk:夏令营5%,预推免3%(都是写的预估排名)六级:480, 四级:540科研:无竞赛:美赛M,以及水赛国三、省二若干 保研前期没有…

jenkins项目发布基础

随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。Jenkins 自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,…

向日葵远程控制怎么下载?推荐4个远程控制工具网站。

从官网下载的软件质量有保障,安全性和可信度也比较好。所以不管需要使用什么样的软件,最好是到官网下载。如果是有远程控制的需求,我可以推荐几个安全可靠的网站给大家。 1、向日葵远程控制大师 直达链接:https://dow…

【STM32单片机_(HAL库)】4-3【定时器TIM】定时器输出PWM实现呼吸灯实验

1.硬件 STM32单片机最小系统LED灯模块 2.软件 pwm驱动文件添加定时器HAL驱动层文件添加GPIO常用函数定时器输出PWM配置步骤main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "pwm.h"int main(void) {HA…

运用循环单链表实现约瑟夫问题

代码&#xff1a; #include <iostream> using namespace std; struct node {int id;node *next; }; int len0; //存现在链表的长度int main() {node*head,*temp,*tail;headnew node;head->next head;tailhead;int A,B;cin>>A>>B;lenA;int num1;while…

unity一键注释日志和反注释日志

开发背景&#xff1a;游戏中日志也是很大的开销&#xff0c;虽然有些日志不打印但是毕竟有字符串的开销&#xff0c;甚至有字符串拼接的开销&#xff0c;有些还有装箱和拆箱的开销&#xff0c;比如Debug.Log(1) 这种 因此需要注释掉&#xff0c;当然还需要提供反注释的功能&am…

数据结构-链表笔记

移除节点 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListN…

windows上安装mingw教程及mingw64国内下载地址汇总

​ 首先进去官方官网地址&#xff1a;https://www.mingw-w64.org&#xff0c;注意如果下载不了或者下载慢可以使用下面提供国内下载地址&#xff0c;可以满速下载。 进入官网后&#xff0c;直接在左侧点击Downloads即可。 点击Sources选项   点击Downloads后&#xff0c;在右…

qfluentwidgets组件库的配置与使用

文章目录 前言一、安装1 安装conda环境2 配置designer和pyuic3 查看是否成功二、简单使用前言 这篇博客用来记录qfluentwidgets组件库的基本使用。 如果你愿意花200块钱去官网github地址买一份作者的组件库,添加到了designer中了。那么本博客前面的所有配置对你都是没有用的,…

Chromium 用户数据目录User Data 初始化过程c++

一、先说结论 User Data 路径优先级如下&#xff1a; 1、注册表中策略配置的路径。 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Chromium UserDataDir"xx_path" 2、命令行中的路径。 --user-data-dir"xx_path" 3、默认用户路径 %LOCALAPPDATA%/Chrom…

在使用visual studio 2022,运行程序时弹窗:“ 此任务要求应用程序具有提升的权限“

系列文章目录 文章目录 系列文章目录前言一、问题原因二、解决方法1.第一种解决方法2.第二种解决方法 前言 在使用visual studio 2022&#xff0c;运行程序时弹窗&#xff1a;" 此任务要求应用程序具有提升的权限"&#xff0c;每次都要再次点击“使用其他凭证重新启…