ceph-pg状态详解

2023-11-01

Creating

    含义:PG正在创建

    引起原因:创建pool的时候,根据指定的pg数量进行创建pg时出现的状态,正常状态

    后果:无

    解决方案:无需解决,正常状态之一Peering

    含义:PG之间进行互联,就其中的对象和元数据状态达成一致

    引起原因:当pg被creating之后,会进行互联,存储归置组副本的 OSD 之间就其中的对象和元数据状态达成一致。

    后果:无

    解决方案:无需解决,正常状态之一

 

Activating

    含义:pg在完成peering过程后,会对之前的结果进行固化,等待所有pg同步,尝试进入active状态

    引起原因:pg进入active前的准备状态

    后果:如果长期卡在该状态,会影响该PG无法读写,进而影响整个pool可用性

    解决方案:停掉PG所在所有OSD

                      用ceph-object-tool进行pg数据备份

                      用ceph-object-tool在主PG上删除空的pg(不要手动删除)

                      再次使用ceph-object-tool导入数据

                      手动给该pg目录赋ceph权限

                      最后重启osd即可

 

Active

    含义:pg是活跃态,可以进行读写操作

    引起原因:正常状态

    后果:无

    解决方案:无需解决,正常状态之一

 

Backfilling

    含义:回填状态

    引起原因:这种情况一般是由于osd的离线(超过5分钟没有心跳回应),ceph找寻新的osd来替换所进行的全量数据拷贝。

    后果:出现这个状态一般都是确定有osd挂掉或者离线了

    解决方案:多数情况下ceph会自动完成数据回填,如果无法完成回填,就会进入backfill-toofull状态

 

Backfill-toofull

    含义:backfilling挂起状态

    引起原因:通常是因为osd容量不足以回填丢失的osd引起

    后果:造成pool无法写入,读写卡死。

    解决方案:需要检查osd容量,是否有严重不平衡现象,将超量osd数据手动疏散(reweight),如果是集群nearful现象,应该尽快物理扩容

                      紧急扩容方式(治标不治本,最好的方法还是扩展osd数量和容量)

                      暂停osd读写:

                             ceph osd pause

                      通知mon和osd修改full阈值

                             ceph tell mon.* injectargs "--mon-osd-full-ratio 0.96"

                             ceph tell osd.* injectargs "--mon-osd-full-ratio 0.96"

                      通知PG修改full阈值:

                             ceph pg set_full_ratio 0.96

                      解除osd禁止读写:

                             ceph osd unpause

 

Backfill-wait

    含义:PG正在等待开始回填操作。

    引起原因:OSD离线造成(未亲自捕获该状态,可能是太快了没看到)

    后果:接下来理论来讲pg会进入backfilling状态进行数据回填

    解决方案:正常的回填必经状态,无需特殊关注

 

Incomplete

    含义:peering过程中发现无法就数据状态达成一致

    引起原因:pg在选择权威日志的时候,权威日志没法完成,或者权威日志完成后和本地日志对比逻辑不正常

    后果:通常会导致pg无法创建,卡在creating+incomplete状态,进而导致pool无法使用

    解决方案:首先确认osd_allow_recovery_below_min_size为true,还有副本数量是否合理,crushmap配置的选取osd数量是否与pool一致,如果都正常,尝试执行以下恢复流程

                      停掉所有incomplete的PG对应的每一个osd

                      使用ceph-object-tool对osd进行mark complete

                      然后重启osd

 

Inconsistent

    含义:其实就是副本数据不一致的意思

    引起原因:某个副本数据未知原因丢失

    后果:副本数据不一致导致安全性下降

    解决方案:使用ceph pg repair工具进行数据修复,一般情况下都可以恢复正常,如果无法恢复

                      把三副本的osd的osd_max_scrubs都先调大,再次使用使用ceph pg repair工具进行数据修复,最后再将osd_max_scrubs调回1

 

Peered

    含义:搜索中,指的是PG找不到足够的副本来进行读写操作(连min_size都无法满足的情况下)

    引起原因:多个osd挂掉,造成当前活跃osd副本数<min_size,读写功能锁死

    后果:pg无法使用,甚至pool无法进行常规io

    解决方案:集群健康状态下,osd挂掉超过5分钟会自动remapped修复该状态,想要快速修复该状态方法有二:

                      1 尝试启动副本osd,重新加入集群,peered会自动消失

                      2 主动out掉失联的osd,ceph会自动进入修复状态

 

 

Recovering

    含义:恢复中

    引起原因:当某 OSD 挂了( down )时,其内的归置组会落后于别的归置组副本;此 OSD 重生( up )时,归置组内容必须更新到当前状态;

    后果:恢复并非总是这些小事,因为一次硬件失败可能牵连多个 OSD 。比如一个机柜或房间的网络交换机失败了,这会导致多个主机上的 OSD 落后于集群的当前状态,故障恢复后每一个 OSD 都必须恢复。

    解决方案:集群出现这个状态,说明PG正在自动恢复,等它恢复完成就好了。

 

 

Recovering-wait

    含义:等待 Recovery 资源预留

    引起原因:PG正在等待恢复。

    后果:理论来讲pg会进入recovering状态进行数据恢复

    解决方案:正常的恢复状态。

 

Remapped

    含义:重新映射态

    引起原因:当Acting集合里面的PG组合发生变化时,数据从旧的集合迁移到新的集合中。这段时间可能比较久,新集合的主OSD在迁移完之前不能响应请求。所以新主OSD会要求旧主OSD继续服务指导PG迁移完成。一旦数据迁移完成,新主OSD就会生效接受请求。

    后果:如果无法重新映射,数据就无法进行迁移,会造成数据的丢失。

    解决方案:在 OSD 挂掉或者在扩容的时候PG 上的OSD会按照Crush算法重新分配PG 所属的osd编号。并且会把 PG Remap到别的OSD上去。

·                     Remapped状态时,PG当前Acting Set与Up Set不一致。

··                    客户端IO可以正常读写。

 

Scrubbing

    含义:清理中

    引起原因:pg正在做不一致性校验。

    后果:会造成IO性能下降

    解决方案:可以根据实际环境需求,关闭该功能或者降低自检频率。

 

Unactive

    含义:非活跃态,PG 不能处理读写请求

    引起原因:PG 很长时间没有显示为 acitve 状态, (不可执行读写请求), PG 不可以执行读写,

    后果:PG 不可以执行读写

    解决方案:等待 OSD 更新数据到最新的备份状态

 

Unclean

    含义:非干净态,PG 不能从上一个失败中恢复

    引起原因:归置组里有些对象的副本数未达到期望次数,它们应该在恢复中;

    后果:数据安全性下降

    解决方案:通常都要执行恢复操作

 

Stale

    含义:为刷新态,pg没有被任何osd更新

    引起原因:很可能是osd挂掉引起的,一般情况下跟随peering状态一起出现

    模拟:手动停掉一个osd,systemctl stop ceph-osd@0,查看ceph -s 会发现在短时间内(peering之前),pg会进入stale+clean+active的特殊状态

    后果:警告标志,往往代表着osd出现异常,或者某节点断网。

    解决方案:一般情况下只需要等待peering完成即可。

 

Undersized

    含义:副本数过小

    引起原因:该PG的副本数量小于存储池所配置的副本数量。通常是由于一个osd服务down了,出现此状态。

    后果:降低数据可用性

    解决方案:调整PG所在池的副本数 osd pool default min size =1 ,不建议调整。等osd服务起来就好了

                     

 

 

down

    含义:失效

    引起原因:归置组的权威副本OSD宕机,必须等待其开机,或者被标记为lost才能继续 

    后果:这个时候该 PG 不能提供客户端 IO 读写, IO 会挂起夯住

    解决方案:将OSD服务起来。

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ceph-pg状态详解 的相关文章

  • Windows虚拟机通过libvirt使用CEPH RBD

    kvm虚拟机通过 libvirt 挂在 ceph rbd作为数据盘 一 首先确定我们的ceph环境是HEALTH OK span class token punctuation span root 64 cephmon ceph span
  • Ceph集群更改IP地址

    由于一些原因 xff0c 有时需要将Ceph集群的IP地址进行更改 xff0c 以下为更改Ceph集群IP地址的步骤 xff1a 1 更改各机器IP地址 2 更改每台机器 etc hosts文件中的ip地址 3 更改ceph conf文件中
  • ceph集群维护常用操作

    文章目录 通过套接字进行单机管理集群启停移除节点ceph配置文件存储池分类副本池IO纠删码池IO PG与PGPPG数量计算PG常见状态存储池管理创建存储池查看存储池删除存储池存储池配额 存储池可用参数存储池快照 通过套接字进行单机管理 可以
  • Ceph性能调优

    1 最佳实践 1 1 基本 监控节点对于集群的正确运行非常重要 xff0c 应当为其分配独立的硬件资源 如果跨数据中心部署 xff0c 监控节点应该分散在不同数据中心或者可用性区域日志可能会让集群的吞吐量减半 理想情况下 xff0c 应该在
  • Ceph OSD扩容与缩容

    在企业生产环境中 xff0c 随着时间的迁移数据会存在磁盘空间不足 xff0c 或者机器节点故障等情况 OSD又是实际存储数据 xff0c 所以扩容和缩容OSD就很有必要性 随着我们数据量的增长 xff0c 后期可能我们需要对osd进行扩容
  • CentOS 7部署 Ceph分布式存储架构

    一 概述 随着OpenStack日渐成为开源云计算的标准软件栈 Ceph也已经成为OpenStack的首选后端存储 Ceph是一种为优秀的性能 可靠性和可扩展性而设计的统一的 分布式文件系统 ceph官方文档 http docs ceph
  • 【Ceph】1 pools have many more objects per pg than average

    公司 Ceph 集群从 v12 升级到 v14 后 今天某个 CephFS 的集群收到一个 HEALTH WARN 的告警 具体的 Warning 的信息为 1 pools have many more objects per pg tha
  • Ceph主要概念

    目录 1 整体架构介绍 1 1 总体介绍 1 2 整体架构 2 集群管理 2 1 Monitor 2 2 心跳管理 3 数据读写 3 1 OSD 3 2 读写流程 3 3 POOL和PG 3 4 CRUSH算法 3 4 1 Straw算法
  • Linux centos 卸载 ceph

    在CentOS上卸载Ceph的操作步骤 1 停止Ceph集群 首先 你需要停止Ceph集群中的所有服务 在每个节点上运行以下命令来停止所有服务 systemctl stop ceph target 2 卸载Ceph软件包 在每个节点上 使用
  • ceph-cursh规则实战及PGS unknown 问题处理

    问题描述 root ceph mon01 ceph s cluster id 92d4f66b 94a6 4c40 8941 734f3c44eb4f health HEALTH ERR 1 filesystem is offline 1
  • Ceph入门到精通-ceph对于长文件名如何处理

    RADOS object with short name 上一篇博文 我们将介绍了对象相关的数据结构ghobject t 以及对象在底层文件系统存储的文件名 以及如何从文件名对应到 ghobject t对象 映射关系如下图所示 这里面有一个
  • Ceph性能优化总结(v0.94)

    如需转载请标明作者 原文地址 http xiaoquqi github io blog 2015 06 28 ceph performance optimization summary 最近一直在忙着搞Ceph存储的优化和测试 看了各种资料
  • ceph-deploy命令应用

    记录 336 场景 在CentOS 7 9操作系统上 使用ceph deploy创建ceph集群 部署集群的mon mgr mds osd rgw等组件 版本 操作系统 CentOS 7 9 ceph版本 ceph 13 2 10 名词 c
  • Ceph集群生产环境安装部署

    前言 ceph的组件以及工作流程非常的复杂 是一个庞大的系统 在尝试ceph之前尽量多查阅官方的文档 理解ceph的mon osd mds pg pool等各组件 Unit的协同工作方式 Ceph官方文档 一 配置规划 二 部署 1 ntp
  • Loongnix单机部署Ceph(LoongArch架构、Ceph N版、手动部署MON、OSD、MGR、Dashboard服务)

    基础环境信息 CPU 龙芯3C5000L 2 内存 128G 硬盘 系统盘 一块512G的NVME的SSD 数据盘 三块16T的HDD 操作系统版本 Loongnix 8 4 Ceph版本 Ceph 14 2 21 Nautilus Cep
  • ceph集群换盘

    一引言 某地项目运行两年后磁盘批量报错 利用smartctl检测发现出现大量扇区错误 但并未达到彻底无法读写程度 统计下来发现数量接近40块 考虑批次换盘 坏盘期间为了保证不影响业务 需拟定一个较好的方案 二 方案 在查阅一堆资料后 发现无
  • ceph分布式存储集群部署及应用

    分布式文件系统 Distributed File System 分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上 而是通过计算机网络与节点相连 分布式文件系统的设计基于C S模式 常用分布式文件系统 Lustre Ha
  • Ceph优化系列(一):Ceph架构及性能优化

    转载 Ceph架构及性能优化 对分布式存储系统的优化离不开以下几点 1 硬件层面 硬件规划 SSD选择 BIOS设置 2 软件层面 Linux OS Ceph Configurations PG Number调整 CRUSH Map 其他因
  • Ceph入门到精通-smartctl 查看硬盘参数

    smartctl 参数含义 Model Family Toshiba s Enterprise Capacity HDD Device Model TOSHIBA MG08ACss Serial Number sssssss LU WWN
  • Flink 使用 Ceph 作为持久存储

    Flink 文档建议 Ceph 可以用作状态的持久存储 https ci apache org projects flink flink docs release 1 3 dev stream checkpointing html http

随机推荐

  • 熔断,降级,限流的区别

    熔断 降级 限流 熔断 Circuit Breaking 限流 Rate Limiting 降级 Fallback 熔断 Circuit Breaking 一种用于处理依赖服务故障的策略 当依赖服务出现故障或超时 熔断机制会迅速中断对该服务
  • 【测试设计】使用jenkins 插件Allure生成自动化测试报告

    前言 以前做自动化测试的时候一直用的HTMLTestRunner来生成测试报告 后来也尝试过用Python的PyH模块自己构建测试报告 在后来看到了RobotFramework的测试报告 感觉之前用的测试报告都太简陋 它才是测试报告应该有的
  • 基于SSM + MySql + LayUI的图书管理系统

    点击下载 图书管理系统 文件大小 72M 操作系统 Windows10旗舰版 数据库 MySQL5 7 BookManageSystemLayui src main resources sql 开发工具 idea2021 JDK8 Mave
  • web前端进阶大厂面试资料合集

    最近整理了下web前端面试的资料 包含了web前端 数据结构和算法 计算机基础 版本控制工具 经验分享 视频课程和面试书籍等资料 还有比这更全的没有 废话不多说 直接上干货 欢迎收藏 不用客气 前端 面试官求你别再问我hook了 程序员必须
  • Wing IDE安装与破解方法

    WingIDE的licese破解方法 1 安装WingIDE成功后启动 激活时输入license id CN123 12345 12345 12345 2 点击Continue后弹框 拷贝框中的request code 将其放入脚本中的Re
  • 获取微信小程序登录code和获取手机号code

    index ts 获取应用实例 const app getApp
  • QT自定义槽方法

    本文简介点击窗体上的按钮后 改变窗体标题的方法 在窗体上放置好按钮之后 有以下三步操作 声明 gt 实现 gt 连接 1 声明 在头文件mainwindow h中声明一个槽 private slots void changeTitleSlo
  • pychar常用快捷键及转义符号

    Alt 1 影藏和显示项目列表 Ctrl shift F10 运行代码 Ctrl shift F4 关闭Tab 终端运行面板 Ctrl 注释代码 取消注释 Ctrl d 复制行 Ctrl L 格式化代码 PEP8编码格式 shift Alt
  • CGridCtrl(集成了打印预览与合并单元格)

    ucogrid src zip
  • 算法图解part5:散列表

    算法图解part5 散列表 1 散列 hashing 函数 2 散列表的应用 2 1将散列表用于查找 2 2防止重复 2 3用于缓存 3 冲突 4 性能 4 1填装因子 4 2良好的散列函数 5 总结 6 参考资料 1 散列 hashing
  • python图像处理opencv_Python+OpenCV图像处理——图像二值化的实现

    简介 图像二值化就是将图像上的像素点的灰度值设置为0或255 也就是将整个图像呈现出明显的黑白效果的过程 普通图像二值化 代码如下 import cv2 as cv import numpy as np 全局阈值 def threshold
  • 【深度学习系列】——神经网络的可视化解释

    这是深度学习系列的第三篇文章 欢迎关注原创公众号 计算机视觉联盟 第一时间阅读我的原创 回复 西瓜书手推笔记 还可获取我的机器学习纯手推笔记 深度学习系列 深度学习系列 深度学习简介 深度学习系列 梯度下降算法的可视化解释 动量 AdaGr
  • java面经——基础篇(1)

    目录 1 抽象类和接口有什么区别 2 静态变量和实例变量的区别 3 Integer 和 int 的区别 4 装箱和拆箱的区别 5 JDK JRE JVM 三者之间的关系 6 重载和重写的区别 7 Java 中是否可以重写一个 private
  • Java循环结构的嵌套-day11

    循环结构的嵌套 循环结构的嵌套是指一个循环体内又包含另一个循环结构 嵌套在内部的循环体中还可以嵌套循环结构 这就构成了多重循环 但嵌套的层数建议不要过多 嵌套层数过多会使程序变得难以读懂 常用的3种循环嵌套结构 带条件的循环结构 概念 在多
  • JavaScript的异步编程async、await

    1 async关键字 先说一下async的用法 它作为一个关键字放到函数前面 用于表示函数是一个异步函数 因为async就是异步的意思 异步函数也就意味着该函数的执行不会阻塞后面代码的执行 例如 async function timeout
  • Unity-3D物体的遮罩

    转自 http blog csdn net obilang article details 43878607 大致需要用到的东西 shader 材质 深度摄像机 unity实现2D遮罩找了许多的解决方法 这个是我采取的一种方法 比较便捷 但
  • c++多重继承和虚继承

    多重继承 多重继承是指从多个直接基类中产生派生类的能力 多重继承的派生类继承了所有父类的属性 struct Base1 Base1 default Base1 const string Base1 shared ptr
  • Jenkins+docker自动化部署

    参考文献 Jenkins与Docker的自动化CI CD实战 附源码 李振良 阿良 51CTO博客 遇到的问题 1 我们使用的jdk放置了微信专用的jar 所以自己建了一个基础镜像 参考文献 Docker JDK镜像制作 陌生谁家年少 CS
  • socket编程的 sendto 函数

    http see xidian edu cn cpp html 372 html 相关函数 send sendmsg recv recvfrom socket 头文件 include
  • ceph-pg状态详解

    Creating 含义 PG正在创建 引起原因 创建pool的时候 根据指定的pg数量进行创建pg时出现的状态 正常状态 后果 无 解决方案 无需解决 正常状态之一Peering 含义 PG之间进行互联 就其中的对象和元数据状态达成一致 引