[改进后的中文总结内容]

本次 Ceph 社区开发者月度会议主要讨论了以下议题:

1. 编码/解码框架和 Blue Store onode 序列化改进: * Alan Samuels介绍了新的编码/解码框架和 Blue Store onode 序列化改进,旨在降低 CPU 成本和提高性能。 * 通过优化缓冲区操作和迭代器,减少代码层级和冗余,从而减少编码/解码过程中的开销。 * 引入标志位来指示常见的优化,例如无空洞或所有数据都在一个物理扩展中。 * 对物理扩展的引用进行优化,减少序列化过程中的冗余,从而降低存储空间需求。

2. MDS 元数据负载均衡器(Mantle): * Michael Silla介绍了 Mantle,一种用于 MDS 元数据负载均衡器的设计。 * Mantle 通过 Lua 脚本注入来控制负载均衡策略,将策略与机制分离。 * 设计文档和代码已发布在 Etherpad 上,社区成员可进行讨论和反馈。 * Mantle 使用 Lua 作为脚本语言,可灵活地更改负载均衡策略。 * Mantle 目前处于实验阶段,不建议在生产环境中使用。

3. RBD 镜像横向扩展: * Jason介绍了 RBD 镜像横向扩展的方案,旨在提高高可用性和横向扩展性。 * 方案分为三个阶段: * 第一阶段:实现活动/被动故障转移,通过锁机制实现高可用性。 * 第二阶段:实现每图像横向扩展,通过 RPC 消息分配负载。 * 第三阶段:实现热点能力扩展,通过收集指标来平衡负载。 * 方案旨在提高 RBD 镜像的可靠性和性能。

4. RBD 客户端持久缓存: * Jason介绍了 RBD 客户端持久缓存的设计,旨在将负载从集群卸载到本地缓存。 * 缓存可以存储读取和写入数据,并支持克隆图像的共享读取缓存。 * 缓存使用稀疏文件或 Blue Store 实例来存储数据。 * 缓存管理器负责分配缓存槽位和垃圾回收。

5. Manager 和 PG 状态: * John介绍了 Manager 和 PG 状态的进展。 * Manager 是一个可选组件,用于存储 PG 状态和统计信息。 * PG 状态将在 Luminous 版本中从 Monitor 移动到 Manager。 * Kraken 版本中将提供实验性的 Manager 支持。

6. EC 覆写: * Sam介绍了 EC 覆写的进展。 * 工作正在进行中,包括持久化缺失集合、缓存和哈希基础设施更改。 * 代码重构正在进行中,以提高代码的可维护性和可读性。

7. DDO: * Marcel介绍了 DDO(数据去重)的进展。 * 已完成 Python 原型,并计划将其重写为 C++。 * DDO 可用于存储内容地址对象,并具有数据去重功能。

8. 改进的 Scrub 接口: * David介绍了改进的 Scrub 接口,旨在提高错误报告的准确性。 * 通过比较每个分片的对象信息,可以更准确地识别损坏的对象。 * 提供了 JSON 输出,以便用户和脚本可以轻松地识别和修复损坏的对象。

后续行动计划

  • 社区成员继续讨论和反馈 Mantle 和 DDO 设计。
  • 推进 RBD 镜像横向扩展和 RBD 客户端持久缓存的工作。
  • 完成 Manager 和 PG 状态的迁移。
  • 继续改进 EC 覆写和 DDO。
  • 准备 Kraken 和 Luminous 版本的发布。