1、Ceph存储引擎发展
Ceph提供存储功能的核心组件是RADOS集群,其本质是一个提供了大量接口的分布式对象存储集群,最终都是以对象存储的形式对外提供服务。但在底层的内部实现中,Ceph的后端存储引擎在近十年来经历了许多变化。现如今的Ceph系统中仍然提供的后端存储引擎有FileStore、NewStore和BlueStore。但该三种存储引擎都是近年来才提出并设计实现的。
Ceph存储引擎最初的实现为 EBOFS(Extent and B-Tree-based Object File System),其本质也为文件系统,只是在文件系统的基础上做了扩展,主要核心逻辑使用B-Tree来实现,但EBOFS缺少了很多生产环境中的必须的实用性功能,如事务和校验和等,2008年出现并引入了Btrfs之后就摒弃了EOBFS。
Btrfs作为Ceph的后端存储系统经历了长时间的开发,提供了EBOFS不能提供的事务、校验、数据去重等功能,但投入使用很长一段时间后发现Btrfs的碎片化现象比较严重,所以又开始了对新的文件系统存储后端的探索。
在FileStore的存储后端中,一个对象的集合对应一个目录,对象数据保存在文件中。一开始,对象的属性保存在POSIX的扩展文件属性中,但很快,由于文件存储的扩展属性数量和长度限制,Ceph将对象属性转移到LevelDB这类事务性数据库中。基于BtrFS的FileStore成为业界主流并持续了数年,暴露了一些问题。比

Ceph存储引擎从最初的EBOFS到现在的BlueStore经历了多次演变。FileStore依赖文件系统,如XFS,存在性能和元数据管理问题。NewStore尝试用键值存储优化元数据,但未能广泛应用。BlueStore直接管理裸设备,使用RocksDB存储元数据,消除双写问题,提升性能,成为当前主流存储引擎。
订阅专栏 解锁全文

117

被折叠的 条评论
为什么被折叠?



