2.9. Ceph BlueStore


BlueStore 是 Ceph 的当前存储实施。它在小分区上使用非常轻量级的 BlueFS 文件系统作为其 k/v 数据库,并消除了代表放置组的目录范式,这是代表对象和文件 XATTRs 的文件。

BlueStore 存储数据,如下所示:

  • 对象数据:BlueStore 中,Ceph 将对象存储在原始块设备上作为块。存储对象数据的原始块设备的一部分不包含文件系统。文件系统的遗漏消除了间接的层,从而提高了性能。但是,其中大部分的 BlueStore 性能改进来自 block 数据库和 write-ahead 日志。
  • Block Database:BlueStore 中,块数据库处理对象语义,以保证 一致性。对象的唯一标识符是 block 数据库中的一个键。block 数据库中的值由一系列块地址组成,它们引用所存储的对象数据、对象的 PG 和对象元数据。块数据库可能驻留在存储对象数据的同一原始块设备的 BlueFS 分区上,或者它可能驻留在单独的块设备上,通常当主块设备是硬盘,并且 SSD 或 NVMe 将提高性能。BlueStore 的键值语义不会影响文件系统 XATTR 的限制。BlueStore 可以在块数据库中快速将对象分配给其他放置组,而无需将文件从一个目录移动到另一个目录。块数据库可以存储所存储对象数据的校验和及其元数据,允许每个读取的完整数据校验和操作比定期清理更加高效,从而检测位漫长。BlueStore 可以压缩对象,而块数据库可以存储用于压缩对象理解的算法,读取操作可选择用于解压缩的相应算法。
  • Write-ahead Log:BlueStore 中,write-ahead 日志确保 Atomicity,它会记录每个事务的所有方面。BlueStore write-ahead 日志或 WAL 可以同时执行此功能。BlueStore 可以在同一设备上部署 WAL 来存储对象数据,或者可以在另一个设备上部署 WAL,通常是主块设备是硬盘,而 SSD 或 NVMe 将提高性能。
注意

如果不同的设备比主存储设备快于主存储设备,则只有在单独的块设备中保存块数据库或 write-ahead 日志会很有用。例如,SSD 和 NVMe 设备通常比 HDD 快。由于工作负载中的差异,将块数据库和 WAL 放置到单独的设备中也可能具有性能优势。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.