当前位置: 首页 > news >正文

ceph 14.2.22 nautilus Balancer 数据平衡

Ceph Balancer (upmap 模式) 启用与配置

在 Ceph Nautilus (14.2.22) 版本中启用和配置 Balancer 的完整步骤

1. 前提检查

检查集群的初始状态和版本。

集群状态 (ceph -s)

  cluster:id:     xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxhealth: HEALTH_OKservices:mon: 3 daemons, quorum ceph-node1,ceph-node2,ceph-node3 (age 4w)mgr: ceph-node1(active, since 4w)mds: cephfs_ec:1 {0=ceph-node1=up:active} 1 up:standbyosd: N osds: N up (since 3w), N in (since 3w)data:pools:   X pools, Y pgsobjects: A objects, B TiBusage:   C TiB used, D PiB / D PiB availpgs:     Y active+clean

Ceph 版本 (ceph -v)

ceph version 14.2.22 (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) nautilus (stable)

2. 启用 Balancer 模块

启用 balancer 模块。系统提示该模块已默认启用。

[root@ceph-node1 ~]# ceph mgr module enable balancer
module 'balancer' is already enabled (always-on)

查看 Balancer 初始状态,此时模式为 none,且未激活。

[root@ceph-node1 ~]# ceph balancer status
{"last_optimize_duration": "", "plans": [], "mode": "none", "active": false, "optimize_result": "", "last_optimize_started": ""
}

3. 配置 Balancer 模式为 upmap

我们选择 upmap 模式,因为它效率高且对集群性能影响小。

步骤 3.1: 解决兼容性问题

尝试设置 upmap 模式时,系统报错,提示需要最低的客户端兼容版本为 luminous

[root@ceph-node1 ~]# ceph balancer mode upmap
Error EPERM: min_compat_client "jewel" < "luminous", which is required for pg-upmap. Try "ceph osd set-require-min-compat-client luminous" before enabling this mode

根据错误提示,执行以下命令更新客户端兼容性要求:

[root@ceph-node1 ~]# ceph osd set-require-min-compat-client luminous
set require_min_compat_client to luminous

步骤 3.2: 成功设置 upmap 模式

解决兼容性问题后,再次尝试设置模式,命令成功执行。

[root@ceph-node1 ~]# ceph balancer mode upmap

4. 开启 Balancer 并验证

现在,正式开启 Balancer。

[root@ceph-node1 ~]# ceph balancer on

开启后,立即查看状态,可以看到 active 已变为 truemodeupmap,并且系统已成功创建优化计划。

[root@ceph-node1 ~]# ceph balancer status
{"last_optimize_duration": "0:00:00.xxxxxx", "plans": [], "mode": "upmap", "active": true, "optimize_result": "Optimization plan created successfully", "last_optimize_started": "YYYY-MM-DD HH:MM:SS"
}

5. 观察集群状态变化

Balancer 开始工作后,会进行 PG 的重映射(remap)和数据迁移。此时通过 ceph -s 查看集群状态,会发现健康状态变为 HEALTH_WARN

[root@ceph-node1 ~]# ceph -scluster:id:     xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxhealth: HEALTH_WARNDegraded data redundancy: X/Y objects degraded (Z%), A pgs degradedservices:mon: 3 daemons, quorum ceph-node1,ceph-node2,ceph-node3 (age 4w)mgr: ceph-node1(active, since 4w)mds: cephfs_ec:1 {0=ceph-node1=up:active} 1 up:standbyosd: N osds: N up (since 3w), N in (since 3w); M remapped pgsdata:pools:   X pools, Y pgsobjects: A objects, B TiBusage:   C TiB used, D PiB / D PiB availpgs:     X/Y objects degraded (Z%)A/B objects misplaced (C%)D active+cleanE active+recovery_wait+undersized+degraded+remappedF active+recovering+undersized+remappedio:recovery: X MiB/s, Y objects/s

注意: HEALTH_WARN 状态是预期现象,因为数据正在根据优化计划进行迁移。degradedmisplacedremapped 等状态表明 PG 正在被移动到更合适的 OSD 上。等待数据恢复(recovery)和回填(backfilling)完成后,集群状态将恢复到 HEALTH_OK

6. 开启balancer后 限制recovery恢复速度

recovery: 8.9 GiB/s, 2.28k objects/s
# ceph tell osd.1 config get osd_max_backfills
1
# ceph tell osd.1 config get osd_recovery_max_active
3
# ceph tell osd.1 config get osd_recovery_max_single_start
1
# 客户端 I/O 默认优先级为 63,此参数默认值为 3,值越小优先级越低。
# ceph tell osd.1 config get osd_recovery_op_priority
1
# ceph tell osd.1 config get osd_recovery_sleep
0.000000
# 当以上并发数限制仍无法有效降低 I/O 时
# 最有效的方法是引入休眠时间。这会在两次 recovery/backfill 操作之间插入一个短暂的延迟(单位:秒),
# 从而直接降低整体带宽。可以从 0.1 开始尝试,根据实际情况调整。
ceph tell 'osd.*' config set osd_recovery_sleep 0.1
# ceph tell osd.1 config get osd_recovery_sleep
0.100000
   recovery: 3.4 GiB/s, 865 objects/s
http://www.dtcms.com/a/309050.html

相关文章:

  • 通过CISSP考试,共答到第127题
  • 雷达微多普勒特征代表运动中“事物”的运动部件。
  • 机械手弧焊电源气体流量优化方法
  • 算法:分治-快速排序
  • IO流File类的基本使用
  • 前端开发(HTML,CSS,VUE,JS)从入门到精通!第二天(CSS)
  • 《n8n基础教学》第三节:模拟一个自动化场景
  • CSS的2D转换
  • 【Shell脚本自动化编写——报警邮件,检查磁盘,web服务检测】
  • 了解Reddit自动化 社区营销更精准
  • CSS组件化样式新篇章:@scope
  • vi/vim跳转到指定行命令
  • 机器学习第二课之逻辑回归(二)LogisticRegression
  • LSTM网络从浅入深原理级讲解与Pytorch逐行讲解实现
  • [python][selenium] Web UI自动化8种页面元素定位方式
  • K8S周期性备份etcd数据实战案例
  • 番茄项目3:完成了项目的数据库设计
  • npm报错:npm install 出现“npm WARN old lockfile”
  • ZED 2/2i 相机安装与调试完整指南 | Ubuntu 20.04 + CUDA 11.8
  • k8s云原生rook-ceph pvc快照与恢复(下)
  • 前端SWR策略:优化数据请求
  • STM32学习记录--Day5
  • AG-UI 协议全面解析--下一代 AI Agent 交互框架医疗应用分析(下)
  • 接口幂等性
  • 【Flutter】双路视频播放方案
  • 《R for Data Science (2e)》免费中文翻译 (第3章) --- Data transformation(1)
  • Jupyter Notebook 使用指南
  • Idea集成Jenkins Control插件,在IDEA中触发Jenkins中项目的构建
  • 【数据可视化-78】2025年上半年广东省各市GDP排名深度解析与可视化:Python + Pyecharts 深度洞察(含完整数据、代码)
  • 【Linux学习|黑马笔记|Day1】Linux初识、安装VMware Workstation、安装CentOS7、远程连接、虚拟机快照