分布式存储Ceph之PG状态详解

【ceph】Ceph之PG状态详解--研读笔记 原文:分布式存储Ceph之PG状态详解 - 简书 1. PG介绍 继上次分享的《Ceph介绍及原理架构分享》,这次主要来分享Ceph中的PG各种状态详解,PG是最复杂和难于理解的概念之一,PG的复杂如下: 在架构层次上,PG位于RADOS层的中间。 a. 往上负责接收和处理来自客户端的请求。 b. 往下负责将这些数据请求翻译为能够被本地对象存储所能理解的事务。 是组成存储池的基本单位,存储池中的很多特性,都是直接依托于PG实现的。 面向容灾域的备份策略使得一般而言的PG需要执行跨节点的分布式写 阅读详情

1. PG介绍


这次主要来分享Ceph中的PG各种状态详解,PG是最复杂和难于理解的概念之一,PG的复杂如下:

  • 在架构层次上,PG位于RADOS层的中间。
    a. 往上负责接收和处理来自客户端的请求。
    b. 往下负责将这些数据请求翻译为能够被本地对象存储所能理解的事务。
  • 是组成存储池的基本单位,存储池中的很多特性,都是直接依托于PG实现的。
  • 面向容灾域的备份策略使得一般而言的PG需要执行跨节点的分布式写,因此数据在不同节点之间的同步、恢复时的数据修复也都是依赖PG完成。

2. PG状态表


正常的PG状态是 100%的active + clean, 这表示所有的PG是可访问的,所有副本都对全部PG都可用。
如果Ceph也报告PG的其他的警告或者错误状态。PG状态表:

v2-2f402c82e19ad2e51786c3cd483113d2_b.jpg

v2-32ddf072007fd6f6b50db5261eb19bd3_b.jpg

v2-c1a43d897c36f84d1c90b188467b85b5_b.jpg

3.1 Degraded


3.1.1 说明

  • 降级:由上文可以得知,每个PG有三个副本,分别保存在不同的OSD中,在非故障情况下,这个PG是active+clean 状态,那么,如果PG 的 副本osd.4 挂掉了,这个 PG 是降级状态。

3.1.2 故障模拟


a. 停止osd.1

 $ systemctl stop ceph-osd@1 


b. 查看PG状态

 $ bin/ceph pg stat 20 pgs: 20 active+undersized+degraded; 14512 kB data, 302 GB used, 6388 GB / 6691 GB avail; 12/36 objects degraded (33.333%) 


c. 查看集群监控状态

 $ bin/ceph health detail 
HEALTH_WARN 1 osds down; Degraded data redundancy: 12/36 objects degraded (33.333%), 20 pgs unclean, 20 pgs degraded; application not enabled on 1 pool(s) 
OSD_DOWN 1 osds down     
   osd.1 (root=default,host=ceph-xx-cc00) is down 
PG_DEGRADED Degraded data redundancy: 12/36 objects degraded (33.333%), 20 pgs unclean, 20 pgs degraded     
   pg 1.0 is active+undersized+degraded, acting [0,2]     
   pg 1.1 is active+undersized+degraded, acting [2,0] 


d. 客户端IO操作

 #写入对象 
$ bin/rados -p test_pool put myobject ceph.conf  

#读取对象到文件 
$ bin/rados -p test_pool get myobject.old  

#查看文件 
$ ll ceph.conf* 
-rw-r--r-- 1 root root 6211 Jun 25 14:01 ceph.conf 
-rw-r--r-- 1 root root 6211 Jul 3 19:57 ceph.conf.old 
 

故障总结:
为了模拟故障,(size = 3, min_size = 2) 我们手动停止了 osd.1,然后查看PG状态,可见,它此刻的状态是active+undersized+degraded,当一个 PG 所在的 OSD 挂掉之后,这个 PG 就会进入undersized+degraded 状态,而后面的[0,2]的意义就是还有两个副本存活在 osd.0 和 osd.2 上, 并且这个时候客户端可以正常读写IO。

3.1.3 总结

  • 降级就是在发生了一些故障比如OSD挂掉之后,Ceph 将这个 OSD 上的所有 PG 标记为 Degraded。
  • 降级的集群可以正常读写数据,降级的 PG 只是相当于小毛病而已,并不是严重的问题。
  • Undersized的意思就是当前存活的PG 副本数为 2,小于副本数3,将其做此标记,表明存货副本数不足,也不是严重的问题。

3.2 Peered


3.2.1 说明

  • Peering已经完成,但是PG当前Acting Set规模小于存储池规定的最小副本数(min_size)。

3.2.2 故障模拟


a. 停掉两个副本osd.1,osd.0

 $ systemctl stop ceph-osd@1 
 $ systemctl stop ceph-osd@0 


b. 查看集群健康状态

 $ bin/ceph health detail 
HEALTH_WARN 1 osds down; Reduced data availability: 4 pgs inactive; Degraded data redundancy: 26/39 objects degraded (66.667%), 20 pgs unclean, 20 pgs degraded; application not enabled on 1 pool(s) 
OSD_DOWN 1 osds down     
    osd.0 (root=default,host=ceph-xx-cc00) is down 
PG_AVAILABILITY Reduced data availability: 4 pgs inactive     
    pg 1.6 is stuck inactive for 516.741081, current state undersized+degraded+peered, last acting [2]     
    pg 1.10 is stuck inactive for 516.737888, current state undersized+degraded+peered, last acting [2]     
    pg 1.11 is stuck inactive for 516.737408, current state undersized+degraded+peered, last acting [2]     
    pg 1.12 is stuck inactive for 516.736955, current state undersized+degraded+peered, last acting [2] 
PG_DEGRADED Degraded data redundancy: 26/39 objects degraded (66.667%), 20 pgs unclean, 20 pgs degraded     
    pg 1.0 is undersized+degraded+peered, acting [2]     
    pg 1.1 is undersized+degraded+peered, acting [2] 

c. 客户端IO操作(夯住)

 #读取对象到文件,夯住IO 
$ bin/rados -p test_pool get myobject  ceph.conf.old 
 

故障总结:

  • 现在pg 只剩下osd.2上存活,并且 pg 还多了一个状态:peered,英文的意思是仔细看,这里我们可以理解成协商、搜索。
  • 这时候读取文件,会发现指令会卡在那个地方一直不动,为什么就不能读取内容了,因为我们设置的 min_size=2 ,如果存活数少于2,比如这里的 1 ,那么就不会响应外部的IO请求。

d. 调整min_size=1可以解决IO夯住问题

 #设置min_size = 1 
$ bin/ceph osd pool set test_pool min_size 1 
set pool 1 min_size to 1 
 

e. 查看集群监控状态

 $ bin/ceph health detail 
HEALTH_WARN 1 osds down; Degraded data redundancy: 26/39 objects degraded (66.667%), 20 pgs unclean, 20 pgs degraded, 20 pgs undersized; application not enabled on 1 po
零售门店营业额预测分析(时间序列建模) 一、 观察数据 某公司门店营业额数据报表(虚拟数据,非真实数据)如下: 可以看到表格有7个变量的数据,而且均以时间先后为顺序来记录的一组月度数据,从计量经济学的角度来分类就是一组时间序列数据,对于这类数据的预测分析,我们一般的做法是建立一个自回归移动平均模型ARMA(p,q)来预测下一期或近几期(不宜预测多期数据)的经济数据。进一步观察数据发现,这几个变量之间似乎存在某种相关(Correlat... 阅读详情

相关推荐

<十九>Ceph PG 相关名词解释

在接下来的章节中,我将对 PG(Placement Group,归置组)的各类状态展开详细的分析与解读。也欢迎大家和我一同学习、共同成长,在 Ceph 运维的路上一起积累经验~

weixin_45645078的博客 1781

查询统计Ceph上的pg 总数

本文中的命令的第一版来源于国外的一个博客,后面的版本为我自己修改的版本这个有个问题就是osd是乱序的,并且对于一个存储池来说不清楚哪个osd的pg是最多的。

隔壁老瓦的专栏 1407

Ceph入门到精通-Ceph PG状态详细介绍(全)

本文主要介绍PG的各个状态,以及ceph故障过程中PG状态的转变。

隔壁老瓦的专栏 1951

Calibre提参实战:如何用hcell和xcell文件精准屏蔽模块(附避坑指南)

本文详细解析了Calibre提参过程中hcell和xcell文件的应用技巧,帮助工程师精准屏蔽模块以优化寄生参数提取。通过对比hcell与xcell的核心差异、图形界面与命令行操作指南,以及常见问题排查方法,提升芯片后端设计效率。附避坑指南,解决EETOP论坛热议的模块丢失问题。

weixin_26795617的博客 440

从BAM到bigWig:用UCSC工具链完成测序数据可视化的完整流程

本文详细介绍了从BAM文件到bigWig格式的基因组数据可视化完整流程,涵盖UCSC工具链配置、文件格式转换、参数优化及常见问题解决方案。通过实战指南帮助研究人员高效完成测序数据可视化,特别适合ChIP-seq和RNA-seq数据分析。

weixin_29309213的博客 707

QGIS|如何将WGS84转换为CGCS 2000坐标系?

QGIS 3中如何将WGS84转换为国家2000大地坐标系? 今天来回答一位朋友在后台留言提出的问题:怎么将WGS84坐标转换为国家2000大地坐标系。 01工程坐标系 从地图窗口右下角的状态栏可以看到当前地图窗口的坐标系,即工程坐标系(Project CRS)。当前地图可以由多个图层组成,各种来源数据的坐标参照系(Layer CRS)并不一定相同,QGIS在绘制图层之前将根据工程坐标系进行动态坐标转换,然后显示在地图画布中。 因此,在处理空间数据的过程中,一定要特别注意...

QGISClass的博客 1万+

MatGPT:在MATLAB中集成AI助手,实现代码生成与调试自动化

大语言模型(LLM)通过API接口为开发者提供了强大的自然语言理解和代码生成能力,其核心原理是基于海量数据训练的Transformer架构,能够根据上下文预测并生成连贯的文本或代码。这一技术为工程实践带来了革命性价值,特别是在科学计算和算法开发领域,能够显著提升开发效率,实现智能化的代码辅助和问题解答。在实际应用中,开发者常需在IDE与AI工具间频繁切换,导致工作流中断。MatGPT作为一个开源项目,通过深度集成ChatGPT API到MATLAB环境,有效解决了这一痛点。它支持多模态输入、预设提示词管理和

weixin_42388898的博客 500

[UVM]UVM TLM2.0简介及应用实例分析

本文介绍了TLM2.0在UVM中的实现与应用。TLM2.0作为SystemC模型间的核心传输机制,相比TLM1.0提供了更丰富的特性,包括双向阻塞/非阻塞接口、时间标记和统一数据包。文章详细解析了TLM2.0在UVM中的接口实现方式,包括socket类型定义、数据传输机制以及时间标记处理。通过一个具体实例,展示了如何在UVM组件中使用TLM2.0的initiator和target socket进行数据传输,并说明了标准数据包格式和精确时间标记的优势。最后指出TLM2.0在UVM中的实现主要是为了与Syste

元直的博客 5398

把 LDB 讲透:SAP ABAP 逻辑数据库的结构、事件模型、动态选择与现代替代方案

摘要:SAP中的Logical Database(LDB)是一种将表组织成树形结构并统一生成选择屏幕的技术,通过事件驱动方式向报表程序传递数据。虽然被标记为过时,但在理解标准代码和优化性能方面仍有价值。LDB通过SE36事务码创建,其结构包含层级关系、选择屏幕和数据库程序。报表通过NODES声明和GET事件处理数据,支持动态选择以减少数据库访问。在S/4HANA和ABAP Cloud环境下,建议使用CDS View和ABAP SQL等现代方案替代LDB,以提升可测试性和架构清晰度。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 216

【入门AUTOSAR网络管理测试】RSS-PBM状态转换

随着智能电动汽车行业的快速发展,目前AUTOSAR网络管理也得到了广泛应用,AUTOSAR网络管理测试也是汽车网络测试中非常重要的环节,NM问题导致的汽车ECU不能唤醒、电瓶亏电等问题,对于新入门AUTOSAR网络管理测试的同学不清楚如何开展测试,那么本章节就主要给大家介绍网络管理中RSS-PBM状态转换如何测试。【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读。

测试领域技术分享 872

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

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

上一篇: 在 go 语言中利用反射精简代码
下一篇: BlueStore源码分析之事物状态机
「已注销」
博客等级 码龄6年 395粉丝 158原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值