二十一、PG管理
一、 PG异常状态说明
1、 PG状态介绍
可以通过ceph pg stat命令查看PG当前状态,健康状态为“active + clean”
[root@rbd01 ~]# ceph pg stat
192 pgs: 192 active+clean; 1.3 KiB data, 64 MiB used, 114 GiB / 120 GiB avail; 85 B/s rd, 0 op/s
2、pg常见状态
状态 | 含义 |
---|---|
activating | peering即将完成,正在等待所有副本同步并固化peering结果(Info、log等) |
active | 活跃。PG可以正常处理来自客户端的读写请求 |
backfilling | 正在后台填充态。 backfill是recovery的一种特殊场景,指peering完成后,如果基于当前权威日志无法对Up Set当中的某些PG实例实施增量同步(例如承载这些PG实例的OSD离线太久,或者是新的OSD加入集群导致的PG实例整体迁移) 则通过完全拷贝当前Primary所有对象的方式进行全量同步 |
backfill-toofull | 副本所在OSD空间不足,backfill流程被挂起 |
backfill-wait | 等待backfill资源预留完成 |
clean | PG当前不存在降级对象(待修复的对象),acting set和up set内容一致,并且大小等于存储池副本数 |
creating | PG正在被创建 |
deep | PG正在或即将执行Deep-Scrub(对象一致性扫描) |
degraded | PG存在降级对象(peering完成后,PG检测到一个PG实例存在不一致),或者acting set规模小于存储池副本数(但是不小于存储池最小副本数) |
down | Peering过程中,PG检测到某个不能被跳过的Interval中,当前仍然存活的副本不足以完成数据恢复 |
incomplete | Peering过程中,由于无法选出权威日志或者选出的acting set不足以完成数据修复 |
inconsistent | Scurb过程中检测到某个或者某些对象在副本之间出现了不一致 |
peered | Peering已经完成,但是pg当前acting set规模小于存储池规定的最小副本数 |
peering | Peer正在进行 |
recovering | PG正在后台按照Peering结果,对降级对象(不一致对象)进行修复 |
recovering-wait | 等待Recovery资源预留完成 |
remapped | PG活动集任何的一个改变,数据发生从老活动集到新活动集的迁移。在迁移期间还是用老的活动集中的主OSD处理客户端请求,一旦迁移完成新活动集中的主OSD开始处理 |
repair | 修复不一致对象 |
scrubbing | PG正在执行Scrub |
stale | Monitor检测到当前Primary所在的OSD宕掉且后续没有发生切换,或者Primary超时未向Monitor上报PG相关的统计信息(例如出现临时性的网络拥塞) |
undersized | 当前acting set中副本个数小于存储池副本数(但是不小于存储池最小副本数) |
unactive | PG不能处理读写请求 |
unclean | PG不能从上一个失败中恢复 |
3、pg常见异常状态
下面给出部分PG异常状态(需要人为修复)介绍。1>degraded:降级当客户端向主 OSD 写入数据时,由主 OSD 负责把数据副本写入其余副本 OSD 。主 OSD 把对象写入存储器后,在副本 OSD 创建完对象副本并报告给主 OSD 之前,主 OSD 会一直停留在 degraded 状态。归置组状态可以处于 active+degraded 状态,原因在于一 OSD 即使尚未持有所有对象也可以处于 active 状态。如果一 OSD 挂了, Ceph 会把分配到此 OSD 的归置组都标记为 degraded ;那个 OSD 重生后,它们必须重新互联。然而,客户端仍可以向处于 degraded 状态的归置组写入新对象,只要它还在 active 状态。如果一 OSD 挂了,且老是处于 degraded 状态, Ceph 会把 down 的 OSD 标记为在集群外( out )、并把那个 down 掉的 OSD 上的数据重映射到其它 OSD 。从标记为 down 到 out 的时间间隔由 mon osd down out interval 控制,默认是 300 秒。归置组也会被降级( degraded ),因为 Ceph 找不到本应存在于此归置组中的一或多个对象,这时,你不能读写找不到的对象,但仍能访问位于降级归置组中的其它对象。2>remapped:重映射
负责维护某一归置组的 Acting Set 变更时,数据要从旧集合迁移到新的。新的主 OSD 要花费一些时间才能提供服务,所以老的主 OSD 还要持续提供服务、直到归置组迁移完。数据迁移完后,运行图会包含新 acting set 里的主 OSD 。3>stale:陈旧默认, OSD 守护进程每半秒( 0.5 )会一次报告其归置组、出流量、引导和失败统计状态,此频率高于心跳阀值。如果一归置组的主 OSD 所在的 acting set 没能向监视器报告、或者其它监视器已经报告了那个主 OSD 已 down ,监视器们就会把此归置组标记为 stale 。启动集群时,会经常看到 stale 状态,直到互联完成。集群运行一阵后,如果还能看到有归置组位于 stale 状态,就说明那些归置组的主 OSD 挂了( down )、或没在向监视器报告统计信息。4>inconsistent:不一致PG通常存在多个副本,其所有副本的数据应当是完全一致的。但有时会由于OSD故障、网络阻塞等某些因素,导致副本上的数据发生不一致的现象,此时需要对不一致的PG惊醒修复
二、常见故障处理方式
1、 OSD Down导致pg故障
最常见的PG故障都是由于某个或者多个OSD对应的硬盘损坏导致进程挂掉出现的。一般更换硬盘可以解决, 多关注集群节点dmesg日志,查看关于磁盘坏道或者io/error相关报错,及时更换硬盘
2、pg数据不一致
PG状态为inconsistent时,说明PG中存在对象不一致的情况。有可能时某个OSD磁盘损坏,或者磁盘上的数据发生静默错误。
一般手动修复损坏的PG即可, 使用ceph pg repair {pgid}
尝试手动构造一个PG数据损坏的例子,并修复它
1>关闭1个osd
systemctl stop ceph-osd@4.service2>使用ceph-objectstore-tool 挂载 /var/lib/ceph/osd/ceph-4 到 /mnt/ceph-osd@4
[root@rbd05 ~]# mkdir /mnt/ceph-4
[root@rbd05 ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-4/ --op fuse --mountpoint /mnt/ceph-4
mounting fuse at /mnt/ceph-4 ...3>另开一个窗口,查看osd内内容,以及pg目录结构
[root@rbd05 ~]# cd /mnt/ceph-4/
[root@rbd05 ceph-4]# ls
1.10_head 1.1a_head 1.6_head 2.10_head 2.18_head 2.23_head 2.2b_head 2.32_head 2.3f_head 2.c_head 3.12_head 3.1c_head 3.9_head 4.10_head 4.19_head 4.2_head 4.9_head 5.0_head 5.17_head 5.1_head 5.a_head
1.11_head 1.1b_head 1.7_head 2.12_head 2.1b_head 2.24_head 2.2c_head 2.34_head 2.3_head 2.d_head 3.13_head 3.1d_head 3.b_head 4.11_head 4.1a_head 4.3_head 4.a_head 5.12_head 5.18_head 5.3_head 5.b_head
1.12_head 1.1c_head 1.8_head 2.13_head 2.1c_head 2.25_head 2.2d_head 2.36_head 2.4_head 2.e_head 3.14_head 3.1f_head 3.c_head 4.12_head 4.1b_head 4.5_head 4.b_head 5.13_head 5.19_head 5.5_head 5.e_head
1.13_head 1.1f_head 1.9_head 2.14_head 2.20_head 2.28_head 2.2e_head 2.3a_head 2.7_head 2.f_head 3.15_head 3.1_head 3.d_head 4.14_head 4.1c_head 4.6_head 4.d_head 5.14_head 5.1a_head 5.7_head 5.f_head
1.15_head 1.1_head 1.b_head 2.15_head 2.21_head 2.29_head 2.2_head 2.3b_head 2.9_head 3.0_head 3.17_head 3.5_head 3.f_head 4.16_head 4.1d_head 4.7_head 4.e_head 5.15_head 5.1b_head 5.8_head meta
1.18_head 1.2_head 1.e_head 2.17_head 2.22_head 2.2a_head 2.30_head 2.3e_head 2.b_head 3.10_head 3.19_head 3.6_head 4.0_head 4.17_head 4.1_head 4.8_head 4.f_head 5.16_head 5.1f_head 5.9_head type[root@rbd06 ceph-5]# cd 1.10_head/
[root@rbd06 1.10_head]#
[root@rbd06 1.10_head]# tree ./
./
├── all
│ ├── #1:08000000::::head#
│ │ ├── attr
│ │ ├── bitwise_hash
│ │ ├── data
│ │ ├── omap
│ │ │ ├── 0000000017.00000000000000000001
│ │ │ ├── 0000000067.00000000000000000002
│ │ │ ├── _biginfo
│ │ │ ├── _epoch
│ │ │ ├── _info
│ │ │ ├── _infover
│ │ │ └── may_include_deletes_in_missing
│ │ └── omap_header
│ └── #1:0ec1d93a:::zone_info.fa15c50d-1027-4f2c-b2e6-972a058506a5:head#
│ ├── attr
│ │ ├── _
│ │ └── snapset
│ ├── bitwise_hash
│ ├── data
│ ├── omap
│ └── omap_header
├── bitwise_hash_bits
├── bitwise_hash_end
├── bitwise_hash_start
├── by_bitwise_hash
└── pgmeta├── attr├── bitwise_hash├── data├── omap│ ├── 0000000017.00000000000000000001│ ├── 0000000067.00000000000000000002│ ├── _biginfo│ ├── _epoch│ ├── _info│ ├── _infover│ └── may_include_deletes_in_missing└── omap_header11 directories, 28 files
3、模拟故障
1>选取pg 1.10模拟故障,模拟故障环境,使用ceph-objectstore-tool,删除三副本中两个副本上的同一个对象。
[root@rbd01 ~]# ceph pg ls|grep 1.10
1.10 1 0 0 0 805 0 0 2 active+clean 2m 67'2 140:278 [1,2,3]p1 [1,2,3]p1 2023-03-11 09:10:17.550546 2023-03-11 09:10:17.5505462> 使用ceph-objectstore-tool前,需要停掉该osd服务,使用systemctl stop ceph-osd@{id}
systemctl stop ceph-osd2
systemctl stop ceph-osd@3
相关文章:
二十一、PG管理
一、 PG异常状态说明 1、 PG状态介绍 可以通过ceph pg stat命令查看PG当前状态,健康状态为“active clean” [rootrbd01 ~]# ceph pg stat 192 pgs: 192 activeclean; 1.3 KiB data, 64 MiB used, 114 GiB / 120 GiB avail; 85 B/s rd, 0 op/s2、pg常见状态 状…...

SAPUI5开发01_01-Installing Eclipse
1.0 简要要求概述: 本节您将安装SAPUI 5,以及如何在Eclipse Juno中集成SAPUI 5工具。 1.1 安装JDK JDK 是一种用于构建在 Java 平台上发布的应用程序、Applet 和组件的开发环境,即编写 Java 程序必须使用 JDK,它提供了编译和运行 Java 程序的环境。 在安装 JDK 之前,首…...

Qt之高仿QQ系统设置界面
QQ或360安全卫士的设置界面都是非常有特点的,所有的配置项都在一个垂直的ScrollArea中,但是又能通过左侧的导航栏点击定位。这样做的好处是既方便查看指定配置项,又方便查看所有配置项。 一.效果 下面左边是当前最新版QQ的系统设置界面,右边是我的高仿版本,几乎一毛一样…...

JVM概览:内存空间与数据存储
核心的五个部分虚拟机栈:局部变量中基础类型数据、对象的引用存储的位置,线程独立的。堆:大量运行时对象都在这个区域存储,线程共享的。方法区:存储运行时代码、类变量、常量池、构造器等信息,线程共享。程…...

固态存储设备固件升级方案
1. 前言 随着数字化时代的发展,数字数据的量越来越大,相应的数据存储的需求也越来越大,存储设备产业也是蓬勃发展。存储设备产业中,发展最为迅猛的则是固态存储(Solid State Storage,SSS)。数字化时代,海量…...

Python交通标志识别基于卷积神经网络的保姆级教程(Tensorflow)
项目介绍 TensorFlow2.X 搭建卷积神经网络(CNN),实现交通标志识别。搭建的卷积神经网络是类似VGG的结构(卷积层与池化层反复堆叠,然后经过全连接层,最后用softmax映射为每个类别的概率,概率最大的即为识别…...

基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)
目录 一、什么是Selenium? 二、自动化测试框架 三、自动化框架的设计和实现 四、需要改进的模块 五、总结 总结感谢每一个认真阅读我文章的人!!! 重点:配套学习资料和视频教学 一、什么是Selenium? …...

Python进阶-----高阶函数zip() 函数
目录 前言: zip() 函数简介 运作过程: 应用实例 1.有序序列结合 2.无序序列结合 3.长度不统一的情况 前言: 家人们,看到标题应该都不陌生了吧,我们都知道压缩包文件的后缀就是zip的,当然还有r…...

win10打印机拒绝访问解决方法
一直以来,在安装使用共享打印机打印一些文件的时候,会遇到错误提示:“无法访问.你可能没有权限使用网络资源。请与这台服务器的管理员联系”的问题,那为什么共享打印机拒绝访问呢?别着急,下面为大家带来相关的解决方法…...

深度学习训练营之数据增强
深度学习训练营学习内容原文链接环境介绍前置工作设置GPU加载数据创建测试集数据类型查看以及数据归一化数据增强操作使用嵌入model的方法进行数据增强模型训练结果可视化自定义数据增强查看数据增强后的图片学习内容 在深度学习当中,由于准备数据集本身是一件十分复杂的过程,…...

Tomcat安装及启动
日升时奋斗,日落时自省 目录 1、Tomcat下载 2、JDK安装及配置环境 3、Tomcat配置环境 4、启动Tomcat 5、部署演示 1、Tomcat下载 直接入主题,下载Tomcat 首先就是别下错了,直接找官方如何看是不是广告,或者造假 搜索Tomc…...

【专项训练】排序算法
排序算法 非比较类的排序,基本上就是放在一个数组里面,统计每个数出现的次序 最重要的排序是比较类排序! O(nlogn)的3个排序,必须要会!即:堆排序、快速排序、归并排序! 快速排序:分治 经典快排 def quickSort1(arr...
Android压测测试事件行为参数对照表
执行参数参数说明颗粒度指标基础参数--throttle <ms> 用于指定用户操作间的时延。 -s 随机数种子,用于指定伪随机数生成器的seed值,如果seed值相同,则产生的时间序列也相同。多用于重测、复现问题。 -v 指定输出日志的级别,…...

【观察】亚信科技:“飞轮效应”背后的数智化创新“延长线”
著名管理学家吉姆柯林斯在《从优秀到卓越》一书中提出“飞轮效应”,它指的是为了使静止的飞轮转动起来,一开始必须使很大的力气,每转一圈都很费力,但达到某一临界点后,飞轮的重力和冲力就会成为推动力的一部分…...
QT编程从入门到精通之十四:“第五章:Qt GUI应用程序设计”之“5.1 UI文件设计与运行机制”之“5.1.1 项目文件组成”
目录 第五章:Qt GUI应用程序设计 5.1 UI文件设计与运行机制 5.1.1 项目文件组成 第五章:Qt GUI应用程序设计...
(二分)730. 机器人跳跃问题
目录 题目链接 一些话 切入点 流程 套路 ac代码 题目链接 AcWing 730. 机器人跳跃问题 - AcWing 一些话 // 向上取整 mid的表示要写成l r 1 >> 1即可,向下取整 mid l r >> 1 // 这里我用了浮点二分,mid (l r) / 2,最…...

vue3使用nextTick
发现nextTick必须放在修改一个响应式数据之后,才会在onUpdated之后被调用,如果nextTick是放在所有对响应式数据修改之前,则nextTick里面的回调函数会在onBeforeUpdate方法执行前就被调用了。可是nextTick必须等到onUpdated执行完成之后执行&a…...

传统图像处理之颜色特征
博主简介 博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的,…...
GPS问题调试—MobileLog中有关GPS关键LOG的释义
GPS问题调试—MobileLog中有关GPS关键LOG的释义 [DESCRIPTION] 在mobile log中,有很多GPS相关的log出现在main log和kernel log、properties文件中,他们的意思是什么,通过这篇文档进行总结,以便在处理GPS 问题时,能够根据这些log快速的收敛问题。 [SOLUTION] 特别先提醒…...
【企业管理】你真的理解向下管理吗?
导读:拜读陈老师一篇文章《不会向下负责,你凭什么做管理者?》,引发不少共鸣,“很多管理者有一种错误的观念,认为管理是向下管理,向上负责。其实应该反过来,是向上管理,向…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践
在电商行业蓬勃发展的当下,多平台运营已成为众多商家的必然选择。然而,不同电商平台在商品数据接口方面存在差异,导致商家在跨平台运营时面临诸多挑战,如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...

如何把工业通信协议转换成http websocket
1.现状 工业通信协议多数工作在边缘设备上,比如:PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发,当设备上用的是modbus从站时,采集设备数据需要开发modbus主站;当设备上用的是西门子PN协议时…...