文章目录

GFS分布式文件系统

一、关于GFS分布式文件系统

1、GFS概述

GFS是一个分布式的文件系统,指在扩展存储容量,提高性能,并且可以通过多个互联网络存储的数据进行冗余,确保数据的可用性和一致性

  • 开源的分布式文件系统
  • 由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成
  • 无元数据服务器,有助于提升整个系统的性能、可靠性和稳定性
组成部分
  • 存储服务器
  • 客户端NFS/Samba存储网关组成
  • 无元数据服务器:保存数据的存放地点,数据横向扩展能力强,具备较高的可靠性及存储效率

2、GFS特点

2.1 扩展性和高性能(分布式的特性)
  • Scale-Out架构允许通过简单地增加存储节点的方式来提高存储容量和性能(磁盘、计算和I/O资源都可以独立增加),支持10GbE和 InfiniBand等高速网络互联。
  • Gluster弹性哈希(ElasticHash)解决了GlusterFS对元数据服务器的依赖,改善了单点故障和性能瓶颈,真正实现了并行化数据访问。GlusterFS采用弹性哈希算法在存储池中可以智能地定位任意数据分片(将数据分片存储在不同节点上),不需要查看索引或者向元数据服务器查询。
2.2 高可用性(冗余、容灾的能力)
  • GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问,甚至是在硬件故障的情况下也能正常访问。
  • 当数据出现不一致时,自我修复功能能够把数据恢复到正确的状态,数据的修复是以增量的方式在后台执行,几乎不会产生性能负载。
  • GlusterFS可以支持所有的存储,因为它没有设计自己的私有数据文件格式,而是采用操作系统中主流标准的磁盘文件系统(如EXT3、XFS等)来存储文件,因此数据可以使用传统访问磁盘的方式被访问。
2.3 全局统一命名的空间
  • 分布式存储中,将所有节点的命名空间整合为统一命名空间,将整个系统的所有节点的存储容量组成一个大的虚拟存储池,供前端主机访问这些节点完成数据读写操作。
2.4 弹性卷管理(类似于raid)
  • GlusterFS通过将数据储存在逻辑卷中,逻辑卷从逻辑存储池进行独立逻辑划分而得到。
  • 逻辑存储池可以在线进行增加和移除,不会导致业务中断。逻辑卷可以根据需求在线增长和缩减,并可以在多个节点中实现负载均衡。
    文件系统配置也可以实时在线进行更改并应用,从而可以适应工作负载条件变化或在线性能调优。
2.5 基于标准协议
  • Gluster 存储服务支持 NFS、CIFS、HTTP、FTP、SMB 及 Gluster原生协议,完全与 POSIX 标准(可移植操作系统接口)兼容。
  • 现有应用程序不需要做任何修改就可以对Gluster 中的数据进行访问,也可以使用专用 API 进行访问。

3、GFS专业术语

3.1 Brick(存储块)
  • 指可信主机池中由主机提供的用于物理存储的专用分区,是GlusterFS中的基本存储单元,同时也是可信存储池中服务器上对外提供的存储目录。
  • 存储目录的格式由服务器的绝对路径构成,表示方法为SERVER:EXPORT,如192.168.1.1:/data/mydir/
3.2 Volume(逻辑卷)
  • 一个逻辑卷是一组Brick的集合。卷是数据存储的逻辑设备,类似于LVM中的逻辑卷。大部分Gluster管理操作是在卷上进行的。
3.3 FUSE
  • 伪文件系统

  • 是一个内核模块,允许用户创建自己的文件系统,无需修改内核代码。

3.4 VFS
  • 虚拟端口

  • 内核空间对用户空间提供的访问磁盘的接口。

3.5 Glusterd(后台管理进程)
  • 在存储集群中的每个节点上都要运行。

4、GFS工作原理

4.1 GFS工作流程

image-20240408115541590

  • 客户端或应用程序通过GlusterFS的挂载点访问数据。
  • Linux系统内核通过VFS API收到请求并处理。
  • VFS将数据递交给FUSE内核文件系统,并向系统注册一个实际的文件系统FUSE,而FUSE文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS Client端。(可以将FUSE文件系统理解为一个代理)
  • GlusterFS Client收到数据后,Client根据配置文件的配置对数据进行处理。
  • 经过GlusterFS Client处理后,通过网络将数据传递至远端的GlusterFS Server,并且将数据写入到服务器存储设备上。
4.2 弹性Hash算法
4.2.1 弹性Hash算法的概念
  • 弹性HASH算法是Davies-meyer算法的具体实现,通过Hash算法可以得到一个32位的整数范围的Hash值,假设逻辑卷中有N个存储单位Brick,则32位的整数范围将划分为N个连续的子空间,每个空间对应一个Brick。
  • 当用户或应用程序访问某一个命名空间时,同对该命名空间计算Hash值,根据该Hash值所对应的的32位整数空间定位数据所在的Brick。
4.2.2 弹性Hash算法的优点
  • 保证数据平均分布在每一个Brick中。
  • 解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈。

5、GFS卷的类型(七个)

  • GlusterFS支持七种卷,即分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷、条带复制卷和分布式条带复制卷
5.1 分布式巻
5.1.1 分布式卷概述

文件通过Hash算法分布到所有Brick Server上,这种卷是ClusterFS的默认卷,以文件为单位分局Hash算法散列到不同的Brick,其实只是扩大了磁盘空间,如果有一块磁盘损坏,数据也将丢失,属于文件级的RAID 0,不具有容灾能力。
在该模式下,并没有对文件进行分块处理,文件直接存储在某个Server节点上。由于直接使用本地文件系统进行文件存储,所以存取效率并没有提高,反而会因为网络通信的原因而有所降低。

  • 没有对文件进行分块处理
  • 通过扩展文件属性保存Hash值
  • 支持的底层文件系统有EXT3、EXT4、ZFS、XFS等
5.1.2 示例原理

image-20240408160754814

File1 和 File2 存放在 Server1,而 File3 存放在 Server2,文件都是随机存储,一个文件(如 File1)要么在 Server1 上,要么在 Server2 上,不能分块同时存放在 Server1和 Server2 上。

5.1.3 分布式卷的特点
  • 文件分布在不同的服务器,不具备冗余性

  • 更容易和廉价地扩展卷的大小

  • 单点故障会造成数据丢失

  • 依赖底层的数据保护

5.1.4 创建方法
gluster volume create dis-volume server1:/dir1 server2:/dir2 server3:/dir3

#创建一个名为dis-volume的分布式卷,文件将根据HASH分布在server1:/dir1、server2:/dir2和server3:/dir3中
5.2 条带卷
5.2.1 条带卷概述
  • 类似RAID 0,文件被分成数据块并以轮询的方式分布到多个Brick Server上,文件存储以数据块为单位,支持大文件存储,文件越大,读取效率越高,但是不具备冗余性。
5.2.2 示例原理

image-20240408160813900

File 被分割为 6 段,1、3、5 放在 Server1,2、4、6 放在 Server2。

5.2.3 条带卷特点
  • 数据被分割成更小块分布到块服务器集群中的不同条带区

  • 分布减少了负载且更小的文件加速了存取的速度

  • 没有数据冗余

5.2.4 创建方法
gluster volume create stripe 2 transport tcp server1:/dir1 server2:/dir2
#创建一个名为stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中

#stripe 2 表示条带数为2
#transport tcp 表示使用tcp协议
5.3 复制卷
5.3.1 复制卷概述
  • 将文件同步到多个 Brick 上,使其具备多个文件副本,属于文件级 RAID 1,具有容错能力。因为数据分散在多个 Brick 中,所以读性能得到很大提升,但写性能下降。
  • 复制卷具备冗余性,即使一个节点损坏,也不影响数据的正常使用。但因为要保存副本,所以磁盘利用率较低。
5.3.2 示例原理

image-20240408160829055

File1同时存在Server1和Server2中,File2也是如此,相当于Server2中的文件时Server1中文件的副本。

5.3.3 复制卷特点
  • 卷中所有的服务器均保存一个完整的副本。
  • 卷的副本数量可由客户创建的时候决定,但复制数必须等于卷中 Brick 所包含的存储服务器数。
5.3.4 创建方法
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
#创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1:/dir1和Server2:/dir2两个Brick中

#replica 2 表示2个副本
#transport tcp 表示使用tcp协议
5.4 分布式条带卷
5.4.1 分布式条带卷概述
  • Brick Server 数量是条带数(数据块分布的 Brick 数量)的倍数,兼具分布式卷和条带卷的特点。 主要用于大文件访问处理,创建一个分布式条带卷最少需要 4 台服务器。
5.4.2 示例原理

image-20240408160846045

File1 和 File2 通过分布式卷的功能分别定位到Server1和 Server2。在 Server1 中,File1 被分割成 4 段,其中 1、3 在 Server1 中的 exp1 目录中,2、4 在 Server1 中的 exp2 目录中。在 Server2 中,File2 也被分割成 4 段,其中 1、3 在 Server2 中的 exp3 目录中,2、4 在 Server2 中的 exp4 目录中。

5.4.3 创建方法
gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
#创建一个名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)。Brick 的数量是 4(Server1:/dir1、Server2:/dir2、Server3:/dir3 和 Server4:/dir4),条带数为 2(stripe 2)

#stripe 2 表示条带数为2
#transport tcp 表示使用tcp协议

注意:创建卷时,存储服务器的数量如果等于条带或复制数,那么创建的是条带卷或者复制卷;如果存储服务器的数量是条带或复制数的 2 倍甚至更多,那么将创建的是分布式条带卷或分布式复制卷。

5.5 分布式复制卷
5.5.1 分布式复制卷概述
  • Brick Server 数量是镜像数(数据副本数量)的倍数,兼具分布式卷和复制卷的特点。主要用于需要冗余的情况下。
5.5.2 示例原理

image-20240408160904422

File1 和 File2 通过分布式卷的功能分别定位到 Server1 和 Server2。在存放 File1 时,File1 根据复制卷的特性,将存在两个相同的副本,分别是 Server1 中的exp1 目录和 Server2 中的 exp2 目录。在存放 File2 时,File2 根据复制卷的特性,也将存在两个相同的副本,分别是 Server3 中的 exp3 目录和 Server4 中的 exp4 目录。

5.5.3 创建方法
gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
#创建一个名为dis-rep的分布式复制卷,配置分布式的复制卷时,卷中Brick所包含的存储服务器数必须是复制数的倍数(>=2倍)。Brick 的数量是 4(Server1:/dir1、Server2:/dir2、Server3:/dir3 和 Server4:/dir4),复制数为 2(replica 2)

#replica 2 表示副本的数量是2
5.6 条带复制卷
  • 类似 RAID 10,同时具有条带卷和复制卷的特点。
5.7 分布式条带复制卷
  • 三种基本卷的复合卷,通常用于类 Map Reduce 应用。

二、部署GFS集群

1、服务器节点分配

服务器节点 ip地址 主机名 磁盘部署 对应挂载点
Node1节点 192.168.10.11 node1 /dev/sdc1
/dev/sdd1
/dev/sde1
/data/sdc1
/data/sdd1
/data/sde1
Node2节点 192.168.10.12 node2 /dev/sdc1
/dev/sdd1
/dev/sde1
/data/sdc1
/data/sdd1
/data/sde1
Node3节点 192.168.10.13 node3 /dev/sdb1
/dev/sdc1
/dev/sdd1
/dev/sde1
/data/sdb1
/data/sdc1
/data/sdd1
/data/sde1
Node4节点 192.168.10.14 node4 /dev/sdb1
/dev/sdc1
/dev/sdd1
/dev/sde1
/data/sdb1
/data/sdc1
/data/sdd1
/data/sde1
客户端节点 192.168.10.15 client

2、服务器环境(所有node节点操作)

2.1 关闭防火墙
systemctl stop firewalld
setenforce 0
#关闭防火墙和核心防护
2.2 磁盘分区,挂载
#刷新磁盘

lsblk
#查看磁盘信息

cd /opt/
#切换目录

#编写脚本,进行磁盘分区和挂载
vim /opt/fdisk.sh
#!/bin/bash
NEWDEV=`ls /dev/sd* | grep -o 'sd[b-z]' | uniq`
#设置变量,"查看磁盘,筛选显示'sd[b-z]'的磁盘,去重"
#此处由于我已经用掉了一台设备的sdb磁盘,所以该设备筛选为范围'sd[c-z]'
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
#重新挂载,并将输出结果导入回收站

chmod +x /opt/fdisk.sh
#添加执行权限

./fdisk.sh
#执行脚本

df -h
#查看挂载情况
  • ip:192.168.10.11

image-20240409122023166

image-20240409122446771

  • ip:192.168.10.12

image-20240409122123602

image-20240409122606220

  • ip:192.168.10.13

image-20240409122202151

image-20240409122636845

  • ip:192.168.10.14

image-20240409122243122

image-20240409122947755

2.3 修改主机名,配置/etc/hosts文件
hostnamectl set-hostname 主机名
bash
#修改主机名

#修改配置文件
vim /etc/hosts
192.168.10.11 node1
192.168.10.12 node2
192.168.10.13 node3
192.168.10.14 node4
#添加ip配置
  • ip:192.168.10.11

image-20240409133949778

  • ip:192.168.10.12

image-20240409134549107

  • ip:192.168.10.13

image-20240409134501474

  • ip:192.168.10.14

image-20240409134417258

3、安装、启动GFS(所有节点上操作)

cd /opt
#切换目录

#将需要的安装包gfsrepo上传

unzip gfsrepo.zip
#解压

cd /etc/yum.repos.d/
#切换目录

mkdir repo.bak
#新建备份文件

mv *.repo repo.bak
#移动所有以repo结尾的文件到备份文件中

#编辑配置文件
vim glfs.repo
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1

yum clean all
#清除缓存

yum makecache
#重新下载元数据

yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
#安装

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
#若安装时报错,则删除干扰的软件,故障原因是版本过高导致,移除之后重新安装

systemctl start glusterd.service
#开启服务

systemctl enable glusterd.service
#自启动

systemctl status glusterd.service
#查看服务状态
  • node1

image-20240409142735785

image-20240409142851335

image-20240409152902895

  • node2

image-20240409150031124

image-20240409150113211

image-20240409153025284

  • node3

image-20240409150848464

image-20240409151110452

image-20240409153737567

  • node4

image-20240409151744384

image-20240409151831787

image-20240409153811365

4、添加节点到存储信任池(在其中一个node节点操作)

  • 只要在一台node节点上添加其他节点即可,当前的节点不需要添加
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
#添加信任节点,在node1设备上添加

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

image-20240409154719767

image-20240409154754469

image-20240409154817458

image-20240409154843846

5、创建卷

卷名称 卷类型 Brick
fenbushi 分布式卷 node1(/data/sdc1)、node2(/data/sdc1)
tiaodai 条带卷 node3(/data/sdb1)、node4(/data/sdb1)
fuzhi 复制卷 node3(/data/sdc1)、node4(/data/sdc1)
fbs-td 分布式条带卷 node1(/data/sdd1)、node2(/data/sdd1)、node3(/data/sdd1)、node4(/data/sdd1)
fbs-fz 分布式复制卷 node1(/data/sde1)、node2(/data/sde1)、node3(/data/sde1)、node4(/data/sde1)
5.1 创建分布式
  • 无需指定类型,默认创建的是分布式卷
gluster volume create fenbushi node1:/data/sdc1 node2:/data/sdc1 force
#创建分布式卷,没有指定类型,默认创建的是分布式卷

gluster volume list
#查看卷列表

gluster volume start  fenbushi
#启动新建分布式卷

gluster volume info fenbushi
#查看创建分布式卷信息

image-20240409155629493

5.2 创建条带卷
  • 指定类型为stripe,数值为2,且后面跟了2个Brick Server,所以创建的是条带卷
gluster volume create tiaodai stripe 2 node3:/data/sdb1 node4:/data/sdb1 force
#指定类型为 stripe,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是条带卷

gluster volume start tiaodai
#启动新建条带卷

gluster volume info tiaodai
#查看条带卷信息

image-20240409160132084

5.3 创建复制卷
  • 指定类型为replica,数值为2,且后面跟了2个Brick Server,所以创建的是复制卷
gluster volume create fuzhi replica 2 node3:/data/sdc1 node4:/data/sdc1 force
#指定类型为 replica,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是复制卷

gluster volume start fuzhi
##启动新建复制卷

gluster volume info fuzhi
#查看新建复制卷信息

image-20240409160604961

5.4 创建分布式条带卷
  • 指定类型为stripe,数值为2,而且后面跟了4个Brick Server,是2的两倍,所以创建的是分布式条带卷
gluster volume create fbs-td stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
#指定类型为 stripe,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式条带卷

gluster volume start fbs-td
#启动新建分布式条带卷

gluster volume info fbs-td
#查看分布式条带卷信息

image-20240409160918606

5.5 创建分布式复制卷
  • 指定类型为replica,数值为2,而且后面跟了4个Brick Server,是2的两倍,所以创建的是分布式复制卷
gluster volume create fbs-fz replica 4 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
#指定类型为 replica,数值为 4,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式复制卷

gluster volume start fbs-fz
#启动新建分布式复制卷

gluster volume info fbs-fz
#查看分布式复制卷信息

gluster volume list
#查看卷列表

image-20240409165749628

三、部署Gluster客户端

1、修改主机名、配置/etc/hosts文件

hostnamectl set-hostname client
bash
#修改主机名

#修改配置文件
vim /etc/hosts
192.168.10.11 node1
192.168.10.12 node2
192.168.10.13 node3
192.168.10.14 node4
#添加ip配置

image-20240409161756739

2、安装客户端软件

  • 将gfsrepo软件上传到/opt目录下
cd /opt
#切换目录

#将需要的安装包gfsrepo上传

unzip gfsrepo.zip
#解压

cd /etc/yum.repos.d/
#切换目录

mkdir repo.bak
#新建备份文件

mv *.repo repo.bak
#移动所有以repo结尾的文件到备份文件中

#编辑配置文件
vim glfs.repo
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1

yum clean all
#清除缓存

yum makecache
#重新下载元数据

yum install -y glusterfs glusterfs-fuse
#安装

image-20240409163402032

image-20240409163451118

3、创建挂载目录

mkdir -p /test/{fenbushi,tiaodai,fuzhi,fbs_td,fbs_fz}
#递归创建挂载目录

ll /test
#查看新建的目录

image-20240409163619302

4、挂载Gluster文件系统

4.1 临时挂载
mount.glusterfs node1:fenbushi /test/fenbushi
mount.glusterfs node1:tiaodai /test/tiaodai
mount.glusterfs node1:fuzhi /test/fuzhi
mount.glusterfs node1:fbs_td /test/fbs_td
mount.glusterfs node1:fbs_fz /test/fbs_fz
#临时挂载

df -h
#查看挂载信息

image-20240409163912164

4.2 永久挂载
#永久挂载,写入配置文件
vim /etc/fstab
node1:fenbushi		/test/fenbushi		glusterfs		defaults,_netdev		0 0
node1:tiaodai		/test/tiaodai		glusterfs		defaults,_netdev		0 0
node1:fuzhi		    /test/fuzhi			glusterfs		defaults,_netdev		0 0
node1:fbs-td		/test/fbs_td		glusterfs		defaults,_netdev		0 0
node1:fbs-fz		/test/fbs_fz	    glusterfs		defaults,_netdev		0 0

mount -a
#重新挂载

df -f
#查看挂载信息

image-20240409164834803

image-20240409164513146

image-20240409165012387

四、测试Gluster文件系统

1、客户端操作,卷中写入文件

cd /opt
#切换目录

dd if=/dev/zero of=/opt/demo1.log bs=1M count=40
dd if=/dev/zero of=/opt/demo2.log bs=1M count=40
dd if=/dev/zero of=/opt/demo3.log bs=1M count=40
dd if=/dev/zero of=/opt/demo4.log bs=1M count=40
dd if=/dev/zero of=/opt/demo5.log bs=1M count=40
#写入文件

ll -h /opt
#查看目录信息

cp /opt/demo* /test/fenbushi/
cp /opt/demo* /test/tiaodai/
cp /opt/demo* /test/fuzhi/
cp /opt/demo* /test/fbs_td/
cp /opt/demo* /test/fbs_fz/
#将文件复制到挂载目录

image-20240409170151605

image-20240409170332262

2、查看文件分布

2.1 查看分布式文件分布
  • node1
ll -h /data/sdc1
#数据没有被分片,但随机分布储存

image-20240409171529976

  • node2
ll -h /data/sdc1
#数据没有被分片,但随机分布储存

image-20240409171638456

2.2 查看条带卷文件分布
  • node3
ll -h /data/sdb1
#数据被分片50%,没副本,没冗余

image-20240409171932219

  • node4
ll -h /data/sdb1
#数据被分片50% 没副本 没冗余

image-20240409172018425

2.3 查看复制卷分布
  • node3
ll -h /data/sdc1
#数据没有被分片,有副本,有冗余

image-20240409172149025

  • node4
ll -h /data/sdc1
#数据没有被分片,有副本,有冗余

image-20240409172122272

2.4 查看分布式条带卷分布
  • node1
ll -h /data/sdd1
#数据被分片50% 没副本 没冗余

image-20240409172314248

  • node2
ll -h /data/sdd1
#数据被分片50% 没副本 没冗余

image-20240409172421216

  • node3
ll -h /data/sdd1
#数据被分片50% 没副本 没冗余

image-20240409172451370

  • node4
ll -h /data/sdd1
#数据被分片50% 没副本 没冗余

image-20240409172546474

2.5 查看分布式复制卷分布
  • node1
ll -h /data/sde1
#数据没有被分片,有副本,有冗余

image-20240409172722791

  • node2
ll -h /data/sde1
#数据没有被分片,有副本,有冗余

image-20240409172746265

  • node3
ll -h /data/sde1
#数据没有被分片,有副本,有冗余

image-20240409172811428

  • node4
ll -h /data/sde1
#数据没有被分片,有副本,有冗余

image-20240409172841655

五、破坏性测试

  • 挂起node3节点服务器

1、客户端查看文件是否正常

1.1 分布式卷
ll -h /test/fenbushi
#数据可以访问,因为分布式存储在node1节点和node2节点

#若此时挂起node2节点服务器

ll -h /test/fenbushi
#数据可以访问,但缺少demo5.log文件,这个文件存储在node2节点

#测试完后将node2节点服务器正常运行,测试下面文件

image-20240409173833615

image-20240409174128203

1.2 条带卷
ll -h /test/tiaodai
#无法访问,条带卷不具备冗余性

image-20240409174606672

1.3 复制卷
ll -h /test/fuzhi
#数据可以访问,也没有缺失

image-20240409174738068

1.4 分布式条带卷
ll -h /test/fbs-td
#可以访问,但是没有数据,没有冗余性

image-20240409175030754

1.5 分布式复制卷
ll -h /test/fbs_fz

image-20240409175125710

扩展

gluster volume list 
#查看GlusterFS卷

gluster volume info
#查看所有卷的信息

gluster volume status
#查看所有卷的状态

gluster volume stop 卷名
#停止一个卷

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


##设置卷的访问控制

gluster volume set 卷名 auth.deny 192.168.10.0
#仅拒绝192.168.10.0网段

gluster volume set 卷名 auth.allow 192.168.10.0
#仅允许
#设置192.168.10.0网段的所有IP地址都能访问上述卷名

总结

分布式卷

  • 以文件为单位,通过hash散列,在各个brick中,不具备冗余能力

条带卷

  • 把数据进行分块,以轮询的方式分布在各个brick中,不具备冗余能力

复制卷

  • 把文件进行brick中做镜像存储,具备冗余能力

分布式条带卷

  • 不具备冗余能力,至少需要4个(服务器)brick,brick>=2,条带的2倍

分布式复制卷

  • 具备冗余能力,至少需要4个(服务器)brick,brick>=2,副本数的2倍
Logo

更多推荐