实验模拟gfs 五大逻辑卷

简介: 实验模拟gfs 五大逻辑卷

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倍

相关文章
|
网络协议 数据安全/隐私保护 网络架构
【个人笔记】计算机网络五层结构理解
【个人笔记】计算机网络五层结构理解
|
Kubernetes 数据安全/隐私保护 Docker
k8s使用私有镜像仓库的访问凭据配置
k8s使用私有镜像仓库的访问凭据配置
772 1
|
jenkins 持续交付 数据安全/隐私保护
Docker 打包镜像 | 发布至阿里云镜像仓库
Docker 打包镜像 | 发布至阿里云镜像仓库
2647 1
|
9月前
|
存储 人工智能 算法
通过Milvus内置Sparse-BM25算法进行全文检索并将混合检索应用于RAG系统
阿里云向量检索服务Milvus 2.5版本在全文检索、关键词匹配以及混合检索(Hybrid Search)方面实现了显著的增强,在多模态检索、RAG等多场景中检索结果能够兼顾召回率与精确性。本文将详细介绍如何利用 Milvus 2.5 版本实现这些功能,并阐述其在RAG 应用的 Retrieve 阶段的最佳实践。
1757 1
通过Milvus内置Sparse-BM25算法进行全文检索并将混合检索应用于RAG系统
PR曲线、ROC曲线、AUC能干个啥
评判二分类分类器性能的指标有那么多,为什么PR曲线、ROC曲线、AUC值这几个用的比较多。本文从概念、代码实现方面着手进行分享。
PR曲线、ROC曲线、AUC能干个啥
|
Python
turtle库的几个简单案例,代码可直接运行(python经典编程案例)
该文章提供了多个使用Python的turtle库绘制不同图形的简单示例代码,如画三角形、正方形、多边形等,展示了如何通过turtle进行基本的绘图操作。
1301 5
|
Docker Python 容器
[docker]封装python的docker镜像
[docker]封装python的docker镜像
393 3
|
Prometheus Kubernetes 监控
使用kubectl快速查看各个节点的CPU和内存占用量
在Kubernetes集群中,安装metrics-server,并使用kubectl快速查看集群中各个节点的资源使用情况。
1338 0
|
JavaScript 前端开发
【vue】 el-table解决分页不能筛选全部数据的问题
【vue】 el-table解决分页不能筛选全部数据的问题
932 4
|
负载均衡 安全 应用服务中间件
nginx配置ssl和反向代理的配置代码
【5月更文挑战第2天】nginx配置ssl和反向代理的配置代码
866 3