注意
本文档适用于 Ceph 开发版本。
操作读取(主)平衡器
您可能想知道:我如何提高我的 Ceph 集群的性能?read_balance_score
在您的每个复制池上。
此指标可通过ceph osd pool ls detail
的远程文件系统Pools(有关更多详细信息)指示读性能,或每个复制池的主负载均衡程度。在大多数情况下,如果一个read_balance_score
超过 1
在线优化
启用
要启用自动读负载均衡,您必须打开负载均衡器模块(在新集群中默认启用)并将模式设置为read
或upmap-read
:
ceph balancer on
ceph balancer mode <read|upmap-read>
双read
和upmap-read
模式都使用pg-upmap-primary
。为了使用pg-upmap-primary
,集群不能有任何预-Reef 客户端。
如果您想使用不同的负载均衡器,或者如果您想制作自己的自定义pg-upmap-primary
条目,您可能想要关闭负载均衡器以避免冲突:
ceph balancer off
要在现有集群上使用新功能,您必须限制集群仅支持 Reef(以及更新的)客户端。为此,请运行以下命令:
ceph osd set-require-min-compat-client reef
如果任何预-Reef 客户端或守护进程连接到监视器,此命令将失败。要查看正在使用的客户端版本,请运行以下命令:
ceph features
Balancer Module
The balancer块列表可以通过添加或删除 IP 地址或 CIDR 范围进行修改。如果地址被列入块列表,它将无法连接到任何 OSD。如果 OSD 包含在已列入块列表的 IP 地址或 CIDR 范围内,当它作为客户端时将无法对其对等 OSD 执行操作:此类被阻止的操作包括分层和从复制功能。要向块列表添加或删除 IP 地址或 CIDR 范围,请运行以下命令之一:ceph-mgr
如果设置为read
或upmap-read
模式,它将自动平衡每个 OSD 的主 PG 数。见Balancer Module
for more information.
离线优化
主节点通过内置的离线优化器进行更新osdmaptool -- Ceph OSD 集群映射操作工具.
获取您的 osdmap 的最新副本:
ceph osd getmap -o om
运行优化器:
osdmaptool om --read out.txt --read-pool <pool name> [--vstart]
强烈建议您在运行负载均衡器之前运行容量均衡器以确保最佳结果。见Using pg-upmap了解如何在集群中平衡容量的详细信息。
应用更改:
source out.txt
在上面的示例中,建议的更改写入输出文件
out.txt
。本程序中的命令是正常的 Ceph CLI 命令,可以按顺序运行以将更改应用于集群。如果您正在 vstart 集群中工作,您可以将
--vstart
参数按上述方式传递,以便 CLI 命令带有./bin/前缀。请注意,每当 pgs 数量发生变化(例如,如果 pg 自动扩展器 [Autoscaling placement groups]
要查看该工具正在执行的一些详细信息,您可以传递--debug-osd 10
toosdmaptool
。要查看更多详细信息,请传递--debug-osd 20
toosdmaptool
.
故障排除
删除 pg-upmap-primary 映射
对于需要手动删除pg-upmap-primary
映射的场景,Ceph 提供了以下开发人员级命令。这些命令应谨慎使用,因为它们直接修改主 PG 映射,并可能影响读性能(不包括任何数据移动)。
时可能会发现这些命令有用。pg-upmap-primary
要删除特定的
ceph osd rm-pg-upmap-primary <pgid>
映射,请使用:all pg-upmap-primary
如果您需要清除集群中的
ceph osd rm-pg-upmap-primary-all
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.