性能相关的概念和设计原则:
0. Ceph引入日志型存储系统?
BlueFS,引入日志的目的是为了进行写加速,WAL(Write Ahead Log)对于提升RocksDB的性能至关重要。
1. 为什么引入BlueStore?
ceph后端(OSD)支持多种存储引擎,以插件式的方式来进行管理使用,目前支持filestore,kvstore,memstore以及最新的bluestore.
因为FileStore需要通过操作系统自带的本地文件系统间接管理磁盘,所以所有针对RADOS层的对象操作,都需要预先转换为能够被本地文件系统识别、符合posix语义的文件操作,这个转换过程极其繁琐,效率低下。BlueStore选择绕过本地文件系统,由自身接管裸设备(例如磁盘),直接进行对象操作,不再进行对象和文件之间的转换,从而使得整个对象存储的I/O路径大大缩短,这是BlueStore能提升性能的根本原因。除此之外,考虑到元数据的索引效率对于性能有着致命的影响,BlueStore在设计中将元数据和用户数据分离,用高速固态存储设备NVMe SSD来存储数据,能起到性能加速的作用。
BlueStore整体架构分为四个部分:
- BlockDevice为最底层的块设备,BlueStore直接操作块设备,抛弃了XFS等本地文件系统。BlockDevice在用户态直接以linux系统实现的AIO直接操作块设备文件。
- BlueFS是一个小的文件系统,其文件系统的文件和目录的元数据全部被缓存