分布式存储系统BeeGFS的部署

2024-02-27 15:36

本文主要是介绍分布式存储系统BeeGFS的部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、集群架构

操作系统IP地址
1*Ubuntu22.04192.168.1.74
2Ubuntu22.04192.168.1.60
3Ubuntu22.04192.168.1.67
4Ubuntu20.03192.168.1.136

上述四台电脑,我在1中下载了管理服务、元数据服务、存储服务、客户端服务,在2、3中下载了存储服务、客户端服务,在4中下载了元数据服务、客户端服务。

2、BeeGFS下载

我选择的版本是:BeeGFS V7.4.2

注意,目前BeeGFS支持的Linux内核版本最高为6.2,如果内核版本高于6.2在安装完beegfs-client后启动会出现错误,所以如果版本高于6.2,请查看内核更换一章。使用下面命令查看Linux内核

uname -r

添加密钥:

wget -q -O - https://www.beegfs.io/release/beegfs_7.4.2/gpg/GPG-KEY-beegfs | apt-key add -

此处用的版本是7.4.2,如果版本变化自行查看官网

wget https://www.beegfs.io/release/beegfs_7.4.2/dists/beegfs-jammy.list -O /etc/apt/sources.list.d/beegfs.list

apt-get install apt-transport-https

apt-get update

以上步骤在所有节点中均操作一遍

2.1、管理服务

根据BeeGFS官网,管理服务一般不需要单独占用一台机器,在主要节点上下载即可。

这里我们在192.168.1.74这台计算机上安装了管理服务。

apt-get install beegfs-mgmtd

节点设置:

/opt/beegfs/sbin/beegfs-setup-mgmtd -p /data/beegfs/beegfs_mgmtd

防火墙端口:

管理服务需开启 8008端口

ufw allow 8008

2.2、元数据服务

我在192.168.1.74、192.168.1.136两台计算机上安装了元数据服务:

apt-get install beegfs-meta libbeegfs-ib

节点设置:

/opt/beegfs/sbin/beegfs-setup-meta -p /data/beegfs/beegfs_meta -s 2 -m 192.168.1.74

-s  元数据服务ID
-m 管理服务节点ip

元数据服务需开启8005端口

ufw allow 8005

2.3、存储服务

我在192.168.1.73、192.168.1.60、192.168.1.67三台计算机上安装了存储服务

apt-get install beegfs-storage libbeegfs-ib

节点设置

/opt/beegfs/sbin/beegfs-setup-storage -p /mnt/myraid1/beegfs_storage -s 3 -i 301 -m 192.168.1.74

-s 存储服务ID
-i 存储目标ID
-m 管理服务节点IP

存储服务需开启8003端口

ufw allow 8003

2.4、客户端

所有计算机上均安装了客户端

apt-get install beegfs-client beegfs-helperd beegfs-utils

节点设置

/opt/beegfs/sbin/beegfs-setup-client -m 192.168.1.74

客户端挂载目录在/etc/beegfs/beegfs_mounts.conf中定义

第一个条目定义安装目录。第二个条目引用此安装点的相应配置文件。

默认挂载目录锁/mnt/beegfs

如需修改则自行更改,我这里使用默认目录

客户端开启8004端口

ufw allow 8004

注意:

如果电脑的secure boot开启的话,beegfs-client启动会报错。
需要进入BIOS关闭

3、安全设置

官方建议使用 connAuthFile 配置连接身份验证
如果不需要身份验证,则在所有节点上将connDisableAuthentication设置为true
服务配置文件在:/etc/beegfs/目录下
管理服务配置文件:        beegfs-mgmtd.conf
元数据服务配置文件:        beegfs-meta.conf
存储服务配置文件:           beegfs-storge.conf
客户端服务配置文件:        beegfs-client.conf
                                          beegfs-helperd.conf

正常情况下需要设置身份认证,做法如下:
1、创建密码文件(在管理服务节点操作就行):

dd if=/dev/random of=/etc/beegfs/connauthfile bs=128 count=1

2、确保该文件只能由root用户读取:

chown root:root /etc/beegfs/connauthfile
chmod 400 /etc/beegfs/connauthfile

3、将文件复制到所有主机(mgmtd,meta,storage,client,mon)

可以使用scp命令复制:

scp /etc/beegfs/connauthfile 用户@<目标主机ip>:/etc/beegfs/connauthfile

4、编辑集群中所有配置文件,包括 helperd/mon:

connDisableAuthentication=false
connAuthFile=/etc/beegfs/connauthfile

4、一些命令

1、管理服务启动:

systemctl start beegfs-mgmtd

2、元数据服务启动:

systemctl start beegfs-meta

3、存储服务启动:

systemctl start beegfs-meta

4、客户端服务启动:

systemctl start beegfs-helperd
systemctl start beegfs-client

5、查看元数据服务

beegfs-ctl --listnodes --nodetype=meta --nicdetails


6、查看存储服务

beegfs-ctl --listnodes --nodetype=storage --nicdetails

7、查看客户端

beegfs-ctl --listnodes --nodetype=client --nicdetails

8、显示客户端实际使用的连接

beegfs-net

9、显示服务的可能连接

beegfs-check-servers

10、显示存储和元数据目标的可用空间和索引节点

beegfs-df

5、更换Linux系统内核

如果内核版本大于6.2,管理服务将会不可用,此时需将内核将为6.2及以下:

查看内核版本命令

uname -r

1、查看自己grub版本,记住是2.0以上还是以下

grub-install --version

2、查看可用内核版本

apt-cache search linux-image

3、下载内核(可选)

如果查看电脑已有内核中没有需要的,则需要下载,我这里下载的是 6.2.0-39-generic

sudo apt-get install linux-headers-6.2.0-39-generic
sudo apt-get install linux-image-6.2.0-39-generic
sudo apt-get install linux-modules-6.2.0-39-generic
sudo apt-get install linux-modules-extra-6.2.0-39-generic       

4、查看内核安装情况

dpkg --list | grep linux-image
dpkg --list | grep linux-headers

5、再次查找需要更换的内核

grep 'menuentry' /boot/grub/grub.cfg

我的是6.2.0-39-generic,一般查找到Ubuntu, with Linux 6.2.0-39-generic

6、修改grub

vim /etc/default/grub

将GRUB_DEFAULT=0修改成GRUB_DEFAULT=“Ubuntu, with Linux 6.2.0-39-generic”

7、更新grub

update-grub

8、如果看到下面警告:

Please don't use old title `Ubuntu, with Linux 6.2.0-39-generic' for GRUB_DEFAULT, use `Advanced options for Ubuntu>Ubuntu, with Linux 6.2.0-39-generic' (for versions before 2.00) or `gnulinux-advanced-5169ddc2-d57c-4044-a238-a33f4f953600>gnulinux-6.2.0-39-generic-advanced-5169ddc2-d57c-4044-a238-a33f4f953600' (for 2.00 or later)

则根据grub版本,如果大于2.0则修改/etc/default/grub中的

GRUB_DEFAULT=“gnulinux-advanced-5169ddc2-d57c-4044-a238-a33f4f953600>gnulinux-6.2.0-39-generic-advanced-5169ddc2-d57c-4044-a238-a33f4f953600

如果小于2.0则修改为

GRUB_DEFAULT=“Advanced options for Ubuntu>Ubuntu, with Linux 6.2.0-39-generic

再次输入update-grub后重启

9、输入 uname -r查看是否修改成功

10、卸载之前版本

        查看已安装版本

dpkg --get-selections | grep linux-image

        删除:

apt-get remove linux-image-5.10.0-1023-oem
dpkg -P linux-image-5.10.0-1023-oem

11、恢复grub

将grub的GRUB_DEFAULT改为0

然后update-grub

12、关闭内核自动更新

sudo apt-mark hold linux-image-generic linux-headers-generi

6、可能出现的问题

一般来说可能beegfs-client启动时会出现问题:

这个错误一般是内核版本不匹配

这个问题一般是端口没打开,具体查看日志文件,/var/log/beegfs_client.log

这个问题可能锁计算机secure boot开启会出现,简单方法是进入BIOS界面关闭Secure Boot,但是可能会有安全隐患。

以上是我在安装BeeGFS时遇到的一些问题,可能不是最好的解答,希望能给你起到借鉴的作用。

7、参考

Quick Start Guide — BeeGFS Documentation 7.4.2 icon-default.png?t=N7T8https://doc.beegfs.io/latest/quick_start_guide/quick_start_guide.html

ubuntu20.04内核降级_ubuntu20更新内核-腾讯云开发者社区-腾讯云如题,在不小心安装新内核之后,发现没办法降级(网上的各种方法 最后结合信息摸索出了解决方案:icon-default.png?t=N7T8https://cloud.tencent.com/developer/article/2121264

Ubuntu内核的查看、更新、卸载、取消及启用自动更新_ubuntu使用dpkg查看安装的内核-CSDN博客文章浏览阅读2.4k次,点赞5次,收藏20次。Ubuntu内核的查看、更新、卸载、取消及启用自动更新。_ubuntu使用dpkg查看安装的内核https://blog.csdn.net/Explorer_XZH/article/details/129395789本文合作作者:

感情丶剪不断-CSDN博客感情丶剪不断关注react.js,前端框架,面试,css,node.js,es6,vue.js,https,javascript领域.https://blog.csdn.net/qq_46688918?type=blog

这篇关于分布式存储系统BeeGFS的部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/752862

相关文章

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

基于MongoDB实现文件的分布式存储

《基于MongoDB实现文件的分布式存储》分布式文件存储的方案有很多,今天分享一个基于mongodb数据库来实现文件的存储,mongodb支持分布式部署,以此来实现文件的分布式存储,需要的朋友可以参考... 目录一、引言二、GridFS 原理剖析三、Spring Boot 集成 GridFS3.1 添加依赖

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx