搜索

2.13. Ceph 重新平衡和恢复

download PDF

当管理员将 Ceph OSD 添加到 Ceph 存储集群时,Ceph 会更新 cluster map。对 cluster map 的这一更改也会更改对象放置,因为修改后的集群映射会更改 CRUSH 计算的输入。CRUSH 均匀地放置数据,但随机进行伪造。因此,当管理员添加新 OSD 时,只有少量的数据才会移动。数据量通常是新 OSD 的数量,它们通常根据集群中的总数据量来划分。例如,在添加 OSD 时,具有 50 个 OSD 的集群中,数据的 1/50th 或 2% 数据可能会在添加 OSD 时移动。

下图说明了重新平衡流程,其中部分,但并非所有 PG 都从现有 OSD、OSD 1 和 2 在图中迁移到新的 OSD、OSD 3。即使是重新平衡,CRUSH 仍保持稳定。许多放置组保留在其原始配置中,并且每个 OSD 获取一些额外的容量,因此在集群重新平衡后,新的 OSD 并没有负载激增。

Ceph 中有 2 个类型的负载均衡器:

  • 容量平衡

    容量平衡是一项功能需求。当一个设备已满时,系统无法再处理写入请求。为了避免填满设备,务必要以公平的方式在设备间平衡容量。每个设备都必须获得与其大小成比例的容量,以便所有设备都有相同的完整级别。容量平衡会在 OSD 上创建公平共享工作负载,以便从性能角度写入请求。

    容量平衡需要数据移动,而且非常耗时,因为它需要时间来平衡系统。

    为了获得最佳性能,请确保所有设备都同构(相同大小和性能)。

    重新平衡和恢复
  • read balancing: [技术预览]

    重要

    红帽产品服务级别协议(SLA)不支持技术预览功能,且其功能可能并不完善,因此红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。如需了解更多详细信息,请参阅红帽技术预览功能的支持范围。

    读平衡是性能需求。它通过确保每个设备获得主 OSD 的公平共享,以便读取请求在集群中的 OSD 之间分布,从而提高系统性能。由于链中最弱的链接,未平衡的读取请求会导致负载不良,并降低集群读取带宽。读平衡成本较低,操作会快,因为没有涉及数据移动。这是一个元数据操作,其中 osdmap 已更新,以更改参与 pg 中的 OSD 是 primary。

    读负载平衡仅支持复制池,不支持纠删代码池。读平衡不会考虑 OSD 的设备类别和 DR 解决方案的可用区。离线工具可用来使用读平衡功能,您需要在集群的每个池上运行流程。您需要在每次自动扩展更改后再次运行读取平衡程序。

    为获得最佳读取性能,请确保所有设备都同构(相同大小和性能)并且您已平衡容量。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.