论文阅读《File Systems Unfit as Distributed Storage Backends: Lessons from 10 Years of Ceph Evolution》

该论文发表在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横空出世,它直接构建在裸盘上。

BlueStore架构

参考资料

1.论文:https://www.pdl.cmu.edu/PDL-FTP/Storage/ceph-exp-sosp19.pdf

2.Slides:https://sosp19.rcs.uwaterloo.ca/slides/aghayev.odp

3.速读:https://blog.acolyer.org/2019/11/06/ceph-evolution/


----------本文结束感谢您的阅读----------
坚持原创技术分享,您的支持将鼓励我继续创作!