Luminous 中的新增功能:改进的可扩展性

2017年9月20日 sage

[caption id="" align="aligncenter" width="640"] © 2017 CERN[/caption]

CERN 一直是 Ceph 的长期用户和活跃的社区成员,运行着一个大型的 OpenStack 云,并由 Ceph 提供支持。 他们还使用 Ceph 来支持其他存储用例,为各种高能物理实验提供支持。 因此,可扩展性是他们非常关注的领域。

Big Bang I 和 II

2015 年,CERN 运行了一个 Ceph 可扩展性实验,跨 7200 个 OSD 拥有 30 PB 的存储空间。 用于无关基础设施项目的新的存储硬件刚刚采购到位,CERN 的 Ceph 团队在将新节点投入生产之前,只有有限的时间来使用这些节点进行测试。 结果好坏参半,突显了监视器守护进程和 OSDMap 管理中的几个可扩展性问题。

第二年,CERN 与 Ceph 开发人员一起重复了该实验,将其命名为“Big Bang II”。 此测试结合了 Jewel 版本中的各种更改,并取得了更好的结果。 然而,可扩展性最终仍然受到监视器架构问题的限制; 换句话说,OSD 定期报告利用率信息,从而压倒了监视器的复制和 IO 能力。 这为新的 Ceph 管理器 (ceph-mgr) 守护进程的设计和实施提供了额外的动力,该守护进程将所有非关键功能从监视器中卸载,并能够更有效地管理瞬态利用率信息。

Big Bang III

今年春天,我们又进行了第三次迭代——“Big Bang III”,这次使用了更大的硬件足迹和 Luminous 候选发布版。

  • 225 台服务器
  • 每台服务器 48 个 6TB 硬盘
  • 总共 10,800 个 OSD,近 65 PB!
  • 3 个监视器和管理器,与 OSD 协同放置

时机恰到好处,因为它与 ceph-mgr 统计信息管理的最终测试和开发相吻合,这意味着我们能够验证这种新方法是有效的(剧透:确实如此!)。 在我们的测试过程中,我们还发现了一个与监视器迟缓相关的问题,该问题发生在创建非常大的池时(在本例中为 256,000 个 PG)。 设计、实施和测试了一种改进的方法,该方法可以限制 PG 的创建,在访问 CERN 集群的相对较短的时间窗口内完成。

最终,该集群包含超过 10,000 个 OSD,并且稳定且响应迅速,即使在多次压力测试下也是如此。 有大量部署的 Ceph 集群拥有超过 1,000 个 OSD,但我们很少看到超过 2,000 个的报告。 此测试表明,单集群容量至少增加了五倍。 尽管大多数 Ceph 集群并不如此之大,但所有用户都可以从这些更改带来的增强的鲁棒性和降低的资源需求中受益。

Ceph 开发人员很难获得如此大规模的集群进行实际测试,即使是短时间。 CERN 的最新一轮协作测试(包括开发人员直接访问环境)对于验证和调试我们的架构更改至关重要。 特别感谢 CERN 的 Dan van der Ster,他协调了这项工作。