GFS分布式文件系统
1.gfs简介
开源的分布式文件系统
由存储服务器、客户端以及NFS/Samba存储网关组成
无元数据服务器
存储
块存储
文件存储 nfs lvm raid
对象存储 GFS ceph fastdfs oss s3
挂载文件系统如何存放
2.gfs特点
扩展性和高性能(分布式)
高可用性(冗余、容灾能力)
全局统一命名空间(独立的一个空间)
分布式存储中,将所有节点的命名空间整合为统一命名空间,将整个系统的所有节点的存储容量组成一个大的虚拟存储池,供前端主机访问这些节点完成数据读写操作。
弹性卷管理
GlusterFs通过将数据储存在逻辑卷中,逻辑卷从逻辑存储池进行独立逻辑划分而得到。逻辑存储池可以在线进行增加和移除,不会导致业务中断。逻辑卷可以根据需求在线增长和缩减,并可以在多个节点中实现负载均衡。文件系统配置也可以实时在线进行更改并应用,从而可以适应工作负载条件变化或在线性能调优。
基于标准协议
存储服务支持NFS、CIFS、HTTP、FTP、SMB及Gluster原生协议,完全与posix标准(可移植操作系统接口)兼容。
现有应用程序不需要做任何修改就可以对Gluster中的数据进行访问,也可以使用专用API进行访问。
3.gfs术语
brick(存储块)
指可信主机池中由主机提供的用于物理存储的专用分区,是GlusterFS中的基本存储单元,同时也是可信存储池中服务器上对外提供的存储目录。
存储目录的格式由服务器和目录的绝对路径构成,表示方法为 SERVER:EXPORT,如192.168.80.10 : /data/ mydir / 。
volume(逻辑卷)
一个逻辑卷是一组 Brick 的集合。卷是数据存储的逻辑设备,类似于LVM中的逻辑卷。大部分Gluster管理操作是在卷上进行的。
fuse
是一个内核模块,允许用户创建自己的文件系统,无须修改内核代码。
伪文件系统
vfs
内核空间对用户空间提供的访问磁盘的接口。 虚拟端口
glusterd(服务端)
在存储集群中的每个节点上都要运行。
4.gfs工作流程(重点)
首先客户端通过gfs挂载点访问数据;
访问vfs(虚拟接口/api),通过fuse(内核)伪系统,
把数据保存在/dev/fuse(即内存中,是虚拟设备)
poll把数据指向客户端,让客户端来处理(根据配置文件)
客户端把数据交给服务端(远端控制)
服务端把数据放在vfs接口上
然后存储在ext3
读取速度快慢取决于内存中有没有
中间数据还是保存在内存当中
弹性hash算法
通过hash算法得到一个32位的整数
划分为n个连续的子空间,每个空间对应一个brick
弹性hash算法优点
保证数据平均分布在每一个brick中
解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈
5.gfs卷类型
分布式卷
没有对文件进行分块处理
通过扩展文件属性保存hash值
支持的底层文件系统有ext3、ext4、zfs、xfs
分布式卷特点
文件分布在不同服务器,不具备冗余性
更容易和廉价地扩展卷的大小
单点故障会造成数据丢失
依赖底层的数据保护
条带卷(数据不完整,会报错)
根据偏移量将文件分成n块(n个条带节点),轮询存储在每个brick server节点
存储大文件时,性能尤为突出
不具备冗余性,类似raid0
特点
数据被分割成更小块分布到块服务器群中的不同条带区
分布减少了负载且更小的文件加速了存取的速度
没有数据冗余
创建了一个名为Stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中
#gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2
复制卷
同一文件保存一份或多份副本
因为要保存副本,所以磁盘利用率较低
若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为该卷的总容量
特点
卷中所有服务器军保存一个完整的副本
卷的副本数量可由客户创建的时候决定
至少有两个块服务器或更多服务器
具备冗余性
创建复制卷
创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在server1:/dir1和server2:/dir2两个Brick中
#gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
分布式条带卷
兼顾分布式卷和条带卷的功能
主要用于大文件访问处理
至少最少需要4台服务器
分布式复制卷
兼顾分布式和复制卷功能
用于需要冗余的情况
总结
分布式卷 条带卷 复制卷 分布式条带卷
分布式复制卷、条带复制卷和分布式条带复制卷
分布式卷 以文件为单位通过hash散列在一个个brick中,不具备冗余能力
条带卷 把文件数据进行分块,轮询的分布在各个brick中,不具备冗余能力
复制卷 把文集各个brick中的镜像存储,具备冗余能力
分布式条带卷 不具备冗余能力,至少要4个brick,brick数量>=条带数的两倍
分布式复制卷 具备冗余能力,至少要4个brick,brick数量>=副本数的两倍
条带卷 复制卷 分布式条带卷
分布式复制卷、条带复制卷和分布式条带复制卷
[外链图片转存中…(img-ci5vwDET-1690877318179)]
分布式条带卷 不具备冗余能力,至少要4个brick,brick数量>=条带数的两倍
分布式复制卷 具备冗余能力,至少要4个brick,brick数量>=副本数的两倍