Linux:GlusterFS 集群

GlusterFS介绍 

1)Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够灵活的结合物理的,虚拟的和云资源去体现高可用和企业级的性能存储.

2)Glusterfs通过TCP/IP或InfiniBand RDMA网络链接将客户端的存储资块源聚集在一起,使用单一的全局命名空间来管理数据,磁盘和内存资源.

3)Glusterfs基于堆叠的用户空间设计,可以为不同的工作负载提供高优的性能.

4)Glusterfs支持运行在任何标准IP网络上标准应用程序的标准客户端,如下图1所示,用户可以在全局统一的命名空间中使用NFS/CIFS等标准协议来访问应用数据.

Glusterfs主要特征
扩展性和高性能
高可用
全局统一命名空间
弹性hash算法
弹性卷管理
基于标准协议 

工作原理:

1) 首先是在客户端, 用户通过glusterfs的mount point 来读写数据, 对于用户来说,集群系统的存在对用户是完全透明的,用户感觉不到是操作本地系统还是远端的集群系统。
2) 用户的这个操作被递交给 本地linux系统的VFS来处理。
3) VFS 将数据递交给FUSE 内核文件系统:在启动 glusterfs 客户端以前,需要想系统注册一个实际的文件系统FUSE,如上图所示,该文件系统与ext3在同一个层次上面, ext3 是对实际的磁盘进行处理, 而fuse 文件系统则是将数据通过/dev/fuse 这个设备文件递交给了glusterfs client端。所以, 我们可以将 fuse文件系统理解为一个代理。
4) 数据被fuse 递交给Glusterfs client 后, client 对数据进行一些指定的处理(所谓的指定,是按照client 配置文件据来进行的一系列处理, 我们在启动glusterfs client 时需要指定这个文件。
5) 在glusterfs client的处理末端,通过网络将数据递交给 Glusterfs Server,并且将数据写入到服务器所控制的存储设备上。
 

常用卷类型

分布(distributed)

复制(replicate)

条带(striped)

基本卷:

(1)  distribute volume:分布式卷

(2)  stripe volume:条带卷

(3)  replica volume:复制卷 

复合卷:

(4)  distribute stripe volume:分布式条带卷

(5)  distribute replica volume:分布式复制卷

(6) stripe replica volume:条带复制卷

(7) distribute stripe replicavolume:分布式条带复制卷 

分布卷

条带卷

 

复制卷 

 

分布式条带卷

 

分布式复制卷 

 


模拟环境介绍

这里我们使用5个服务器,前4个用于搭建各种卷,第五个用于测试,将前面搭建好的卷挂载到第五台进行测试

第一台 192.168.254.1 添加4块硬盘,每个硬盘为5G大小  并为他们分1个区 格式为ext4  分别为/dev/sdb1  /dev/sdc1 /dev/sdd1 /dev/sde1                主机名为 : tarro1
第二台 192.168.254.2 添加4块硬盘,每个硬盘为5G大小  并为他们分1个区 格式为ext4 分别为/dev/sdb1  /dev/sdc1 /dev/sdd1 /dev/sde1                主机名为 : tarro2
第三台 192.168.254.3 添加3块硬盘,每个硬盘为5G大小  并为他们分1个区 格式为ext4 分别为/dev/sdb1  /dev/sdc1 /dev/sdd1                                主机名为 : tarro3
第四台 192.168.254.1 添加3块硬盘,每个硬盘为5G大小  并为他们分1个区 格式为ext4 分别为/dev/sdb1  /dev/sdc1 /dev/sdd1                                 主机名为 : tarro4

第五台用于测试,但是也要安装glusterfs组件,我们到最后测试时候再部署 


第一台服务器上的设置(192.168.254.1)

 hostnamectl set-hostname tarro1
vim /etc/hosts在最后插入192.168.254.1 tarro1
192.168.254.2 tarro2
192.168.254.3 tarro3
192.168.254.4 tarro4
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

然后去设置硬盘,每个硬盘只需要分一个,在根下再创建一个对应磁盘号的目录,比如/dev/sdb1就在根创建一个/b   让后把  /dev/sdb1   挂载到  /b

 

如果你还对fdisk不太熟悉可看一下这篇文章 

Linux:磁盘管理 | 查看 磁盘,创建分区,格式化文件系统,添加&开启swap交换系统 ,格式化硬盘后进行挂载 ,挂载光盘, 挂载USB ,取消挂载(卸载),开机自动挂载_linux取消挂载_鲍海超-GNUBHCkalitarro的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/w14768855/article/details/130772080?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169529100316800186547894%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=169529100316800186547894&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-130772080-null-null.nonecase&utm_term=fdisk&spm=1018.2226.3001.4450 

mkdir /b /c /d /e
mkfs -t ext4 /dev/sdb1
mkfs -t ext4 /dev/sdc1
mkfs -t ext4 /dev/sdd1
mkfs -t ext4 /dev/sde1
mount /dev/sdb1 /b
mount /dev/sdc1 /c
mount /dev/sdd1 /d
mount /dev/sde1 /e
vim /etc/fstab最后面插入/dev/sdb1               /b                      ext4    defaults        0 0
/dev/sdc1               /c                      ext4    defaults        0 0
/dev/sdd1               /d                      ext4    defaults        0 0
/dev/sde1               /e                      ext4    defaults        0 0
systemctl start glusterd.service
systemctl enable glusterd.service

第二台服务器上的设置(192.168.254.2)

跟第一台的配置基本相同

 hostnamectl set-hostname tarro2
vim /etc/hosts在最后插入192.168.254.1 tarro1
192.168.254.2 tarro2
192.168.254.3 tarro3
192.168.254.4 tarro4
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

mkfs -t ext4 /dev/sdb1
mkfs -t ext4 /dev/sdc1
mkfs -t ext4 /dev/sdd1
mkfs -t ext4 /dev/sdd1
mount /dev/sdb1 /b
mount /dev/sdc1 /c
mount /dev/sdd1 /d
mount /dev/sde1 /e
vim /etc/fstab最后面插入/dev/sdb1               /b                      ext4    defaults        0 0
/dev/sdc1               /c                      ext4    defaults        0 0
/dev/sdd1               /d                      ext4    defaults        0 0
/dev/sde1               /e                      ext4    defaults        0 0
systemctl start glusterd.service
systemctl enable glusterd.service

第三台服务器上的设置(192.168.254.3)

hostnamectl set-hostname tarro3
vim /etc/hosts在最后插入192.168.254.1 tarro1
192.168.254.2 tarro2
192.168.254.3 tarro3
192.168.254.4 tarro4
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

mkdir /b /c /d
mkfs -t ext4 /dev/sdb1
mkfs -t ext4 /dev/sdc1
mkfs -t ext4 /dev/sdd1
mount /dev/sdb1 /b
mount /dev/sdc1 /c
mount /dev/sdd1 /d
vim /etc/fstab插入/dev/sdb1               /b                      ext4    defaults        0 0
/dev/sdc1               /c                      ext4    defaults        0 0
/dev/sdd1               /d                      ext4    defaults        0 0
systemctl start glusterd
systemctl enable glusterd

第四台服务器上的设置(192.168.254.4)

hostnamectl set-hostname tarro4
vim /etc/hosts在最后插入192.168.254.1 tarro1
192.168.254.2 tarro2
192.168.254.3 tarro3
192.168.254.4 tarro4
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

mkdir /b /c /d
mkfs -t ext4 /dev/sdb1
mkfs -t ext4 /dev/sdc1
mkfs -t ext4 /dev/sdd1
mount /dev/sdb1 /b
mount /dev/sdc1 /c
mount /dev/sdd1 /d
vim /etc/fstab插入/dev/sdb1               /b                      ext4    defaults        0 0
/dev/sdc1               /c                      ext4    defaults        0 0
/dev/sdd1               /d                      ext4    defaults        0 0
systemctl start glusterd
systemctl enable glusterd

部署GlusterFS

部署基础集群环境 

由于我们要部署的是集群,我们只需在一个上面设置让他们相互认识,那4个上面就会都有了

随便在一个上面操作,4个都会一起工作一起变化

 

gluster peer probe tarro1
gluster peer probe tarro2
gluster peer probe tarro3
gluster peer probe tarro4

随便在一个上面进行了设置,这时我们去查看他们有没有相互认识

在1上面查看

gluster peer status

在2上面查看

 

在3和4上面也是一样的,这时集群就部署好了 


查看群组内有几个主机

 

gluster peer status

 

只要在群集的所有主机能相互看见那就是部署成功了 


 distribute ---- 分布
stripe  ---- 条带
replaction ---- 复制


部署卷

我们使用tarro1的 /d   和 tarro2  /d  去组建分布卷

tarro1  /e   和  tarro2   /e  去组件条带卷

tarro3  /d 和 tarro4   /d   组件复制卷

tarro1  /b   tarro2  /b   tarro3  /b    tarro4  /b 组建分布式条带卷

tarro1  /c  tarro2  /c  tarro3 /c  tarro4  /c    组建分布式复制卷 

 创建分布卷   

随便一个服务器上做就行,现在他们是一个集群都相互认识

gluster volume create fenbu tarro1:/d tarro2:/d force

创建条带卷

gluster volume create tiaodai stripe 2 tarro1:/e tarro2:/e force

 创建复制卷

gluster volume create fuzhi replica 2  tarro3:/d tarro4:/d force

组建分布式条带卷

gluster volume create fenbu-tiaodai stripe  2  tarro1:/b tarro2:/b tarro3:/b tarro4:/b force

组建分布式复制卷 

gluster volume create fenbu-fuzhi replica  2  tarro1:/c tarro2:/c tarro3:/c tarro4:/c force

查看创建过的卷

 

gluster volume info

 

这个是查看全部也可以单独查看

gluster volume info 卷名称 

 


开启卷,关闭卷,删除卷 

 每个卷创建好了并不能直接使用,要开启后才能使用

gluster volume start 卷名

gluster volume start fenbu

 

关闭卷

gluster volume stop 卷名

gluster volume stop fenbu

 

删除卷

删除卷之前必须保持卷的关闭,只有卷关闭了,没有挂载使用的情况下才能删除

gluster volume delete 卷名

挂载卷(设置第五台服务器进行测试)

在挂载之前保持所有卷为开启状态

gluster volume info

 全部开启才行

现在去第五台服务器上进行搭建和测试

yum -y install glusterfs glusterfs-fuse
mkdir -p /tarro/{fenbu,tiaodai,fuzhi,fenbu-tiaodai,fenbu-fuzhi}
vim /etc/hosts插入192.168.254.1 tarro1
192.168.254.2 tarro2
192.168.254.3 tarro3
192.168.254.4 tarro4

现在就可以去挂载了

挂载分布卷

mount -t glusterfs tarro1:fenbu /tarro/fenbu

由于是一个集群,tarro1:fenbu  和  tarro2:fenbu  ,tarro3:fenbu  , tarro4:fenbu  是一样的

挂载条带卷

mount -t glusterfs tarro1:tiaodai /tarro/tiaodai/

挂载复制卷

mount -t glusterfs tarro1:fuzhi /tarro/fuzhi/

 挂载分布式条带卷

mount -t glusterfs tarro1:fenbu-tiaodai /tarro/fenbu-tiaodai/

挂载分布式复制卷

mount -t glusterfs tarro1:fenbu-fuzhi /tarro/fenbu-fuzhi/

 

 挂载成功

vim /etc/fstab插入tarro1:fenbu            /tarro/fenbu            glusterfs defaults,_netdev 0 0
tarro1:tiaodai          /tarro/tiaodai          glusterfs defaults,_netdev 0 0
tarro1:fuzhi            /tarro/fuzhi            glusterfs defaults,_netdev 0 0
tarro1:fenbu-tiaodai    /tarro/fenbu-tiaodai    glusterfs defaults,_netdev 0 0
tarro1:fenbu-fuzhi      /tarro/fenbu-fuzhi      glusterfs defaults,_netdev 0 0

reboot重启一下,如果依然自动挂载,那么就成功了

 


测试各种卷效果 

 

cp -rf /var/log/messages ./test1.log
cp -rf /var/log/messages ./test2.log
cp -rf /var/log/messages ./test3.log
cp -rf /var/log/messages ./test4.log
cp -rf /var/log/messages ./test5.log
cp test*.log /tarro/fenbu
cp test*.log /tarro/tiaodai/
cp test*.log /tarro/fuzhi
cp test*.log /tarro/fenbu-tiaodai/
cp test*.log /tarro/fenbu-fuzhi

我们现在把各种卷放进了,每个挂载点,单个文件夹为423K

我们去每个卷合成的目录看


 分布卷

 在tarro1的/d上看到了 1 2 4  

tarro2/d 看到了3  5   他们的文件大小没有变


条带卷 

 

tarro1  /e   上面 1-5都有  但是文件大小只有一半

 另一半在  tarro2  /e  里


复制卷 

 

tarro3和4的文件内容是一样的

 


分布式条带卷 

 

tarro1

 

tarro2

tarro3

 

tarro4

这个就是把有个备份的,其次保证性能


分布式复制卷 

 tarro1

tarro2 

 

tarro3

 

tarro4

这个和上面那个一样多了个备份的

这几个没有那个最好,只有在适合的环境使用最适合的卷才是最好的 

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

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

相关文章

【C++】String类基本接口介绍及模拟实现(多看英文文档)

string目录 如果你很赶时间,那么就直接看我本标题下的内容即可!! 一、STL简介 1.1什么是STL 1.2STL版本 1.3STL六大组件 1.4STL重要性 1.5如何学习STL 二、什么是string??(本质上是一个类&#xff0…

【Redis】深入探索 Redis 的数据类型 —— 列表 List

文章目录 一、List 类型介绍二、List 类型相关命令2.1 LPUSH 和 RPUSH、LPUSHX 和 RPUSHX2.2 LPOP 和 RPOP、BLPOP 和 BRPOP2.3 LRANGE、LINDEX、LINSERT、LLEN2.4 列表相关命令总结 三、List 类型内部编码3.1 压缩列表(ziplist)3.2 链表(lin…

Git错误解决:如何处理“could not determine hash algorithm“问题

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

openssl创建CA证书教程

配置生成CA证书 总示意图: (1),通过openssl创建CA证书 第一步:创建一个秘钥,这个便是CA证书的根本,之后所有的东西都来自这个秘钥 # 通过rsa算法生成2048位长度的秘钥 openssl genrsa -out myCA.key 2048 第二步&#…

Android Camera2获取摄像头的视场角(FOV)信息

一、概念 FOV(Field of View)是一个用于描述视野范围的术语。它通常用于计算设备(如摄像机、虚拟现实头显或眼睛)所能捕捉到的可见区域。 水平FOV(Horizontal FOV):描述视野在水平方向上的范围…

JVM面试题-JVM对象的创建过程、内存分配、内存布局、访问定位等问题详解

对象 内存分配的两种方式 指针碰撞 适用场合:堆内存规整(即没有内存碎片)的情况下。 原理:用过的内存全部整合到一边,没有用过的内存放在另一边,中间有一个分界指针,只需要向着没用过的内存…

【最新面试问题记录持续更新,java,kotlin,android,flutter】

最近找工作,复习了下java相关的知识。发现已经对很多概念模糊了。记录一下。部分是往年面试题重新整理,部分是自己面试遇到的问题。持续更新中~ 目录 java相关1. 面向对象设计原则2. 面向对象的特征是什么3. 重载和重写4. 基本数据类型5. 装箱和拆箱6. …

【数据结构】顺序表与ArrayList

作者主页:paper jie 的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVA数据结构》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精…

Chinese-LLaMA-AIpaca

文章目录 关于 Chinese-LLaMA-Alpaca一、LLaMA模型 --> HF格式二、合并LoRA权重,生成全量模型权重方式1:单LoRA权重合并方式2:多LoRA权重合并(适用于Chinese-Alpaca-Plus )三、使用 Transformers 进行推理四、使用 webui 搭建界面1、克隆text-generation-webui并安装必…

企业图档加密系统

机械制造行业数据安全 机械制造企业对于设计工艺的能力要求非常高,其生产工业会涉及到大量设计图纸文档信息,一旦发生产品图纸丢失泄密情况,将造成重大损失。如何用技术手段保护企业的核心数据,保证企业的信息资料不会被无意或恶…

Clock Domain Crossing Design Verification Techniques Using System Verilog 学习

重要的设计考虑因素要求仔细构建多时钟设计时钟域交叉 (CDC) 边界。 本文详细介绍了一些最新策略和解决跨 CDC 边界传递一个或多个信号的最佳已知方法。论文中包含与 CDC 验证相关的技术和一个有趣的 2 深 FIFO用于在时钟域之间传递多个控制信号的设计。 虽然设计方法论文中描述…

WebGL 用鼠标控制物体旋转

目录 鼠标控制物体旋转 如何实现物体旋转 示例程序(RotateObject.js) 代码详解 示例效果 鼠标控制物体旋转 有时候,WebGL程序需要让用户通过鼠标操作三维物体。这一节来分析示例程序RotateObject,该程序允许用户通过拖动&…

2023华为杯研究生数学建模竞赛选题建议+初步分析

如下为C君的2023华为杯研究生数学建模竞赛&#xff08;研赛&#xff09;选题建议初步分析 2023华为杯研究生数学建模竞赛&#xff08;研赛&#xff09;选题建议 提示&#xff1a;DS C君认为的难度&#xff1a;CE<D<F&#xff0c;开放度&#xff1a;CDE<F。 华为专项…

1600*A. LCM Challenge(数论 || 找规律)

解析&#xff1a; n<3&#xff0c;特判 n为奇数&#xff0c;则n、n-1、n-2必定互质&#xff0c;所以结果即为三者之和。 n为偶数&#xff0c; 不会严格证明原因&#xff0c;但是找找规律&#xff0c;是这样的...... #include<bits/stdc.h> using namespace std; #de…

数据科学的文本技术 Text Technology(IR信息检索、搜索引擎)

一、文章摘要 1. 内容 * Introduction to IR and text processing, system components * Zipf, Heaps, and other text laws * Pre-processing: tokenization, normalisation, stemming, stopping. * Indexing: inverted index, boolean and proximity search * Evaluation m…

【RocketMQ专题】快速实战及集群架构原理详解

目录 课程内容一、MQ简介基本介绍*作用&#xff08;解决什么问题&#xff09; 二、RocketMQ产品特点2.1 RocketMQ介绍2.2 RocketMQ特点2.3 RocketMQ的运行架构2.4 消息模型 三、RocketMQ快速实战3.1 快速搭建RocketMQ服务3.2 快速实现消息收发3.3 搭建Maven客户端项目3.4 搭建R…

vue+axios+el-progress(elementUI组件)实现下载进度条实时监听(小白简洁版)

一、实现效果 二、实现方式 方案&#xff1a;使用axios方法onDownloadProgress方法监听下载进度 使用此方式的前提&#xff01;&#xff01;&#xff01;请让后端在响应头中加上content-length&#xff0c;存放下载文件的总大小&#xff0c;如下图&#xff1a; 三、代码 1、进…

U盘格式化后数据能恢复吗?详细答案看这里!

“U盘格式化之后数据还可以恢复吗&#xff1f;这真的困扰了我好久!之前由于u盘中病毒&#xff0c;不得已将它格式化了&#xff0c;但是我还有好多视频、图片都保存在里面&#xff0c;这该怎么办呢&#xff1f;” 小小的u盘&#xff0c;可是给我们带来了很多的便利的。在互联网时…

【直播预约中】 腾讯大数据 x StarRocks|构建新一代实时湖仓

随着信息时代的兴起&#xff0c;数据已成为推动业务决策和创新的核心要素&#xff1b;结构化、半结构化等多种类型的数据呈现爆炸式增长&#xff0c;如何高效处理和分析海量数据已经成为关键挑战&#xff0c;结合传统数仓与数据湖优势的湖仓一体&#xff08;Lakehouse&#xff…

uni-app打包iOS ipa文件后不上架App store为用户提供下载解决过程记录

写在前面&#xff0c;itms-services协议是什么 itms-services协议是苹果提供的一种让iOS应用在用户设备上无线安装或升级的协议。 具体来说: itms-services表示iOS应用无线安装服务的URL方案,格式为:itms-services://?actiondownload-manifest&urlMANIFEST_URL其中MANIF…