该论文发表在2019年的SOSP会议中,描述了Ceph的新存储后端——BlueStore。
研究背景
分布式存储后端基础
什么是存储后端?存储后端是指管理物理机器中磁盘空间的软件模块。
分布式文件系统对存储后端的两个共同要求:
- 高效的事务机制
- 快速的元数据操作
- (新的要求)对新型存储硬件的支持
Ceph存储后端的演化
EBOFS(Extent and B-Tree-based Object File System)参看Ceph OSDI’06和Ph.D. Thesis’07
FileStore
对象集合被映射成目录,对象数据存储在文件中。对象属性一开始存放在POSIX文件扩展属性xattrs中,当
超过xttars的大小和数量限制后,将被转移到LevelDB中。
1.虽然Btrfs提供了事务机制、数据去重、校验和以及透明压缩,但是它存在着严重的数据和元数据碎片化问题。
2.虽然XFS的扩展性很好,拥有更块的元数据性能,但是它也存在着了元数据碎片化问题,不能充分发挥硬件的性能;由于XFS缺乏对事务的支持,Ceph不得不使用用户态的预写日志(Write-Ahead Log,WAL)机制,这限制了Ceph的性能。此外,由于XFS不是COW文件系统,快照机制重度使用克隆操作,导致了较大的性能开销。
NewStore
为了解决基于文件系统的存储后端中存在的元数据问题,NewStore将对象元数据存放在RocksDB中,对象数据存放在文件中。此外,它还使用RocksDB来实现WAL。
用文件来存储对象数据,在日志文件系统(XFS)上运行RocksDB,带来了较高的一致性开销。
正是由于这些问题的存在,BlueStore横空出世,它直接构建在裸盘上。
参考资料
1.论文:https://www.pdl.cmu.edu/PDL-FTP/Storage/ceph-exp-sosp19.pdf