ceph PG和PGP区别

Ceph中的PG和PGP的关系 【前言】 ceph创建存储池需要pg数和pgp数的两个参数,在前面我们介绍了ceph的pg,那么pgp和pg有什么关系呢? PG (Placement Group),pg是一个虚拟的概念,用于存放object,PGP(Placement Group for Placement purpose),相当于是pg存放的一种osd排列组合。举个例子:假设集群有3个osd,即osd1,osd2,osd3,副本数为2,如果pgp=1,那么pg存放的osd的组合就有一种,可能是[osd1,osd2],那么所有的... 阅读详情

一、前言

首先来一段英文关于PG和PGP区别的解释:

PG = Placement Group
PGP = Placement Group for Placement purpose
​
pg_num = number of placement groups mapped to an OSD
​
When pg_num is increased for any pool, every PG of this pool splits into half, but they all remain mapped to their parent OSD.
​
Until this time, Ceph does not start rebalancing. Now, when you increase the pgp_num value for the same pool, PGs start to migrate from the parent to some other OSD, and cluster rebalancing starts. This is how PGP plays an important role.
By Karan Singh

以上是来自邮件列表的 Karan Singh 的PG和PGP的相关解释,他也是 Learning Ceph 和 Ceph Cookbook的作者,以上的解释没有问题,我们来看下具体在集群里面具体作用

二、实践

环境准备,因为是测试环境,我只准备了两台机器,每台机器4个OSD,所以做了一些参数的设置,让数据尽量散列

osd_crush_chooseleaf_type = 0

以上为修改的参数,这个是让我的环境故障域为OSD分组的

创建测试需要的存储池 我们初始情况只创建一个名为testpool包含6个PG的存储池

ceph osd pool create testpool 6 6
pool 'testpool' created

我们看一下默认创建完了后的PG分布情况

ceph pg dump pgs|grep ^1|awk '{print $1,$2,$15}'
dumped pgs in format plain
1.1 0 [3,6,0]
1.0 0 [7,0,6]
1.3 0 [4,1,2]
1.2 0 [7,4,1]
1.5 0 [4,6,3]
1.4 0 [3,0,4]

我们写入一些对象,因为我们关心的不仅是pg的变动,同样关心PG内对象有没有移动,所以需要准备一些测试数据,这个调用原生rados接口写最方便

rados -p testpool bench 20 write --no-cleanup

我们再来查询一次

ceph pg dump pgs|grep ^1|awk '{print $1,$2,$15}'
dumped pgs in format plain
1.1 75 [3,6,0]
1.0 83 [7,0,6]
1.3 144 [4,1,2]
1.2 146 [7,4,1]
1.5 86 [4,6,3]
1.4 80 [3,0,4]

可以看到写入了一些数据,其中的第二列为这个PG当中的对象的数目,第三列为PG所在的OSD

2.1 增加PG测试

我们来扩大PG再看看

ceph osd pool set testpool pg_num 12
set pool 1 pg_num to 12

再次查询

ceph pg dump pgs|grep ^1|awk '{print $1,$2,$15}'
dumped pgs in format plain
1.1 37 [3,6,0]
1.9 38 [3,6,0]
1.0 41 [7,0,6]
1.8 42 [7,0,6]
1.3 48 [4,1,2]
1.b 48 [4,1,2]
1.7 48 [4,1,2]
1.2 48 [7,4,1]
1.6 49 [7,4,1]
1.a 49 [7,4,1]
1.5 86 [4,6,3]
1.4 80 [3,0,4]

可以看到上面新加上的PG的分布还是基于老的分布组合,并没有出现新的OSD组合, 因为我们当前的设置是pgp为6,那么三个OSD的组合的个数就是6个,因为当前为12个pg, 分布只能从6种组合里面挑选,所以会有重复的组合

根据上面的分布情况,可以确定的是,增加PG操作会引起PG内部对象分裂,分裂的份数是根据新增PG组合重复情况来的,比如上面的情况

  • 1.1的对象分成了两份[3,6,0]

  • 1.3的对象分成了三份[4,1,2]

  • 1.4的对象没有拆分[3,0,4]

结论:增加PG会引起PG内的对象分裂,也就是在OSD上创建了新的PG目录,然后进行部分对象的move的操作

2.2 增加PGP测试

我们将原来的PGP从6调整到12

ceph osd pool set testpool pgp_num 12
ceph pg dump pgs|grep ^1|awk '{print $1,$2,$15}'
dumped pgs in format plain
1.a 49 [1,2,6]
1.b 48 [1,6,2]
1.1 37 [3,6,0]
1.0 41 [7,0,6]
1.3 48 [4,1,2]
1.2 48 [7,4,1]
1.5 86 [4,6,3]
1.4 80 [3,0,4]
1.7 48 [1,6,0]
1.6 49 [3,6,7]
1.9 38 [1,4,2]
1.8 42 [1,2,3]

可以看到PG里面的对象并没有发生变化,而PG所在的对应关系发生了变化 我们看下与调整PGP前的对比

*1.1 37 [3,6,0]          1.1 37 [3,6,0]*
1.9 38 [3,6,0]          1.9 38 [1,4,2]
*1.0 41 [7,0,6]          1.0 41 [7,0,6]*
1.8 42 [7,0,6]          1.8 42 [1,2,3]
*1.3 48 [4,1,2]          1.3 48 [4,1,2]*
1.b 48 [4,1,2]          1.b 48 [1,6,2]
1.7 48 [4,1,2]          1.7 48 [1,6,0]
*1.2 48 [7,4,1]          1.2 48 [7,4,1]*
1.6 49 [7,4,1]          1.6 49 [3,6,7]
1.a 49 [7,4,1]          1.a 49 [1,2,6]
*1.5 86 [4,6,3]          1.5 86 [4,6,3]*
*1.4 80 [3,0,4]          1.4 80 [3,0,4]*

可以看到其中最原始的6个PG的分布并没有变化(标注了*号),变化的是后增加的PG,也就是将重复的PG分布进行新分布,这里并不是随机完全打散,而是根据需要去进行重分布

结论: 调整PGP不会引起PG内的对象的分裂,但是会引起PG的分布的变动

三、结论

  • PG是指定存储池存储对象的目录有多少个,PGP是存储池PG的OSD分布组合个数

  • PG的增加会引起PG内的数据进行分裂,分裂到相同的OSD上新生成的PG当中

  • PGP的增加会引起部分PG的分布进行变化,但是不会引起PG内对象的变动

Ceph集群扩容及数据再均衡原理分析 用户文件在Ceph RADOS中存储、定位过程大概包括:用户文件切割成对象、对象映射到PG、PG分组PGP、PG映射到OSD。这些过程中,可能涉及了大量概念和变量,而其实它们大部分是通过HASH、CRUSH等算法计算出来的,初始参数可能也就只有这么几个:用户文件inode、layout、crush_map等。Ceph所有组件和客户端通过计算就能得到所有对象的Location,而且只要输入的参数信息不变,Location就不会变,另外通过PG作为中间层将对象与OSD解绑,使得对象在Ceph RADOS分布更均 阅读详情

相关推荐

ceph分布式存储-PG和PGP的区别

一、前言 首先来一段英文关于PG和PGP区别的解释: PG = Placement Group PGP = Placement Group for Placement purpose pg_num = number of placement groups mapped to an OSD When pg_num is increased for any pool, every ...

weixin_44389885的博客 824

ceph存储池创建,删除,PG和PGP基本分配方法;ceph 的用户管理及授权;普通用户挂载块存储和cephfs;MDS高可用架构

ceph存储池创建,删除,PG和PGP基本分配方法;ceph 的用户管理及授权;普通用户挂载块存储和cephfs;MDS高可用架构.

weixin_42896216的博客 2890

清晰的理解pg与pgp之间的关系

这里先说下ceph中PG和PGP使用的一个典型场景,ceph中PG数是可以修改的,但是目前只能从小到大修改 ,那么就会有一种情况PG数修改变大后就会存在PG分裂的场景。如源集群PG为PG1/2/3  修改PG数为PG1/2/3/4/5后ceph为了保证存储数据平滑分裂引入PGP概念,PGP就是用来保存分裂前PG的状态,意为PG初始状态或PG祖先。所以修改PG数后PG分布不回引起太大的变化,但如果同...

pansaky的博客 3264

Ceph 中PG与PGP的概述

在Ceph分布式存储系统中,PG(Placement Group)和PGP(Placement Group for Placement purpose)是两个至关重要的概念,它们共同决定了数据在集群中的分布和复制方式。

zuopiezia的博客 1428

Ceph分布式存储系列(二):CRUSH算法与数据分布策略深度解析

本文深度解析Ceph分布式存储中的CRUSH算法与数据分布策略,详细介绍其工作原理和架构设计。通过层次化集群拓扑建模、动态权重系统和PG规划策略,CRUSH算法实现了高效、均匀的数据分布。文章还提供了实战中的调优技巧和性能监控方法,帮助用户优化Ceph存储集群。

weixin_28726671的博客 389

ceph创建pool

概述 一个ceph集群可以有多个pool,每个pool是逻辑上的隔离单位,不同的pool可以有完全不一样的数据处理方式,比如Replica Size(副本数)、Placement Groups、CRUSH Rules、快照、所属者等。 正文 查看现有pool列表,删除默认的pool ceph osd lspools 删除默认pool rbd rados rmpool rbd rbd --yes-...

炮哥技术分享 9735

Ceph中PG和PGP的区别

http://www.zphj1987.com/2016/10/19/Ceph%E4%B8%ADPG%E5%92%8CPGP%E7%9A%84%E5%8C%BA%E5%88%AB/ 一、前言 首先来一段英文关于PG和PGP区别的解释: PG = Placement GroupPGP = Placement Group for Placement purpose pg...

weixin_30716141的博客 149

探索Vortex开源GPGPU:RISC-V SIMT架构(4-1),Execute SFU(1)

本文详细分析了Vortex RISC-V内核6级流水线中Execute阶段的SFU(特殊功能单元)模块。重点介绍了SFU的数据流结构,包含dispatch_unit、pe_switch、csr_unit、wctl_unit和gather_unit五个子模块。文章深入解析了warp控制指令wspawn和tmc的实现机制:wspawn用于激活指定数量的warp并设置新PC值,tmc则用于控制线程掩码和warp状态。通过C代码和汇编指令的对照分析,阐明了这些指令在并行计算中的关键作用,包括线程激活、状态切换和执行

weixin_55313207的博客 1363

ceph pg和pgp的区别

一、前言首先来一段英文关于PG和PGP区别的解释:PG = Placement GroupPGP = Placement Group for Placement purposepg_num = number of placement groups mapped to an OSDWhen pg_num is increased for any pool, every PG of t

xiongwenwu的专栏 3788

ENVI基于Landsat影像构建郑州市2000-2019年遥感生态指数RSEI

本文基于landsat5、landsat7、landsat8三种传感器的影像,使用ENVI软件构建郑州市2000-2019年遥感生态指数RSEI。内含ENVI详细操作、使用的公式以及构建结果。

Lexicopperfield的博客 1万+

使用SAM进行遥感图像语义分割

SAM(Segment Anything Model)的成功表明了以数据为中心的机器学习的重要性。然而,由于遥感(RS)图像注释的困难和高成本,大量有价值的RS数据仍然没有被标记,特别是在像素级。在这项研究中,我们利用SAM和现有的RS物体检测数据集,开发了一个高效的管道来生成大规模的RS分割数据集,称为SAMRS。SAMRS在规模上超过了现有的高分辨率RS分割数据集几个数量级,并提供了物体类别、位置和实例信息,可用于语义分割、实例分割和物体检测,无论是单独还是组合。

lalula的博客 7453

ceph 中pg和pgp的区别

PG是指定存储池存储对象的目录有多少个,PGP是存储池PG的OSD分布组合个数 PG的增加会引起PG内的数据进行分裂,分裂到相同的OSD上新生成的PG当中 PGP的增加会引起部分PG的分布进行变化,但是不会引起PG内对象的变动 ...

wuxiaobingandbob的专栏 978

RPA实战:手把手教你打造抖音自动养号机器人(含避坑指南)

本文详细介绍了如何利用RPA技术从零构建一个智能化的抖音自动养号机器人。内容涵盖环境准备、核心工具选型、拟人化行为流程设计、代码实现模块拆解,并提供了关键的避坑指南与风控对抗策略,帮助开发者高效、稳定地实现账号自动化运营。

orange的博客 562

ceph中的PG和PGP

在最初使用ceph的时候就有一个疑问,ceph存储时将对象映射到PG(Placement Groups)中,然后以PG为单位,遵循CRUSH的规则分布到OSD中,那么PGP又有什么用呢?因此决定自己探索一下。 ceph对象的映射关系架构图 环境介绍 [root@ceph01 my-cluster]# ceph osd tree ID WEIGHT TYPE NAME UP/DO...

771

安装cartographer,跑官网数据集

今天开始写一个关于google cartographer系列文章。此类文章网上已经很多,本系列文章主要记录重点部分及容易踩坑地方。 cartographer是一个完整的激光SLAM开源项目,属于graph slam,包含了完整的前端里程计和后端地图优化,既能够同时定位建图,又能够基于先验地图进行独立全局定位。 值得 目录 一、推荐首选看官网资料,已经很详细了 二、安装 三、源码文件架构 四、跑数据集 1、建图 2、基于先验地图的全局定位 一、推荐首选看官网资料,已经很详细了 原生版:

qq_18276949的博客 6144

QT C++ AI棉花智能变量灌溉工上位机(信创完整版)

北斗履带灌溉机器人/田间分区电磁阀基站 → 多层土壤温湿度/盐分EC传感器实时采集墒情 → 双目AI视觉扫描棉田长势、病苗分布 → AI融合**生育期+土壤墒情+盐分+棉株长势**计算变量灌溉定额、水肥配比、灌溉时长 → 分区电磁阀/变频水泵变量供水,病弱苗地块减量、干旱地块增量;墒情、盐分、长势多因子闭环修正灌水量;多层土壤含水率(0–10/20–40/40–80cm)、土壤EC盐分、土壤温度、空气温湿度、蒸发量、北斗地块坐标、管道水压、水肥罐液位、分区流量计、水泵电机负载、滴灌带压力反馈。

寒寒豆豆软件公司的博客 187

CEPH 概念摘记

[问题] [解答][问题] PG 和 PGP有什么区别? [解答] PG = Placement Group PGP = Placement Group for Placement purpose pg_num = number of placement groups mapped to an OSDWhen pg_num is increase

jiankangshiye 716

分区补光与ISP图像调节技术

在安防监控场景中,逆光、强光、明暗不均(如门口 / 窗边的 “阴阳脸” 画面)是导致图像细节丢失的核心问题。分区补光技术通过对画面不同亮度区域精准补光,解决 “局部过曝 / 欠曝” 难题;ISP(图像信号处理器)图像调节技术则通过算法优化,提升画面色彩、对比度与细节。二者协同可实现 “硬件补光 + 算法优化” 的双重增强,是低功耗摄像机实现高清画质的关键技术组合。分区补光与 ISP 图像调节技术:原理、协同方案及安防监控应用案例。一、核心技术原理解析。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 730

Linux中lvm和ceph区别,Ceph概念介绍及组件介绍

一:Ceph基础介绍Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。Ceph相比其它存储的优势点在于它不单单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,同时由于Ceph的良好设计,采用了CRUSH算法、HASH环等方法,使得它不存在...

weixin_33315608的博客 1268

宇瞳杯视讯镜头完成版(除公差/鬼像分析)

宇瞳杯视讯镜头完成版(除公差/鬼像分析)

weixin_72050316的博客 1049

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Ceph—Rbd

1.RBD介绍 RBD即RADOS Block Device的简称,RBD块存储是最稳定且最常用的存储类型。RBD块设备类似磁盘可以被挂载。 RBD块设备具有快照、多副本、克隆和一致性等特性,数据以条带化的方式存储在Ceph集群的多个OSD中。如下是对Ceph RBD的理解。 RBD 就是 Ceph 里的块设备,一个 4T 的块设备的功能和一个 4T 的 SATA 类似,挂载的 RBD 就可以当磁...

屈帅波的技术博客 4090

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ceph pg数量调整

1.计算合适的pg数 关于pg数值的合理值的计算参考 http://ceph.com/pgcalc/ 。但是请谨记,在你真正还是调整pg前,请确保集群状态是健康的。 2.调整前确保状态ok 如果 ceph -s 命令显示的集群状态是OK的,此时就可以动态的增大pg的值。 注意: 增大pg有几个步骤,同时必须比较平滑的增大,不能一次性调的太猛。对于生产环境格外注意。

xiongwenwu的专栏 8710

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ceph综合文章介绍

本文介绍了分布式存储系统Ceph的核心概念和工作原理。首先阐述了CRUSH算法如何通过伪随机方式控制数据分布和复制。重点讲解了PG(Placement Group)和PGP(PG Placement)的作用与区别:PG决定对象存储目录数量,PGP决定PG在OSD上的分布组合。详细说明了存储池(Pool)作为命名空间的功能及其配置策略。最后对比了三种开源存储方案:对象存储(如Swift、S3)、块存储(如RBD、EBS)和文件系统存储(如CephFS、NFS),分析了它们各自的特点和接口差异。

263

干货丨Ceph 日常运维常见难点及故障解决

本文转自twt社区。 【导读】Ceph 日常运维中有几类常见问题,社区日前组织Ceph领域专家进行了线上的答疑交流,对社区会员提出的部分典型问题进行了分享解答,以下是分享内容,希望能为大家提供答案和一些参考。 Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ceph的块设备存储,比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的cinder后端存储、Gla.

weixin_54750412的博客 2454
上一篇: 在Ubuntu20.04下基于ceph-deploy部署ceph 16.2.10
下一篇: ceph 心跳机制
米利都
博客等级 码龄5年 601粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米利都

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值