2.13. Ceph 重新平衡和恢复


当管理员将 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 中有两种类型的负载均衡器:

  • 容量平衡

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

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

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

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

    重要

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

    读平衡是性能需求。它通过确保每个设备都有其主 OSD 的公平共享,从而使读取请求在集群中的 OSD 之间均匀分布,从而帮助系统执行更好的性能。因为链中的最弱链接生效并减少了集群读取带宽,所以未平衡的读取请求会导致负载不当。读平衡成本很便宜,因为没有涉及数据移动,操作的速度也很快。这是一个元数据操作,其中 osdmap 被更新为在 pg 中参与 OSD 为 primary。

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

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.