1.8. 使用 upmap 在 OSD 上手动重新平衡数据
作为存储管理员,您可以通过将选定的放置组 (PG) 移到特定的 OSD,在 OSD 上手动重新平衡数据。要执行手动重新平衡,请关闭 Ceph Manager balancer 模块,并使用 upmap
模式来移动 PG。
先决条件
- 正在运行的红帽存储集群。
- 对存储集群中所有节点的根级别访问权限。
流程
确保 balancer 模块位于:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 balancer 模块没有列在
always_on
或enabled
模块中,则启用它:语法
ceph mgr module enable balancer
ceph mgr module enable balancer
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
将负载均衡器模式设置为
upmap
:语法
ceph balancer mode upmap
ceph balancer mode upmap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 关闭 balancer 模块:
语法
ceph balancer off
ceph balancer off
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查负载均衡器状态:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 OSD 设置
norebalance
标志:语法
ceph osd set norebalance
ceph osd set norebalance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
ceph pg dump pgs_brief
命令列出存储集群中的池,各自消耗的空间。使用grep
搜索重新映射的池。示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 PG 移到您希望它们所在的 OSD。例如,将 PG 7.ac 从 OSD 8 和 3 移到 OSD 3 和 37:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意重复此步骤,以每次移动每个重新 map 的 PG。
再次使用
ceph pg dump pgs_brief
命令检查 PG 是否移至active+clean
状态:示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PG 移至
active+clean
所需的时间取决于 PG 和 OSD 的数量。另外,错误放入的对象数量取决于为mgr target_max_misplaced_ratio
设置的值。为target_max_misplaced_ratio
设置了一个更高的值,则会导致大量错误替换的对象;因此,所有 PG 都需要较长的时间才能变为active+clean
。取消设置
norebalance
标志:语法
ceph osd unset norebalance
ceph osd unset norebalance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新打开 balancer 模块:
语法
ceph balancer on
ceph balancer on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
启用 balancer 模块后,它会逐渐根据存储集群的 CRUSH 规则将 PG 移到其预期的 OSD 中。平衡过程可能需要一些时间,但最终完成。