GlusterFS分布式文件系统

GlusterFS分布式系统文件

GlusterFS特点

  1. 扩展性和高性能:采用Scale-Out架构,通过增加存储节点来提高存储容量和性能。同时,弹性哈希算法解决了对元数据服务器的依赖,实现了并行化数据访问。
  2. 高可用性:支持文件自动复制,如镜像或多次复制,以确保数据总是可访问。此外,具备自我修复功能,能将数据恢复到正确状态。
  3. 全局统一命名空间:整合所有节点的命名空间为统一命名空间,形成一个大的虚拟存储池供前端主机访问。
  4. 弹性卷管理:支持在线增加和移除逻辑卷,逻辑卷可在线增长和缩减,适应工作负载变化。
  5. 基于标准协议:支持NFS、CIFS、HTTP等标准协议,完全兼容POSIX标准,现有应用程序无需修改即可访问。
  6. 模块化堆栈式架构:通过模块的组合实现复杂功能,如Replicate模块实现RAID1,Stripe模块实现RAID0等。
  7. 卷类型丰富:支持分布式卷、条带卷、复制卷等七种卷,可以根据需求选择合适的卷类型。
  8. 无元数据服务器:通过弹性哈希算法实现元数据的管理,避免了单点故障问题。

GlusterFS基本术语

**存储块(brick)😗*存储用户数据的服务器节点
**逻辑卷:**类似与lvm逻辑卷
**FUSE:**虚拟端口,一个伪文件系统,类似与etx4
**VFS:**内核空间的接口

GlusterFS工作原理

在这里插入图片描述

GlusterFS的工作原理是通过VFS接收程序应用的请求,然后传递给FUSE,FUSE再转发给GlusterFS客户端。GlusterFS客户端根据卷配置将请求转换为对后端GlusterFS服务器的请求,GlusterFS服务器处理请求并返回结果给GlusterFS客户端,GlusterFS客户端将结果聚合后返回给FUSE,FUSE再返回给VFS,最后VFS将结果返回给程序应用。这个流程实现了用户空间的客户端和服务器之间的分布式存储,同时保持了与内核空间VFS的兼容性。

无元数据存储服务器

GluterFS是一种无元数据的分布式存储服务器,实现无元数据的方式是GluterFS使用了弹性HASH算法,客户端请求访问文件时,GlusterFS 会使用文件名和其他信息通过哈希算法计算出一个哈希值,然后根据这个哈希值决定文件应该存储在哪个 brick 上。这种设计允许 GlusterFS 在不依赖中心化的元数据服务器的情况下,实现数据的分布式存储和访问。

GlusterFS的卷类型

GlusterFS类型包括了分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷、条带式复制卷、分布式条带复制卷。

分布式卷:分布式卷,通过HASH刷法分布到所有的存储块服务器上,分布式卷是GlusterFS的默认卷,它有成本底的优点,但是没有容错能力,当集群中损毁一个brick服务器就会导致部分数据丢失。在该模式下文件直接存储在某个brick服务器上,由于直接使用本地文件系统进行文件存储,所以存取效率并没有提高,反而会因为网络通信的原因而有所降低

条带卷:条带卷是一种卷配置,它通过在多个 bricks 之间分配文件的块来提高性能。条带化可以在多个 bricks 上并行写入和读取数据,从而增加了吞吐量,尤其是在处理大型文件时。条带卷不具备冗余性,只能提高性能,当任何一个 brick 失效,整个卷的数据可能会受到影响

复制卷:复制卷是一种提供数据冗余的卷配置。在复制卷中,每个文件都会在多个 bricks 上保存副本,这样即使某个 brick 失效,数据仍然可以从其他 brick 上获取。复制卷通过数据复制来提高数据的可用性和可靠性。

分布式条带卷: 它结合了分布式卷和条带卷的特点。这种卷类型通过在多个服务器上的多个 bricks 之间分布数据和条带化数据来提供高性能和可伸缩的存储解决方案。

分布式复制卷: 它结合了分布式卷和复制卷的特点。这种卷类型通过在多个服务器上的多个 bricks 之间分布数据和复制数据来提供高可用性和可伸缩的存储解决方案。

条带式复制卷: 它结合了条带卷和复制卷的特点。这种卷类型通过在多个服务器上的多个 bricks 之间分布数据和复制数据来提供高性能和高可用性的存储解决方案。

分布式条带复制卷: 三者结合

GlusterFS的部署

GlusterFS服务器
192.168.20.10
192.168.20.20
192.168.20.30
192.168.20.40
客户端
192.168.20.50


1.给GlusterFS服务端服务器添加硬盘,我一个服务器添加了4块硬盘,每块硬盘大小为8G

在这里插入图片描述

2.给硬盘分区

fdisk  /dev/sdb
n
p
w
mkfs.xfs 
mkdir -p  /mount/{sdb,sdc,sdd,sde}
mount -a

将四块硬盘全部分区
在这里插入图片描述

永久挂载
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3设置yum 安装本地源

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

cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bak

vim glfs.repo

编辑创建yum源文件

[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1

在这里插入图片描述

yum clean all && yum makecache

在这里插入图片描述

用yum安装GlusterFS

yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

在这里插入图片描述

GlusterFS 卷的创建

只需要在192.168.20.10机器上操作
将所有服务器添加到存储信任池中

gluster peer probe 192.168.20.20
gluster peer probe 192.168.20.30
gluster peer probe 192.168.20.40

查看每个节点的状态

gluster peer status

在这里插入图片描述

创建分布式卷: 创建分布式卷

gluster volume create dis-volume 192.168.20.10:/mount/sdb 192.168.20.20:/mount/sdb force

在这里插入图片描述
启动分布式卷和查看分布式卷信息

gluster volume start dis-volume
gluster volume info dis-volume

在这里插入图片描述

测试
在客户端上挂载

mount.glusterfs 192.168.20.10:dis-volume /test/dis

创建测试文件

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

测试

cp /opt/demo* /test/dis

在这里插入图片描述
192.168.20.10里有demo1.log,demo2.log,demo3.log,demo4.log

192.168.20.20里有demo5.log
在这里插入图片描述

创建创建条带卷

gluster volume create stripe-volume stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
  1. gluster volume create:这个命令用于创建一个新的 GlusterFS 卷。
  2. stripe-volume:这是新卷的名称。
  3. stripe 2:这告诉 GlusterFS 创建一个分布式条带卷,其中每个文件将被分成 2 个块,这些块将分布在所有指定的 bricks 上。
  4. 192.168.20.10:/mount/sdc192.168.20.20:/mount/sdc:这些是组成新卷的 bricks,每个 brick 都包含一个服务器地址(192.168.20.10192.168.20.20)和一个存储路径(/mount/sdc)。
  5. force:这个选项用于强制创建卷,即使某些检查没有通过也会继续执行。
    这个命令的作用是在两个服务器上创建一个分布式条带卷,每个文件将被分成两个块,并分布在两个服务器上的两个路径上。这种设计可以提供更高的性能和冗余性,因为数据可以在多个服务器上并行传输和冗余存储。
gluster volume start stripe-volume
gluster volume info stripe-volume

在这里插入图片描述
测试
在客户端上挂载

mount -t glusterfs 192.168.20.10:stripe-volume /test/stripe/
cp /opt/demo* /test/stripe/

可以看到测试文件,两个服务器都有,而且大小是原来的一半
在这里插入图片描述
在这里插入图片描述

创建复制

gluster volume create rep-volume replica 2 192.168.20.30:/mount/sdb 192.168.20.40:/mount/sdb force
  1. gluster volume create:这个命令用于创建一个新的 GlusterFS 卷。
  2. rep-volume:这是新卷的名称。
  3. replica 2:这告诉 GlusterFS 创建一个复制卷,其中每个文件将被复制到两个服务器上的两个路径上。
  4. 192.168.20.30:/mount/sdb192.168.20.40:/mount/sdb:这些是组成新卷的 bricks,每个 brick 都包含一个服务器地址和一个存储路径。
  5. force:这个选项用于强制创建卷,即使某些检查没有通过也会继续执行。
gluster volume start rep-volume
gluster volume info rep-volume

在这里插入图片描述
测试

mount -t glusterfs 192.168.20.10:rep-volume /test/rep
cp /opt/demo* /test/rep/

在这里插入图片描述
在这里插入图片描述

创建分布式条带卷

gluster volume create dis-stripe stripe 2 192.168.20.10:/mount/sdd 192.168.20.10:/mount/sdd 192.168.20.30:/mount/sdd 192.168.20.40:/mount/sdd force

这个命令是用来在 GlusterFS 中创建一个名为 dis-stripe 的分布式条带卷。命令的各个部分如下:

  1. gluster volume create:这个命令用于创建一个新的 GlusterFS 卷。
  2. dis-stripe:这是新卷的名称。
  3. stripe 2:这告诉 GlusterFS 创建一个分布式条带卷,其中每个文件将被分成 2 个块,这些块将分布在所有指定的 bricks 上。
  4. 192.168.20.10:/mount/sdd192.168.20.20:/mount/sdd192.168.20.30:/mount/sdd192.168.20.40:/mount/sdd:这些是组成新卷的 bricks,每个 brick 都包含一个服务器地址和一个存储路径。
  5. force:这个选项用于强制创建卷,即使某些检查没有通过也会继续执行。
gluster volume start dis-stripe
gluster volume info dis-stripe

在这里插入图片描述
测试

mount.glusterfs 192.168.20.10:dis-stripe /test/dis_stripe
cp /opt/demo* /test/dis_stripe/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
10;20有1234的数据20;30有5的数据

创建分布式复制卷

gluster volume create dis-rep replica 2 192.168.20.10:/mount/sde 192.168.20.10:/mount/sde 192.168.20.10:/mount/sde 192.168.20.10:/mount/sde 
  1. gluster volume create:这个命令用于创建一个新的 GlusterFS 卷。
  2. dis-rep:这是新卷的名称。
  3. replica 2:这告诉 GlusterFS 创建一个复制卷,其中每个文件将被复制到两个服务器上的两个路径上。
  4. 192.168.20.10:/mount/sde192.168.20.20:/mount/sde192.168.20.30:/mount/sde192.168.20.40:/mount/sde:这些是组成新卷的 bricks,每个 brick 都包含一个服务器地址和一个存储路径。
  5. force:这个选项用于强制创建卷,即使某些检查没有通过也会继续执行。
gluster volume start dis-rep
gluster volume info dis-rep	

测试
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值