GlusterFS分布式文件系统
刘爱贵@TaoCloud
2016-04-15
开源分布式存储
Lustre
MooseFS
HDFS
GlusterFS
FastDFS
Ceph
Swift
TFS
MongoDB
Sheepdog
如何选择分布式存储?
存储类型 推荐 备选 评价维度
Object Swift Ceph 1、首要设计目标?
2、需求满足度?
3、项目成熟度?
4、生产可用?
5、大量实际案例?
6、社区活跃度?
7、运维是否简便?
8、生态和商业环境?
Block Ceph Sheepdog
File GlusterFS MooseFS
HPC Lustre GlusterFS
为什么选择GlusterFS?
• 最简单的分布式文件系统
• POSIX接口,同时支持NFS/CIFS/FTP协议
• 简单可靠,社区活跃,广泛实际应用
• 无中心架构,用户空间设计,模块化扩展
• 支持Infiniband RDMA传输协议
• Block/File/Object统一存储
• 极其简便的管理和维护
GlusterFS是什么?
GlusterFS is a scalable network filesystem. Using
common off-the-shelf hardware, you can create
large, distributed storage solutions for media
streaming, data analysis, and other data- and
bandwidth-intensive tasks. GlusterFS is free and
open source software.
• 分布式文件系统:开源,KISS,用户空间
• 软件定义存储,通用硬件(可立旧)
• scale-out扩展,数百节点,数PB数据
• 适合数据/带宽密集型应用场景
发展简史
GlusterFS –
分布式文件系统,自修复
同步副本,条带,弹性哈希算法
GlusterFS
弹性云能力
GlusterFS
远程复制,监控,Quota
Redhat 亿$收购Gluster
GlusterFS
对象存储,HDFS兼容
主动自修复
细粒度锁
复制优化
GlusterFS
Libgfapi
Quorum 机制
虚拟机存储优化
同步复制优化
POSIX ACL 支持
创始人:Anand Babu Periasamy
目标:代替开源Lustre和商业产品GPFS
GlusterFS = GNU Cluster File System
GlusterFS特点
• 最大特点是简单:架构、使用、管理
• 完全对称式架构,无元数据服务器
• 全UserSpace设计,Stack式扩展 (源自Hurd)
• Scale-out,高可用(无单点故障)
• 支持多种访问协议,支持RDMA
最简单的分布式存储
• 最简单配置和管理的分布式文件系统
• 使用gluster单一命令行工具管理
− probe peer, create volume, start volume, mount
• 极其简便的系统管理
− 集群关系,进程管理,端口映射,动态配置变更
− online集群节点扩展/收缩
− online集群参数变更
− 系统升级
架构特点
软件定义 无中心架构 全局命名空间
高性能 用户空间实现 堆栈式设计
弹性横向扩展 高速网络通信 数据自动修复
系统架构
堆栈式软件架构
服务进程交互
无集中元数据服务
弹性Hash算法
1、使用Davies-Meyer算法计算32
位hash值,输入参数为文件名;
2、根据hash值在集群中选择子卷
(存储服务器),进行文件定位;
3、对所选择的子卷进行数据访问。
file1
hash hash hashhash
GlusterFS volume
brcik1 brick2 brick3 brick4
/data1/file1 file2 /data2/file2 file3 /data3/file3
Brick Hash range
Brick1 00000000 ~ 3FFFFFFF
Brick2 4FFFFFFF ~ 7FFFFFFF
Brick3 8FFFFFFF ~ BFFFFFFF
Brick4 CFFFFFFF ~ FFFFFFFF
卷数据分布
哈希卷
条带卷(RAID0)
复制卷(RAID1)
条带复制复合卷(RAID10)
副本一致性模型
数据强一致性
◦ Chain replication
◦ Direct replication(√)
◦ Master-slave replication
访问接口
典型适用场景
配置参数调优
参数项目 说明 缺省值 合法值
IP访问授权 *(allow all) Ip地址
-free-disk 剩余磁盘空间阈值 10% 百分比
-block-size 条带大小 128KB 字节
-timeout 请求等待时间 1800s 0-1800
-timeout 客户端等待时间 42s 0-42
关闭NFS服务 Off Off|on
-thread-count IO线程数 16 0-65
-refresh-timeout 缓存校验周期 1s 0-61
-size 读缓存大小 32MB 字节
参数设置 gluster volume set <卷> <参数>
更多参数 gluster volume set help
推荐配置
运维要不要GUI?
构建集群NAS
• 协议支持
• NFS/CIFS/FTP
• 集群管理
• CTDB
• 负载均衡
• DNS/F5
• 网络配置
• 内部推荐10GbE/IB
• 授权认证
• LDAP/AD
高可用策略
三种高可用策略
• 多副本
• 纠删码
• SAN+HA
扩展与修复
• 弹性扩展Volume
• Online添加brick
• Rebalance处理
• 不执行均衡
• 旧目录分布不变
• 仅执行fix-layout
• 新旧数据全分布
• 执行migrate-data
• 数据完全均衡
• 修复故障Brick
• 不带数据修复
• Replace-brick
• 简单,数据完全重建
• 修复时间长
• 带数据修复
• 手工恢复brick状态
• 复杂,仅修复差异数据
• 可快速修复
虚拟机/容器存储
• 存储需求
• Image存储
• 共享存储
• Image卷
• 条带卷不好用
• DHT或AFR
• 存储问题
• Image大文件
• 性能问题
• 数据不均衡
• 迁移问题
小文件存储
• LOSF问题
• 元数据管理机制
• OPS能力差
• 网络传输效率
• 本地存储效率
• 缓解方法
• 硬件优化(磁盘/CPU/内存/网络)
• 应用优化(缩减OPS和小I/O)
• 控制节点规模
• 规划目录结构
性能误区
• 可能的原因
• 网络配置
• Brick配置
• 卷类型
• 测试方法
• 测试工具
社区最新动态
•
• 纠删码卷类型
• SSD Cache/Tier
• 小文件性能优化
• NFS/CIFS协议支持
• Throttling 流控
• 开发计划
• GlusterD
• 弹性DHT
• 新型副本机制
• Stripe
GlusterFS未来发展
Ceph一统天下???
Lustre继续独占鳌头HPC
MooseFS前途堪忧
GlusterFS前途光明(道路曲折?)
◦ 大道至简,Keep It as Simple and Stupid
◦文件存储,云存储,海量小文件
◦ 弹性,扩展性,灵活性
◦ RAS-P特征
THANK YOU