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 搬家、全局均衡

相关推荐
2401_8346369917 小时前
Ceph 分布式存储从入门到精通:架构解析 + cephadm 部署 + 存储池管理
ceph
吾皇斯巴达5 天前
ceph index-less桶可以用radosgw-admin bucket rm吗
ceph
运维全栈笔记17 天前
腾讯云 CVM 搭建 Ceph 集群部署笔记
笔记·ceph·腾讯云
刘某的Cloud18 天前
ceph osd 导入导出 rbd volume 卷
linux·运维·ceph·volume
heimeiyingwang18 天前
【架构实战】Kubernetes存储实战:从EmptyDir到Ceph CSI的持久化存储选型指南
ceph·架构·kubernetes
DLYSB_1 个月前
存储运维实战:基于 Ceph Event 监听与 Python 适配器的分布式存储健康度物理声光响应架构
运维·ceph·python·报警灯
AAA@峥1 个月前
Ceph 分布式文件系统 CephFS 实战指南
运维·分布式·ceph
AAA@峥1 个月前
Ceph RBD 块存储全解析:原理与实操汇总
运维·分布式·ceph
AAA@峥1 个月前
Ceph 集群配置管理完整指南
运维·数据库·分布式·ceph
胖兔纸22 个月前
OpenStack 1.7.2 & Ceph 9.2.1 运维命令
运维·ceph·openstack