实验模拟gfs 五大逻辑卷

目录

一    实验环境

二    4台服务端准备工作

1,66,77,88,99 四台机器加4块磁盘

2, scan 刷新磁盘供电接口   并查看

3,改主机名,方便后续操作

4,为加快访问速度  写hosts文件 做映射(55客户机也写)

5,将每个服务端新加的磁盘 格式化并分区

6,所有机器本地yum 安装gfs

7,添加节点到存储信任池中(在 node1 节点上操作)

8,创建卷(在一台node上操作即可)

8.1    创建分布式卷

8.2 创建条带卷

8.3  创建复制卷

8.4  创建分布式条带卷

8.5 创建分布式复制卷

三     55客户端步骤

1,客户端挂载 Gluster 文件系统

1.1客户端需要先做一下步骤

1.2 临时挂载Gluster 文件系统

1.3 永久挂载

四   测试 Gluster 文件系统

1.1 如何检测 得造数据

1.2 将测试数据 复制到所有的卷(挂载点)

2     查看文件分布

2.1 查看分布式卷

2.2 查看条带卷

2.3 查看复制卷

2.4 查看分布式条带卷

2.5  查看分布式复制卷分布

五    破坏性测试

1.1  分布式卷数据查看

1.2 条带卷查看

1.3 查看分布式条带卷

1.4 查看分布式复制卷

六     扩展其他的维护命令

七   总结


 GlusterFS 支持七种卷,即分布式卷(理解为通过hash算法达到把数据存放到brick)、条带卷(理解为将数据切片)、复制卷(就是raid1)、分布式条带卷(将数据切片再分布式)、分布式复制卷(复制数据再分布式)、条带复制卷和分布式条带复制卷。

生产环境中  企业80% 用分布式 复制卷 (最少4台机器)     20% 因为机器不够 用复制卷

一    实验环境

首先需要4台机器(66,77,88,99)做服务端(因为分布式复制和分布式条带   最少需要4台机器)安装gfs 提供5大逻辑卷

再用一台55机器 做客户端,分别访问这5大逻辑卷

二    4台服务端准备工作

1,66,77,88,99 四台机器加4块磁盘

2, scan 刷新磁盘供电接口   并查看

3,改主机名,方便后续操作

4,为加快访问速度  写hosts文件 做映射(55客户机也写)

传给其他机器

5,将每个服务端新加的磁盘 格式化并分区

这里为了简略,直接写/opt/fdisk.sh脚本  代码如下:

#!/bin/bash
NEWDEV=`ls /dev/sd* | grep -o 'sd[b-z]' | uniq`
for VAR in $NEWDEV
doecho -e "n\np\n\n\n\nw\n" | fdisk /dev/$VAR &> /dev/nullmkfs.xfs /dev/${VAR}"1" &> /dev/nullmkdir -p /data/${VAR}"1" &> /dev/nullecho "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0" >> /etc/fstab
done
mount -a &> /dev/null

脚本解释:先过滤出 除sda 的磁盘,   启用for循环  ,VAR 变量调用刚刚的磁盘名

                 进入fdisk 分区页面 (echo -e 免交互  \n 是换行的意思)

                 再mkfs 格式化

                 创建挂载点的文件夹

                 永久挂载  写到 /etc/fstab  文件中

                 mount -a 重新挂载一次

将脚本传给其他服务端

给脚本加执行权限 执行脚本

查看是否分区成功

 

6,所有机器本地yum 安装gfs

生产环境基本是内网,需要手搓本地元安装gfs   这边利用脚本快速到目的。

脚本代码如下:

#!/bin/bash
function backuprepo {
cd /etc/yum.repos.d
mkdir repo.bak
mv *.repo repo.bak
#mount /dev/sr0 /mnt > /dev/null
}makeglfsrepo(){
echo '[glfs]
name = glfs
baseurl=file:///opt/gfsrepo
enabled=1
gpgcheck=0' > glfs.repo
}useglfsrepo (){
yum clean all > /dev/null
yum makecache > /dev/null}install () {yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
systemctl start glusterd.service 
systemctl enable glusterd.service
systemctl status glusterd.service
}
#============main==============
backuprepo
makeglfsrepo
useglfsrepo
install

脚本解释:backuprepo   makeglfsrepo  useglfsrepo install

这四个都是函数名,先定义函数,再调用函数。

重点介绍下 install 函数中的  yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma 

意思是     使用YUM命令无交互式地(-y选项)安装GlusterFS客户端、服务器、FUSE模块(允许非特权用户挂载GlusterFS卷)以及RDMA(远程直接内存访问)支持(提高GlusterFS性能)。

 #将gfsrepo 软件上传到/opt目录下  解压

给脚本加执行权限   执行脚本  所有机器成功运行gfs

注意,如果是网络元下载 gfs

#yum -y install centos-release-gluster			#如采用官方 YUM 源安装,可以直接指向互联网仓库

若出现报错,故障原因是版本过高导致 将原来的gfs卸载,重新安装

7,添加节点到存储信任池中(在 node1 节点上操作)

  • gluster: 命令行工具,用于管理和监控GlusterFS集群。
  • peer probe: 子命令组合,用于向GlusterFS集群中添加一个新的对等节点。

#在每个Node节点上查看群集状态  gluster peer status

8,创建卷(在一台node上操作即可)

#根据规划创建如下卷

卷名称 卷类型Brick
 
fenbushi分布式卷node1(/data/sdb1)、node2(/data/sdb1)
 
tiaodai条带卷node1(/data/sdc1)、node2(/data/sdc1)
fuzhi复制卷node3(/data/sdb1)、node4(/data/sdb1)
 
fbstd分布式条带卷node1(/data/sdd1)、node2(/data/sdd1)、node3(/data/sdd1)、node4(/data/sdd1)
 
fbsfz分布式复制卷node1(/data/sde1)、node2(/data/sde1)、node3(/data/sde1)、node4(/data/sde1)

查看卷列表
gluster volume list

8.1    创建分布式卷

#创建分布式卷,没有指定类型,默认创建的是分布式卷

#启动新建分布式卷

#查看创建分布式卷信息

8.2 创建条带卷

指定类型为 stripe,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是条带卷

启动条带

查看条带卷信息

8.3  创建复制卷

#指定类型为 replica,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是复制卷

启动复制卷

查看复制卷信息

8.4  创建分布式条带卷

#指定类型为 stripe,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式条带卷

启动分布式条带卷‘

查看分布式条带卷信息

8.5 创建分布式复制卷

指定类型为 replica,数值为 4,而且后面跟了 4 个 Brick Server,,所以创建的是分布式复制卷

启动 分布式复制

查看分布式复制卷  信息

注意! 我这边指定类型为 replica,数值为 4   意思就是会复制4分, 再分布式到四台机器上

三     55客户端步骤

1,客户端挂载 Gluster 文件系统

1.1客户端需要先做一下步骤

① 安装gfs客户端软件

② 创建挂载目录

③ 配置 /etc/hosts 文件 (做服务端ip 的映射 加快速度)

1.2 临时挂载Gluster 文件系统

首先在服务端查看所有的逻辑卷 gluster volume list

临时挂载:(前面的fenbushi 是卷名      后面的是挂载的文件夹)

查看挂载情况df -Th

这边可以看到 分布式条带有20G 因为是由4个5G的盘组成

分布式复制只有5G 是因为是由4个5G的盘组成,但是是1乘以4bricks 的形式。一份数据4个brick都复制,可用容量就是5G

1.3 永久挂载

vim /etc/fstab

node1:fenbushi          /test/fenbushi              glusterfs        defaults,_netdev        0 0
node1:tiaodai             /test/taiodai                 glusterfs        defaults,_netdev        0 0
node1:fuzhi                /test/fuzhi                    glusterfs        defaults,_netdev        0 0
node1:fbstd                /test/fbstd                    glusterfs        defaults,_netdev        0 0
node1:fbsfz                /test/fbsfz                    glusterfs        defaults,_netdev        0 0

 

四   测试 Gluster 文件系统

1.1 如何检测 得造数据

(命令 dd if=/dev/zero of=/opt/demo1.log bs=1M count=40 的作用是在 /opt 目录下创建一个名为 demo1.log、大小为40兆字节的空文件,其中填充的内容全部为零字节。这种操作常用于测试、初始化磁盘、创建大文件占位符等场景。)

1.2 将测试数据 复制到所有的卷(挂载点)

2     查看文件分布

2.1 查看分布式卷

数据被分布式存储

node1(/data/sdb1):

node2(/data/sdb1):

2.2 查看条带卷

数据被分片

node1(/data/sdc1)

node2(/data/sdc1)

2.3 查看复制卷

数据没有被分片 有副本 有冗余

node3(/data/sdb1)

node4(/data/sdb1)

2.4 查看分布式条带卷

#数据被分片50% 没副本 没冗余

node1(/data/sdd1)

node2(/data/sdd1)

node3(/data/sdd1)

node4(/data/sdd1)

2.5  查看分布式复制卷分布

#数据没有被分片 有副本 有冗余

node1(/data/sde1)

node2(/data/sde1)

node3(/data/sde1)

node4(/data/sde1)

五    破坏性测试

#挂起 node2 节点(即77机器)或者关闭glusterd服务来模拟故障(亲测要挂起)

[root@node2 ~]# systemctl stop glusterd.service

 然后在客户端上查看文件是否正常

1.1  分布式卷数据查看

#在客户机上发现少了demo5.log文件,这个是在node2上的

1.2 条带卷查看

#无法访问,

1.3 查看分布式条带卷

#无法访问,分布条带卷不具备冗余性 (

1.4 查看分布式复制卷

数据正常

上述实验测试,凡是带复制数据,相比而言,数据比较安全

六     扩展其他的维护命令

1.查看GlusterFS卷
gluster volume list 

2.查看所有卷的信息
gluster volume info

3.查看所有卷的状态
gluster volume status

4.停止一个卷
gluster volume stop dis-stripe

5.删除一个卷,注意:删除卷时,需要先停止卷,且信任池中不能有主机处于宕机状态,否则删除不成功
gluster volume delete dis-stripe

6.设置卷的访问控制
#仅拒绝
gluster volume set dis-rep auth.deny 192.168.80.100

#仅允许
gluster volume set dis-rep auth.allow 192.168.80.*      #设置192.168.80.0网段的所有IP地址都能访问dis-rep卷(分布式复制卷)


安装报错:版本过高,先解除依赖关系

yum remove glusterfs-api.x86_64 glusterfs-cli.x86_64 glusterfs.x86_64 glusterfs-libs.x86_64 glusterfs-client-xlators.x86_64 glusterfs-fuse.x86_64 -y

七   总结

分布式卷:以文件为单位,通过hash散列在各个Brick中,不具备冗余
条带卷:把文件数据进行分块,轮询的分布在各个Brick中,不具备冗余能力
复制卷:把文件进行Brick中做镜像存储,具备冗余能力
分布式条带卷:不具备冗余能力,至少要4个服务器,Brick≥2 条带的2倍
分布式复制卷:具备冗余能力,至少4台Brick Brick数量≥2 副本数的2倍

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

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

相关文章

Google Cookie意见征求底部弹窗

关于欧盟 Cookie 通知 根据2024年欧盟的《通用数据保护条例》以及其他相关法规,要求google cookie的使用必须征求用户的同意,才能进行收集用户数据信息,因此跨境独立站,如果做欧洲市场,就必须弹出cookie收集数据弹窗&a…

【MATLAB源码-第183期】基于matlab的图像处理GUI很全面包括滤波,灰度,边缘提取,RGB亮度调节,二值化等。

操作环境: MATLAB 2022a 1、算法描述 1. RGB颜色亮度调整 1.1 RGB颜色模型 RGB颜色模型是一种加色模型,使用红色(R)、绿色(G)、蓝色(B)三种颜色的不同组合来表示各种颜色。每种…

第9章 文件和内容管理

思维导图 9.1 引言 文件和内容管理是指针对存储在关系型数据库之外的数据和信息的采集、存储、访问和使用过程的管理。它的重点在于保持文件和其他非结构化或半结构化信息的完整性,并使这些信息能够被访问。文件和非结构化内容也应是安全且高质量的。 确保文件和内容…

Paper Reading

使用diffusion mode生成synthetic images,用于enhance traning data: 1. FreeMask: Synthetic Images with Dense Annotations Make Stronger Segmentation Models (NurIPS 2024) Challenges: Generating in-domain imagesGenerating high-quality imagesGenera…

【零基础学数据结构】顺序表

目录 1.了解数据结构 什么是数据结构? 为什么要进行数据管理? 2.顺序表 顺序表概要解析: ​编辑顺序表的分类: 差别和使用优先度: 1.创建顺序表 1.1顺序表分为静态顺序表和动态顺序表 1.2顺序表的初始化…

Ps 滤镜:查找边缘

Ps菜单:滤镜/风格化/查找边缘 Filter/Stylize/Find Edges 查找边缘 Find Edges滤镜能够突出图像中的边缘,同时保留原图的颜色信息。 “查找边缘”滤镜通过分析图像的色彩和亮度变化来识别边缘。 这种处理方式使得图像的主要轮廓以一种艺术化的线条形式被…

本地部署google大模型并编写程序调用流式输出

目录 ollamagemma客户端调用 ollama 本地安装ollama gemma 下载并部署模型 本机资源有限,可以下个2b的相对较小的模型 执行命令 ollama run gemma:2b客户端调用 import requests import jsondata {"model": "gemma:2b","messages&quo…

虚拟机网络配置

1. 为什么要配置? 当我们创建好一个虚拟机并在网络方面未作更改由虚拟机自动生成ip地址时,虚拟机的ip地址是处于动态变化的,每次开启都会再随机生成一个新的ip;这不利于我们通过其他设备远程连接该虚拟机,这时候需要我…

C++(13): 智能指针shared_ptr

1. 概述 shared_ptr智能指针,本质是“离开作用域会自动调整(减小)引用计数,如果引用计数为0,则会调用析构函数”。这样一来,就进化成类似于int、float等的一种会被自动释放的类型。 2. 初始化智能指针 初始化一个智能指针的方式比…

1.Spring的核心思想 —— IOC和DI

1. Spring是什么? 简单的说,Spring其实指的是Spring Framework(Spring框架),是一个开源框架。 如果要用一句话概括:它是包含众多工具方法的IOC(Inverse of Control控制反转)容器。…

【御控物联】JavaScript JSON结构转换(18):数组To对象——多层属性重组

文章目录 一、JSON结构转换是什么?二、案例之《JSON数组 To JSON对象》三、代码实现四、在线转换工具五、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换,生成新的JS…

Golang 开发实战day07 - Functions

🏆个人专栏 🤺 leetcode 🧗 Leetcode Prime 🏇 Golang20天教程 🚴‍♂️ Java问题收集园地 🌴 成长感悟 欢迎大家观看,不执着于追求顶峰,只享受探索过程 Golang 教程07 - Functions …

HTML+CSS+JS复习回顾

环境搭建 下载VScode,依次下载插件:HTML CSS support、Live Server、Auto Rename Tag 一、HTML篇 HTML通过一系列的标签(元素)来定义文本、图像、链接等。HTML标签是由尖括号包围的关键字。标签通常成对出现,包括开…

基于SSM的校园二手物品交易平台论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本校园二手物品交易平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据…

spring-cloud微服务负载均衡器ribbon

注意:2020年前SpringCloud是采用Ribbon作为负载均衡实现,但是在2020后采用了LoadBalancer替代,所以要查看springboot,springcloud,sprincloudalibaba的版本链接对应,Ribbon负载均衡都是在springboot版本2.4…

面试题:volatile

一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 1. 保证线程间的可见性 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值…

【攻防世界】wife_wife

原型链污染 源码 app.post(/register, (req, res) > {let user JSON.parse(req.body)if (!user.username || !user.password) {return res.json({ msg: empty username or password, err: true })}if (users.filter(u > u.username user.username).length) {return …

推进数智化财务管理体系,助力企业降本提效

在数字经济快速发展的今天,数字化能力早已成为企业发展的核心竞争力。在开放、融合的数字经济大背景下,企业该如何将科技深度赋能业务,打造出高质量发展的新引擎?当财务管理缺乏精准化、精确化、及时性的问题逐渐显露,…

【Python】不会优雅的记日志,你又又Out了!!!

1. 引言 在日常开发中,大家经常使用 print 函数来调试我们写的的代码。然而,随着打印语句数量的增加,由于缺乏行号或函数名称,很难确定输出来自何处。而且随着print语句的增多,调试完代码删除这些信息的时候也比较麻烦…

实现首选目标|国内博士后赴新加坡继续从事博士后研究

申请时,V博士尚为国内在站的博士后,其希望在我们的帮助下,加入国外导师先进的课题组,在拓展学术视野的同时,延续自己的科研项目并结题,目标国家首选新加坡。最终我们用新加坡科技研究局(A*STA&a…