整体架构
bluestore的诞生是为了解决filestore自身维护一套journal并同时还需要基于系统文件系统的写放大问题,并且filestore本身没有对SSD进行优化,因此bluestore相比于filestore主要做了两方面的核心工作:
- 去掉journal,直接管理裸设备
- 针对SSD进行单独优化
bluestore的整体架构如下图所示:
通过Allocator实现对裸设备的管理,直接将数据保存到设备上;同时针对metadata使用RocksDB进行保存,底层自行封装了一个BlueFS用来对接RocksDB与裸设备。
模块划分
核心模块
- RocksDB: 存储预写式日志、数据对象元数据、Ceph的omap数据信息、以及分配器的元数据(分配器负责决定真正的数据应在什么地方存储)
- BlueRocksEnv&