GlusterFS(GFS)分布式文件系统理论篇

前言

一:GlusterFS(GFS)理论

1.1:什么是GlusterFS?

Gluster File System,开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够灵活的结合物理的,虚拟的和云资源去体现高可用和企业级的性能存储
由存储服务器(Brick Server)、客户端以及NFS/Samba 存储网关组成
无元数据服务器
GlusterFS特点
扩展性和高性能
高可用性
全局统一命名空间
弹性卷管理
基于标准协议
在这里插入图片描述

常用术语

Brick:GFS中的存储单元,通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识,如’SERVER:EXPORT’
Volume:卷
FUSE:内核文件系统,Filesystem Userspace是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。通过在用户空间运行文件系统的代码通过FUSE代码与内核进行桥接。
VFS:虚拟文件系统
Glusterd:Gluster management daemon,要在trusted storage pool中所有的服务器上运行。
GFS的结构
模块化堆栈式架构
模块化、堆栈式的架构
通过对模块的组合,实现复杂的功能
在这里插入图片描述

弹性HASH算法

通过HASH算法得到一个32位的整数
划分为N个连续的子空间,每个空间对应一个Brick
弹性HASH算法的优点
保证数据平均分布在每一个Brick中
解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈
在这里插入图片描述
在这里插入图片描述

1.2:GlusterFS工作原理是什么?

1、客户端或应用程序通过GlusterFS的挂载点访问数据
2、linux系统内核通过VFS API收到请求并处理
3、VFS将数据递交给FUSE内核文件系统, fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端
4、GlusterFS client 收到数据后,client根据配置文件的配置对数据进行处理
5、通过网络将数据传递至远端的GlusterFS Server,并且将数据写入到服务器存储设备上
在这里插入图片描述

1.3:GlusterFS的卷类型有哪些?

分布式卷
条带卷
复制卷
分布式条带卷
分布式复制卷
条带复制卷
分布式条带复制卷
分布式卷
没有对文件进行分块处理

通过扩展文件属性保存HASH值

支持的底层文件系统有ext3、ext4、ZFS、XFS等

分布式卷特点

文件分布在不同的服务器,不具备冗余性
更容易和廉价地扩展卷的大小
单点故障会造成数据丢失
依赖底层的数据保护
创建命令

gluster volume create dis-volume server1:/dir1 server2:/dir2

条带卷

根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点

存储大文件时,性能尤为突出

不具备冗余性,类似Raid0

在这里插入图片描述
特点

数据被分割成更小块分布到块服务器群中的不同条带区
分布减少了负载且更小的文件加速了存取的速度
没有数据冗余
创建命令

gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2

复制卷

同一文件保存一份或多分副本

复制模式因为要保存副本,所以磁盘利用率较低

多个节点上的存储空间不一致,那么将按照木桶效应取最低节点的容量作为该卷的总容量
在这里插入图片描述
特点

卷中所有的服务器均保存一个完整的副本
卷的副本数量可由客户创建的时候决定
至少由两个块服务器或更多服务器
具备冗余性
创建命令

gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2

分布式条带卷

兼顾分布式卷和条带卷的功能

主要用于大文件访问处理

至少最少需要 4 台服务器

创建命令

gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
在这里插入图片描述

分布式复制卷

兼顾分布式卷和复制卷的功能

用于需要冗余的情况下

创建命令

gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
在这里插入图片描述

二 ,分布式文件系统理论基础

1.1 分布式文件系统出现

计算机通过文件系统管理,存储数据,而现在数据信息爆炸的时代中人们可以获取的数据成指数倍的增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储容量的方式,已经不能满足目前的需求。

分布式文件系统可以有效解决数据的存储和管理难题,将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上,或者是从哪个节点从获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。

1.2 典型代表NFS

NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS的优点如下:

1.2 典型代表NFS
NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS的优点如下:

(1)节约使用的磁盘空间
客户端经常使用的数据可以集中存放在一台机器上,并使用NFS发布,那么网络内部所有计算机可以通过网络访问,不必单独存储。

(2)节约硬件资源
NFS还可以共享软驱,CDROM和ZIP等的存储设备,减少整个网络上的可移动设备的数量。

(3)用户主目录设定
对于特殊用户,如管理员等,为了管理的需要,可能会经常登陆到网络中所有的计算机,若每个客户端,均保存这个用户的主目录很繁琐,而且不能保证数据的一致性。实际上,经过NFS服务的设定,然后在客户端指定这个用户的主目录位置,并自动挂载,就可以在任何计算机上使用用户主目录的文件。

1.3 面临的问题

存储空间不足,需要更大容量的存储
直接用NFS挂载存储,有一定风险,存在单点故障
某些场景不能满足需求,大量的访问磁盘IO是瓶颈

1.4 常见术语

在这里插入图片描述

1.5 GlusterFS 应用场景

(1.)非结构数据存储
(2.)归档、容灾
(3.)虚拟机存储
(4.)云存储
(5.)内容云、大数据
(6.)结构化和半结构化数据

理论和实践上分析,GlusterFS目前主要适用大文件存储场景,对于小文件尤其是海量小文件(小于1M),存储效率和访问性能都表现不佳。海量小文件LOSF问题是工业界和学术界公认的难题,GlusterFS作为通用的分布式文件系统,并没有对小文件作额外的优化措施(小于1M),性能不好也是可以理解的。

Media
文档,图片,音频,视频

Shared storage
云存储,虚拟化存储,HPC(高性能计算)

Big data
日志文件,RFID(射频识别)数据

三、GlusterFS卷类型

为了满足不同应用对高性能、高可用的需求,GlusterFS 支持 7 种卷,即 distribute 卷、stripe 卷、replica 卷、distribute stripe 卷、distribute replica 卷、stripe Replica 卷、distribute stripe replica 卷。其实不难看出,GlusterFS 卷类型实际上可以分为 3 种基本卷和 4 种复合卷,每种类型的卷都有其自身的特点和适用场景。

基本卷:

3.1distribute volume 分布式卷

基于 Hash 算法将文件分布到所有 brick server,只是扩大了磁盘空间,不具备容错能力。由于distribute volume 使用本地文件系统,因此存取效率并没有提高,相反会因为网络通信的原因使用效率有所降低,另外本地存储设备的容量有限制,因此支持超大型文件会有一定难度。

3.2 stripe volume 条带卷

类似 RAID0,文件分成数据块以 Round Robin 方式分布到 brick server 上,并发粒度是数据块,支持超大文件,大文件的读写性能高。

3.3 replica volume 复制卷

文件同步复制到多个 brick 上,文件级 RAID1,具有容错能力,写性能下降,读性能提升。Replicated 模式,也称作 AFR(Auto File Replication),相当于 RAID1,即同一文件在多个镜像存储节点上保存多份,每个 replicated 子节点有着相同的目录结构和文件,replica volume 也是在容器存储中较为推崇的一种。

3.4 distribute stripe volume 分布式条带卷

Brick server 数量是条带数的倍数,兼具 distribute 和 stripe 卷的特点。分布式的条带卷,volume 中 brick 所包含的存储服务器数必须是 stripe 的倍数(>=2倍),兼顾分布式和条带式的功能。每个文件分布在四台共享服务器上,通常用于大文件访问处理,最少需要 4 台服务器才能创建分布条带卷。

3.5 distribute replica volume 分布式复制卷

Brick server 数量是镜像数的倍数,兼具 distribute 和 replica 卷的特点,可以在 2 个或多个节点之间复制数据。分布式的复制卷,volume 中 brick 所包含的存储服务器数必须是 replica 的倍数(>=2倍),兼顾分布式和复制式的功能。

3.6 stripe replica volume 条带复制卷

类似 RAID 10,同时具有条带卷和复制卷的特点

3.7 distribute stripe replica volume:分布式条带复制卷

三种基本卷的复合卷,通常用于类 Map Reduce 应用。

四、GlusterFS 常用命令

GlusterFS 客户端提供了非常丰富的命令用来操作节点、卷,表2给出了常用的一些命令。在与容器对接过程中,通过我们需要创建卷、删除卷,以及设定卷的配额等功能,并且后续这些功能也需要 REST API 化,方便通过HTTP请求的方式来操作卷。

4.1 GlusterFS 客户端常用命令

gluster peer probe /// 添加节点
gluster peer detach /// 移除节点
gluster volume create /// 创建卷
gluster volume start /// 启动卷
gluster volume stop /// 停止卷
gluster volume delete /// 删除卷
gluster volume quota enable /// 开启卷配额
gluster volume quota enable /// 关闭卷配额
gluster volume quota limit-usage /// 设定卷配额
gluster --version ///查看版本
命令尾部加 force 强制执行

猜你喜欢

转载自blog.csdn.net/BIGmustang/article/details/108573000
今日推荐