实验模拟gfs 五大逻辑卷

news2024/11/25 10:52:43

目录

一    实验环境

二    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
do
   echo -e "n\np\n\n\n\nw\n" | fdisk /dev/$VAR &> /dev/null
   mkfs.xfs /dev/${VAR}"1" &> /dev/null
   mkdir -p /data/${VAR}"1" &> /dev/null
   echo "/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.coloradmin.cn/o/1580503.html

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

相关文章

13-pyspark的共享变量用法总结

目录 前言广播变量广播变量的作用 广播变量的使用方式 累加器累加器的作用累加器的优缺点累加器的使用方式 PySpark实战笔记系列第四篇 10-用PySpark建立第一个Spark RDD(PySpark实战笔记系列第一篇)11-pyspark的RDD的变换与动作算子总结(PySpark实战笔记系列第二篇))12-pysp…

【AcWing】蓝桥杯集训每日一题Day16|哈希|FloodFill算法|字典序最小|映射|1402.星空之夜(C++)

1402.星空之夜 1402. 星空之夜 - AcWing题库难度:中等时/空限制:1s / 64MB总通过数:3415总尝试数:7434来源:usaco training 5.1算法标签Flood Fill哈希DFSBFS 题目内容 夜空深处,闪亮的星星以星群的形式出…

雅特力AT32引脚复用记录

用作USB的话,PA9不能再用作其他功能了 被复用了。这个关联信号是OTG_FS_VBUS。stm32是能这么复用的。

大型央国企“信创化”与数字化转型建设思路

一、央国企信创化与数字化转型时代背景 1、信创概念普及: 信创,即“信息技术应用创新”。是我国自主信息产业聚焦的核心,旨在通过对IT硬件、软件等各个环节的重构,基于我国自有IT底层架构和标准,形成自有开放生态&am…

阿里云OSS使用流程

准备工作 无论怎么样,你需要准备一个阿里云账号,点击:注册阿里云 输入相关信息,然后注册成功以后,点击 然后注册成功了,实名一下阿里云账号。打开实名入口,选择个人实名或者企业实名。 如果你…

Xinstall:专业的App下载量统计工具,让推广效果可衡量

在移动互联网时代,App的下载量是衡量一个应用受欢迎程度的重要指标。然而,很多开发者和广告主在推广App时,都面临着一个共同的问题:如何准确统计App的下载量?这不仅关系到推广效果的评估,还直接影响到广告R…

【Linux 学习】进程优先级和命令行参数!

1. 什么是优先级? 指定进程获取某种资源(CPU)的先后顺序; Linux 中优先级数字越小,优先级越高; 1.1 优先级和权限的区别? 权限 : 能不能做 优先级: 已经能了,但是获…

Linux初学(十七)防火墙

一、防火墙简介 1.1 防火墙的类别 安全产品 杀毒: 针对病毒,特征篡改系统中的文件杀毒软件针对处理病毒程序防火墙: 针对木马,特征系统窃取防火墙针对处理木马 防火墙分为两种 硬件防火墙软件防火墙 硬件防火墙 各个网络安全…

模型量化——NVIDIA——方案选择(PTQ、 partialPTQ、 QAT)

PTQ、 partialPTQ、 QAT 选择流程 PTQ、 partialPTQ、 QAT 咨询NVIDIA 官方后,他们的校正过程一致,支持的量化算子本质是一样的,那么如果你的算子不是如下几类,那么需要自己编写算子。参考TensorRT/tools/pytorch-quantization/py…

淘宝销量API商品详情页原数据APP接口测试㊣

淘宝/天猫获得淘宝app商品详情原数据 API 返回值说明 item_get_app-获得淘宝app商品详情原数据 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地…

码蹄集部分题目(第五弹;OJ赛2024年第10期)

🐋🐋🐋竹鼠通讯(钻石;分治思想;模板题:就算几何平面点对问题) 时间限制:3秒 占用内存:128M 🐟题目描述 在真空中,一块无限平坦光滑…

基于SSM+Jsp+Mysql的高校毕业设计管理系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

【三十六】【算法分析与设计】综合练习(3),39. 组合总和,784. 字母大小写全排列,526. 优美的排列

目录 39. 组合总和 对每一个位置进行枚举 枚举每一个数出现的次数 784. 字母大小写全排列 526. 优美的排列 结尾 39. 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不…

【信贷后台管理之(五)】

文章目录 目录结构一、面包屑组件封装二、退出登录接口联调三、申请列表的菜单路由3.1 路由创建,表格编写3.2 列表接口调用3.3 出生日期转变3.4 申请状态3.5 申请列表的操作3.5.1 编辑删除提交操作3.5.2 禁用状态3.5.3 操作接口3.5.4 搜索查询3.5.5 申请列表分页功能…

Leetcode面试经典150_Q14最长公共前缀

题目: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 思路A:横向/纵向扫描 Python: class Solution:def longestCommonPrefix(self, strs: List[str]) -> str:s "…

NPDP含金量高吗?什么人适合学习NPDP?

省流版:NPDP含金量挺高的,做产品的建议去学习下~ 一、什么是NPDP? NPDP 是产品经理国际资格认证,美国产品开发与管理协会(PDMA)发起的,是目前国际公认的唯一的新产品开发专业认证,…

LeetCode-279. 完全平方数【广度优先搜索 数学 动态规划】

LeetCode-279. 完全平方数【广度优先搜索 数学 动态规划】 题目描述:解题思路一:Python 动态规划五部曲(完全平方数就是物品(可以无限件使用),凑个正整数n就是背包,问凑满这个背包最少有多少物品…

小明的衣服-蓝桥1228-优先队列

解法 用优先队列,思路参考哈夫曼树(贪心) 思路:很复杂,说结果 n件同色衣服要染成都不同色,求邮费最少; 倒过来想:n件不同颜色衣服,要染成同一种颜色,求邮费…

tensorflow.js 使用 opencv.js 将人脸特征点网格绘制与姿态估计线绘制结合起来,以获得更高的帧数

系列文章目录 如何在前端项目中使用opencv.js | opencv.js入门如何使用tensorflow.js实现面部特征点检测tensorflow.js 如何从 public 路径加载人脸特征点检测模型tensorflow.js 如何使用opencv.js通过面部特征点估算脸部姿态并绘制示意图 文章目录 系列文章目录前言一、实现步…

Python高级

不定长参数 位置不定长参数&#xff0c;获取参数args会整合为一个元组 def info(*args):print(arg is, args)print(type(arg) is, type(args))info(1, 2, 3, 4, a, b)# 输出 # arg is (1, 2, 3, 4, a, b) # type(arg) is <class tuple> 关键字不定长参数&#xff0c;&…