注意

本文档适用于 Ceph 开发版本。

Ceph中的负载均衡

简介

在像Ceph这样的分布式存储系统中,平衡写入和读取请求对于最佳性能非常重要。写入负载均衡确保集群中数据的快速存储和复制,而读取负载均衡确保集群中数据的快速访问和检索。这两种类型的负载均衡在分布式系统中出于不同原因都很重要。

Upmap负载均衡

在集群中的重要性

容量均衡是一个功能需求。像Ceph这样的系统与其最大设备一样满:当一个设备满时,系统不能再服务写入请求,Ceph就失去了它的功能。为了避免设备满,我们希望以公平的方式在设备之间平衡容量。每个设备应该得到与其大小成比例的容量,以便所有设备都有相同的满度水平。从性能的角度来看,容量均衡在OSDs上为写入请求创建了公平份额的工作负载。

容量均衡是昂贵的。该操作(更改pgs的映射)根据定义需要数据移动,这需要时间。在此期间,系统的性能会降低。

在Ceph中,如果所有设备都是同质的(大小和性能相同),我们可以平衡写入性能。

如何在Ceph中平衡容量

请参阅Using pg-upmap for more information.

读取负载均衡

与容量均衡不同,读取均衡不是Ceph功能的一个严格要求。相反,它是一个性能要求,因为它有助于系统“更好地工作”。总体目标是确保每个设备都能得到其公平份额的主OSDs,以便读取请求在集群中的OSDs上均匀分布。不平衡的读取请求会导致性能下降,因为集群总带宽减少。

读取均衡是廉价的。与容量均衡不同,没有数据移动。它只是一个元数据操作,其中osdmap被更新以更改pg中参与OSD的主OSD。此操作很快,并且对集群性能没有影响(操作完成时性能有所提高——几乎是立即的)。

在Ceph中,如果所有设备都是同质的(大小和性能相同),我们可以平衡读取性能。然而,在未来版本中,读取均衡器可以改进,以在异构系统中实现整体集群性能。

如何在Ceph中平衡读取

请参阅操作读取(主)平衡器 for more information.

此外,请参阅Cephalocon 2023演讲Ceph中的新读取均衡器以演示离线版本的读取均衡器。

下一个版本的计划

  1. 改进池中异构OSD的行为

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.