2.10. Ceph BlueStore


BlueStore 是 Ceph 的下一代存储实施。作为存储设备的市场,存储设备的市场现在包括固态驱动器或 SSD,以及 PCI Express 或 NVMe 的不易失性内存,它们在 Ceph 中体现了 FileStore 存储实施的一些限制。虽然 FileStore 对 SSD 和 NVMe 存储有很多改进,但其他限制仍存在。在这两个服务器组中,增加放置组仍保持计算成本,而双写权仍保持计算。虽然 FileStore 与块设备中的文件系统交互,BlueStore 则消除了间接层并直接使用对象存储的原始块设备。BlueStore 在小分区中使用非常轻量级的 BlueFS 文件系统,用于其 k/v 数据库。BlueStore 消除了代表放置组的目录范式,即代表对象和代表元数据的文件。BlueStore 还消除了 FileStore 的双写负面效果,因此在大多数工作负载下,BlueStore 写入操作的速度大约会快两倍。

BlueStore 存储数据,如下所示:

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

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.