glusterFS分布式存储系统
1. glusterfs系统原理
1. glusterfs是什么
分布式⽂件系统
⽆中⼼架构(⽆元数据服务器)
scale-out横向扩展(容量,性能)
集群式NAS存储系统
采⽤异构的标准商业硬件
资源池
全局统⼀命名空间
sues 复制和⾃动修复
易于部署和使⽤
2. glusterFS基本原理
1. 弹性hash算法
1. 使⽤Davies-Meyer算法计算32位hash值,输⼊参数为⽂件名
2. 根据hash值在集群中选择⼦卷,进⾏⽂件定位
3. 对选择的⼦卷进⾏数据访问
3. glusterFS卷类型
1. 基本卷
1. 哈希卷
⽂件通过hash算法在所有brick上分布
⽂件级RAID 0,不具有容错能⼒
2. 复制卷
⽂件同步复制到多个brick上
⽂件级RAID1,具有容错能⼒
写性能下降,读性能提升
3. 条带卷
单个⽂件分布到多个brick上,⽀持超⼤⽂件
类似RAID 0,以Round-Robin⽅式
2. 复合卷
1. 哈希复制卷
哈希卷和复制卷的复合⽅式
同时具有哈希卷和复制卷的特点
2. 哈希条带卷
3. 复制条带卷
4. 哈希复制条带卷
三种基本卷的复合卷
通常⽤于类map reduce应⽤
4. glusterFS访问接⼝
⽀持⽂件存储,块存储,对象存储 5. glusterFS数据修复及添加节点原理
数据修复
1. 发展历程
第⼀代: 按需同步进⾏
第⼆代: 完全⼈⼯扫描
第三代: 并发⾃动修复(3.3)
第四代: 基于⽇志
2. 触发时机: 访问⽂件⽬录时
3. 判断依据: 扩展属性
添加节点
1. 添加新节点,最⼩化数据重新分配
2. ⽼数据分布模式不变,新数据分布到所有节点上
3. 执⾏rebalance,数据重新分布
容量负载优先
1. 设置容量阈值,优先选择可⽤容量充⾜brick
2. hash⽬标brick上创建⽂件符号链接
3. 访问时解析重定向
2. 主流分布式存储系统对⽐
MooFS(MFS)Ceph GlusterFS
Lustre
Metadata rver
单个MDS。存在单
点故障和瓶颈。
多个
MDS,不存在单点故障和
瓶颈。MDS可以扩展,不
存在瓶颈。
agull是什么意思
⽆,不存在单
点故障。靠运⾏在各个节点上的动态算法来代替MDS,
不需同步元数据,⽆硬盘I/O瓶颈。
双MDS(互相备
份)。MDS不可以扩展,存在
瓶颈。
儿童英语培训机构FUSE⽀持⽀持⽀持
⽀持
访问接⼝POSIX POSIX
POSIX
POSIX/MPI
⽂件分布/数据分布
⽂件被分⽚,数据块
保存在不同的存储服务器上。
packageinstaller
⽂件被分
⽚,每个数据块是⼀个对
象。对象保存在不同的存
储服务器上。
窘态Cluster
Translators(GlusterFS集群存储的核⼼)包括AFR、
DHT(和Stripe三种类型。
AFR相当于
RAID1,每个⽂件都被复制到多个存储节点上。Stripe
相当于RAID0,⽂件被分⽚,数据被条带化到各个存储
节点上。
Translators可
以组合,即AFR和stripe可以组成RAID10,实现⾼性能
和⾼可⽤。
可以把⼤⽂件分⽚
并以类似RAID0的⽅式分散存
储在多个存储节点上。
冗余保
护/副本多副本多副本镜像
⽆
数据可靠性
extension
由数据的多副本提供
可靠性。
由数据的
多副本提供可靠性。
由镜像提供可
靠性。
由存储节点上的
RAID1或RAID5/6提供可靠
性。假如存储节点失效,则数
据不可⽤。
备份
提供备份⼯具。⽀持远程备份。
故障恢复⼿动恢复
当节点失
效时,⾃动迁移数据、重
新复制副本。
当节点、硬
件、磁盘、⽹络发⽣故障时,系统会⾃动处理这些故
障,管理员不需介⼊。
⽆
扩展性
增加存储服务器,可aura
以提⾼容量和⽂件操作性能。
但是由于不能增加MDS,因此
元数据操作性能不能提⾼,是
整个系统的瓶颈。
可以增加
元数据服务器和存储节
点。容量可扩展。⽂件操
作性能可扩展。元数据操
作性能可扩展。
容量可扩
展。
可增加存储节点,
提⾼容量可⽂件操作性能,但
是由于不能增加MDS,因此元
数据操作性能不能提⾼,是整
个系统的瓶颈。
安装/部署简单简单
简单复杂。⽽且Lustre严
重依赖内核,需要重新编译内
核。
开发语⾔Cherbivore
C++
C
C
适合场景⼤量⼩⽂件读写⼩⽂件
适合⼤⽂
件。
对于⼩⽂件,
luye
⽆元数据服务设计解决了元数据的问题。但GlusterFS
并没有在I/O⽅⾯作优化,在存储服务器底层⽂件系统
上仍然是⼤量⼩⽂件,本地⽂件系统元数据访问是瓶
颈,数据分布和并⾏性也⽆法充分发挥作⽤。因
filly
此,GlusterFS的⼩⽂件性能还存在很⼤优化空间。
⼤⽂件读写
产品级别⼩型中型
中型
重型
应⽤国内较多⽆
较多⽤户使
⽤
HPC领域。
优缺点实施简单,但是存在单点故障。
不稳定,
⽬前还在实验阶段,不适
合于⽣产环境。
⽆元数据服务
器,堆栈式架构(基本功能模块可以进⾏堆栈式组合,
实现强⼤功能)。具有线性横向扩展能⼒。
由于没有元数
据服务器,因此增加了客户端的负载,占⽤相当的
CPU和内存。
但遍历⽂件⽬
录时,则实现较为复杂和低效,需要搜索所有的存储节
点。因此不建议使⽤较深的路径。
很成熟、很庞⼤。
3. glusterFS应⽤场景
⾮结构数据存储
归档,容灾
虚拟机存储
云存储
内容云
⼤数据
结构化和半结构化数据
4. glusterFS测试⼯具与⽅法
1. 分布式⽂件系统测试
功能性测试
⼴义功能性测试/狭义功能性测试
该分布式⽂件系统特有的功能性测试
⼿动测试或者脚本
glusterfs: 创建/启动/停⽌/删除卷操作,设置某些操作 ⽂件系统的功能性测试
⽂件控制与操作:fstest
系统API调⽤:LTP
锁应⽤:locktest
数据⼀致性测试
测试存⼊与读出的数据是否⼀致
测试⽅法:
MD5加密
Diff
编译内核等
POSIX语义兼容性测试
PCTS
LTP
部署⽅式测试
测试不同场景下的系统部署⽅式
⾃动安装配置
集群规模
⽹络,存储配置
可⽤性测试
测试系统的⾼可⽤性
集群中某些服务器或者磁盘,⽹络等错误情况下系统是否可⽤,管理是否简单可靠
覆盖功能点:副本,⾃修复以及管理服务
扩展性测试
测试系统的弹性扩展功能
扩展系统后的性能影响
线性扩展能⼒
稳定性测试
验证系统在长时间运⾏下,系统是否能正常运⾏
压⼒测试
验证在⼤压⼒下,系统运⾏以及资源消耗情况
性能测试
系统在不同负载情况下的性能
性能关键点
顺序读写
随机读写
⽬录操作:创建,删除,查找,更新
⼤量⼩⽂件读写
⼤⽂件读写
性能指标
IOPS:随机⼩⽂件I/O读写能⼒
带宽:⼤⽂件连续读写能⼒
CPU利⽤率
iowait
性能测试⼯具
DD
⼤⽂件,顺序都写,带宽
单进程,临时⽂件
⼿动记录结果(⽆法重定向)
使⽤⽅法:
写:dd if=/dev/zero of=/mnt/mountpoint/file bs=1M count=1k
读:dd if=/mnt/mountpoint/file of=/dev/null bs=1M Iozone 带宽测试
顺序/随机读写带宽
多进程,临时⽂件可选留存
可⾃动⽣成excel表格的结果值
Postmark
FIO 磁盘测试
5. glusterFS安装与使⽤
1. 环境与准备
四个glusterFS-node,两个glusterclient