第 9 章 BlueStore
BlueStore 是 OSD 守护进程的新后端对象存储。原始对象存储 FileStore 需要在原始块设备之上使用文件系统。然后,对象写入文件系统。BlueStore 不需要初始文件系统,因为 BlueStore 将对象直接放置在块设备中。
BlueStore 为生产环境中的 OSD 守护进程提供高性能后端。默认情况下,BlueStore 配置为自我调节。如果您确定手动调优的蓝卡环境性能更好,请联系 红帽支持 并共享您的配置详情,以帮助我们提高自动调节功能。红帽期待您的反馈并感谢您的建议。
9.1. About BlueStore
BlueStore 是 OSD 守护进程的新后端。与原始 FileStore 后端不同,BlueStore 直接将对象存储在块设备中,而没有任何文件系统接口,这会提高集群的性能。
以下是使用 BlueStore 的一些主要功能:
- 直接管理存储设备
- BlueStore 使用原始块设备或分区。这可避免任何可能会限制性能或增加复杂性的本地文件系统(如 XFS)的抽象层。
- 使用 RocksDB 进行元数据管理
- BlueStore 使用 RocksDB 的键值数据库来管理内部元数据,如从对象名称到磁盘上块位置的映射。
- 完整数据和元数据校验和
- 默认情况下,写入 BlueStore 的所有数据和元数据都受到一个或多个校验和的保护。不进行验证,不会从磁盘读取数据或元数据,也不会返回到用户。
- 写时高效复制
- Ceph 块设备和 Ceph 文件系统快照依赖于一种写时复制克隆机制,该克隆机制在 BlueStore 中有效地实施。这会为常规快照和纠删代码池带来高效的 I/O,依靠克隆来实现高效的双阶段提交。
- 没有大型重复写入
- BlueStore 首先将任何新数据写入块设备上的未分配空间,然后提交 RocksDB 事务,该事务更新对象元数据以引用磁盘的新区域。只有写入操作低于可配置的大小阈值时,它才会返回到写入日志方案,类似于 FileStore 的运行方式。
- 多设备支持
BlueStore 可以使用多个块设备来存储不同的数据,例如:硬盘驱动器(HDD)用于数据,Solid-state Drive(SSD)用于元数据、非易失性内存(NVM)或非易失性随机访问内存(NVRAM)或 RocksDB 写入日志(WAL)的持久内存。详情请查看 第 9.2 节 “BlueStore Devices”。
注意ceph-disk
工具还没有置备多个设备。若要使用多个设备,必须手动设置 OSD。- 有效的块设备使用
- 由于 BlueStore 不使用任何文件系统,因此可以最大程度减少清除存储设备缓存的需要。