GFS分布式文件系统集群(理论篇)
GlusterFS概述
GlusterFS简介
- 开源的分布式文件系统
- 由存储服务器,客户端以及NFS/Samba存储网关组成
- 无元数据服务器
GlusterFS的特点
- 扩展性和高性能
- 高可用性
- 全局统一的命名空间
- 弹性卷管理
- 基于标准协议
GlusterFS术语
- Brick : 存储节点
- Volume : 卷
- FUSE : 内核模块,用户端的交互模块
- VFS : 虚拟端口
- Glusterd : 服务
模块化堆栈架构
- 模块化、堆栈式的架构
- 通过对模块的组合,实现负责的功能
GlusterFS工作模式
GlusterFS工作流程
- Application:客户端或应用程序通过GlusterFSync的挂载点访问数据
- VFS:linux系统内核通过VFS API收到请求并处理
- FUSE : VFS 将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端
- GlusterFS Client ; 通过网络将数据传递至远端的GlusterFS Server,并且写入到服务器存储设备上
弹性HASH算法
- 通过HASH算法得到一个32位的整数
- 划分为N个连续的子空间,每个空间对应一个Brick
- 弹性HASH算法的优点
- 保证数据平均分布在每一个Brink中
- 解决了对元数据服务器的依懒,进而解决了单点故障以及访问瓶颈
GlusterFS的卷类型
分布式卷
- 没有对文件进行分块处理
- 通过扩展文件属性保存HASH值
- 支持底层文件系统有ext3、ext4、ZFS、XFS等
分布式卷的特点
- 文件分布在不同的服务器。不具备冗余性
- 更容易和廉价地扩展卷的大小
- 单点故障会造成数据丢失
- 依懒底层的数据保护
创建分布式卷
- 创建一个名为dis-volume的分布式卷,文件将根据HASH分布在server1:/dir1、server2:/dir2和server3:/dir3中
gluster volume create dis-volume server1:/dir1 server2:/dir2
条带卷
- 根据偏移量将文件分为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的复制卷、文件将同时存储两个副本
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
分布式条带卷
- 兼顾分布式卷和条带卷的功能
- 主要用于大文件访问处理
- 至少最少需要4台服务器
创建分布式条带卷
- 创建一个名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brink所包含 的存储服务器数必须是条带数的倍数(>=2倍)
gluster volume create rep-volume stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir1 server4:/dir2
分布式复制卷
- 兼顾分布式卷和复制卷的功能
- 用于需要冗余的情况下
创建分布式复制卷
- 创建一个名为dis-rep的分布式条带卷,配置分布式条带卷的复制卷时,卷中Brink所包含的存储服务器必须是条带数的倍数(>=2倍)
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir1 server4:/dir2
相关推荐
joynet00 2020-06-21
isHooky 2020-05-05
YZR 2020-04-14
Cheetahcubs 2020-02-23
zhangll00 2020-02-12
亦碎流年 2019-12-29
Cheetahcubs 2020-01-07
Cheetahcubs 2019-12-27
憧憬 2019-12-20
Cheetahcubs 2019-12-23
middleware0 2019-12-21
亦碎流年 2019-12-05
weiyawen 2019-11-13
lovejk 2019-11-10
harryptter 2019-10-29
刘振锋 2011-03-16
hweiyi 2014-11-21