Ceph 核心概念精讲:彻底搞懂 PG、PGP、pg_num、pgp_num

前言

在 Ceph 中,PG、PGP、pg_num、pgp_num 是最容易混淆、也是最高频的知识点。绝大多数初学者都会疑惑:明明已经有了 PG,为什么 Ceph 还要额外设计一个 PGP?两个参数 pg_numpgp_num 看似雷同,到底分工是什么?扩容时为什么必须先改 pg_num,再改 pgp_num?

一、基础概念:什么是 PG?

PG(Placement Group,归置组) ,是 Ceph 数据管理的最小逻辑单元

Ceph 完整的数据映射链路:Object 对象 → PG 归置组 → OSD 磁盘节点

Ceph 不会直接以单个对象为单位管理数据,因为对象数量极其庞大(数十亿级别),直接管理性能极差。因此通过 PG 将海量对象分组,统一收拢管理。

Ceph 所有后台操作,全部以 PG 为最小粒度:

  • 数据副本同步、故障恢复

  • 磁盘巡检(scrub)、数据校验、修复

  • 数据跨节点迁移、集群负载均衡

简单总结:PG 就是对象的"逻辑收纳箱",只负责分组,不负责数据搬家调度

二、核心难点:什么是 PGP?

PGP 全称 Placement Group for Placement 。直译:用于 CRUSH 落地分配的归置组

想要理解 PGP,首先要读懂 Ceph 顶级设计思想:将 PG 扩容拆分为两个独立动作,解耦"逻辑分裂"和"物理搬家"

如果 PG 扩容时,分裂数据、跨节点搬家同时执行,会瞬间产生海量磁盘IO与网络流量,直接打满集群资源,导致线上业务延迟雪崩。

因此 Ceph 把扩容拆成两步:

  1. 第一步:本地逻辑拆分:只在本地 OSD 修改元数据,拆分 PG,不移动真实数据,无性能损耗

  2. 第二步:全局物理均衡:后台缓慢跨节点迁移数据,可控限流,不影响业务

为了实现这个解耦设计,Ceph 引入了 PGP:

PG 负责逻辑分组,PGP 负责物理调度

通俗白话解释:

  • PG:只是给对象分配编号、完成本地分组

  • PGP:决定哪些 PG 拥有资格参与 CRUSH 算法调度、跨 OSD 搬家、全局均衡

相关推荐
查士丁尼·绵14 小时前
centos stream 9离线分层部署cloudstack 4.22高可用集群
ceph·cloudstack
2301_773643623 天前
ceph镜像
前端·javascript·ceph
2301_773643624 天前
ceph池
开发语言·ceph·python
2301_773643624 天前
ceph实践
ceph
2301_773643627 天前
ceph分布式存储
分布式·ceph
m0_7360348510 天前
ceph分布式存储
分布式·ceph
三十..10 天前
Ceph 三大存储接口深度实践与数据保护指南
运维·ceph
AOwhisky10 天前
Ceph系列第六期:Ceph 文件系统(CephFS)精讲
linux·运维·网络·笔记·ceph
潮起鲸落入海10 天前
Ceph 分布式存储 对象存储管理
ceph