随笔 - 378  文章 - 0  评论 - 5  阅读 - 6085

ceph集群PG数具体计算过程(我们有七个osd)

1. 当前 PG 总量计算

总 PG 数 = 所有存储池的 pg_num 之和

通过你的命令 ceph osd pool ls detail | grep pg_num,各池的 pg_num 如下:

存储池名称 pg_num 副本数(size) 实际 PG 副本数(pg_num × size)
.mgr 1 3 3
cephfs_data 32 3 96
cephfs_metadata 32 3 96
.rgw.root 32 3 96
default.rgw.log 32 3 96
default.rgw.control 32 3 96
default.rgw.meta 32 3 96
default.rgw.buckets.index 32 3 96
default.rgw.buckets.non-ec 32 3 96
default.rgw.buckets.data 256 3 768
  • 总实际 PG 副本数 = 3 + 96×8 + 768 = 3 + 768 + 768 = 1539
  • 每个 OSD 的 PG 副本数 = 1539 ÷ 7 (OSD 数量) ≈ 219.86已接近每个 OSD 250 PG 的限制

2. 报错原因分析

  • 你尝试创建新池 yinzhengjie-k8s 时指定 pg_num=128,这会新增 128 × 3(副本数)= 384 个 PG 副本。
  • 新增后的总 PG 副本数 = 1539 + 384 = 1923 → 每个 OSD 需要承载 1923 ÷ 7 ≈ 274.71 个 PG,超过了默认的 mon_max_pg_per_osd=250 限制。

3. 解决方案

(1) 方法 1:临时调高 mon_max_pg_per_osd

允许单个 OSD 承载更多 PG(需谨慎,可能影响性能):

ceph config set mon mon_max_pg_per_osd 300

然后重新创建池:

ceph osd pool create yinzhengjie-k8s 128 128

(2) 方法 2:优化现有池的 PG 数

减少部分高 pg_num 池的 PG 数量(例如 default.rgw.buckets.datapg_num=256 过高):

# 调整该池的 pg_num 到合理值(例如 64)
ceph osd pool set default.rgw.buckets.data pg_num 64
ceph osd pool set default.rgw.buckets.data pgp_num 64

调整后:

  • 原 PG 副本数减少 (256 - 64) × 3 = 576
  • 释放空间后可安全创建新池。

(3) 方法 3:启用 PG 自动缩放(推荐)

让 Ceph 自动优化 PG 数量:

# 对所有池启用自动缩放
ceph config set global osd_pool_default_pg_autoscale_mode on

Ceph 将根据数据量自动调整 PG 数,避免手动计算。

(4) 方法 4:扩展 OSD 节点

添加更多 OSD 节点以分担 PG 负载(最根本的解决方案)。


4. 验证命令

  • 查看当前 PG 分布
    ceph osd pool autoscale-status
    
  • 检查集群 PG 总量
    ceph osd pool stats
    

5. PG 规划参考公式

  • 单个池的推荐 PG 数pg_num ≈ (预计数据量 TB × 100) / 副本数
  • 总 PG 数上限总 PG 数 ≤ mon_max_pg_per_osd × OSD 数量

总结

方法 操作难度 风险 效果
调高 mon_max_pg_per_osd 临时解决,可能影响性能
优化现有池 PG 数 长期有效,需停机维护
启用 PG 自动缩放 自动化管理,推荐方案
扩展 OSD 节点 根本解决,但成本高

建议顺序:先启用自动缩放 → 扩展 OSD → 必要时临时调高 PG 限制。

posted on   Leo-Yide  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示