数据强一致和高性能,分布式系统FastCFS如何做到的?
如果无法正常显示,请先停止浏览器的去广告插件。
1.
2. 高性能分布式文件系统FastCFS
— 可以跑数据库的文件系统
余庆
2021-05-10
3. 个人简介
• 余庆是分布式文件系统 FastDFS 作者
• 曾任职于新浪、雅虎中国和阿里巴巴
• 目前正在进行下一代分布式文件系统 FastCFS 的研发和推
广工作
4. FastCFS和FastDFS是什么关系?
•FastDFS:对象存储系统
•FastCFS:通用文件系统
5. 数据库后端存储之关键指标
•高可靠
•高性能
•高可用
6. 分布式文件系统FastCFS简介
• 基于块存储的通用分布式文件系统
• 可以作为数据库、K8s和KVM等虚拟机的后端存储
• 2020年12月份推出V1.0,2021年4月份推出V2.0
• C语言原生实现,代码行数约12万行
7. FastCFS核心组件简介
• FastDIR:分布式目录服务
• FastStore:数据存储服务
• Auth:认证中心
• FUSE Client:文件系统挂载
8. FastCFS核心组件关系图
9. FastStore架构图
10. FastCFS架构特点
• 数据存储无中心设计
• 分组方式
Ø 服务器分组
Ø 数据分组
11. FastCFS如何做到数据一致性
• 一写多读模型
• 通过binlog实现元数据持久化
• 远程调用幂等机制保证
FastCFS采用简单高效的同步复制模式,保证数据强一致
12. FastCFS数据同步复制做法
•维持精准的集群状态,ACTIVE方可提供在线
服务
•slave为ACTIVE状态,master同步调用slave
•slave掉线后,只有历史数据追加完成后,方
可切换为ACTIVE状态
13. binlog机制
•数据版本号
•对账机制
ü 多个副本binlog对账机制
ü 单机两套binlog事务保证
•落盘时机
14. FastCFS与Ceph性能对比测试—单节点
15. FastCFS与Ceph性能对比测试—3节点
16. FastCFS和Ceph机制差异
• 数据存储方式
Ø FastCFS:EXT4
Ø Ceph:裸设备
• 文件挂载方式
Ø FastCFS:FUSE
Ø Ceph:VFS
17. FastCFS如何做到高性能
•架构
•实现
FastCFS软件本身不会成为性能瓶颈!
18. 简单高效的架构方案
• 文件分块存储,采用无中心架构
• 比RAFT更简单高效的数据复制方案
• 顺序写盘方式,确保高效的写入性能,解决了写放
大问题
19. 简洁高效的原生实现
• 异步IO模型
• 简洁高效的代码实现,不依赖第三方组件:简单高
效的数据结构、无锁编程、线程模型、对象池、连
接池、线程池、智能指针。。。
20. FastCFS极致性能TODO
• 支持裸设备
• 采用io_uring,优化本机IO
• 支持RDMA,优化网络IO
• VFS接口
• 碎片整理
• 分级存储
21. 请你思考
FastCFS是如何保证数据一致性前提下做到极高性能的?
请用一个关键字概括。
22. FastCFS微信公众号
23.