当前位置: 首页 > news >正文

Ceph 测试环境 PG_BACKFILL_FULL

现象
出现异常
[WRN] PG_BACKFILL_FULL: Low space hindering backfill (add storage if this doesn’t resolve itself): 1 pg backfill_toofull
pg 32.314 is active+remapped+backfill_wait+backfill_toofull, acting [84,23,65,49,8,39]
背景:前几天ceph 集群出现full,刚清空数据

排查
进行ceph osd df,发现相关osd 还存在9 Tib空间,总空间 12 Tib,使用ceph pg 32.314 query ,查看 pg 大小为 53 GB,不存在剩余空间不足问题。

ceph osd df

在这里插入图片描述

ceph pg query

怀疑是 pg的状态机因为之前的集群full 事件卡在了某个状态,不能自动还原。
ceph在执行完peer后进行recovery和backfill。

void PrimaryLogPG::on_activate_complete()
{// all clean?if (needs_recovery()) {dout(10) << "activate not all replicas are up-to-date, queueing recovery" << dendl;queue_peering_event(PGPeeringEventRef(std::make_shared<PGPeeringEvent>(get_osdmap_epoch(),get_osdmap_epoch(),PeeringState::DoRecovery())));} else if (needs_backfill()) {dout(10) << "activate queueing backfill" << dendl;queue_peering_event(PGPeeringEventRef(std::make_shared<PGPeeringEvent>(get_osdmap_epoch(),get_osdmap_epoch(),PeeringState::RequestBackfill())));} else {dout(10) << "activate all replicas clean, no recovery" << dendl;queue_peering_event(PGPeeringEventRef(std::make_shared<PGPeeringEvent>(get_osdmap_epoch(),get_osdmap_epoch(),PeeringState::AllReplicasRecovered())));}
}

backfill 先后进行 LocalBackfillReserved和 RemoteBackfillReserved ,在RemoteReservationRejectedTooFull时,会出现PG_STATE_BACKFILL_TOOFULL 状态。理论上PG状态会在 WaitLocalBackfillReserved, WaitRemoteBackfillReserved,NotBackfilling 三个状态中一直循环,直到 集群正常。不知为啥卡在某个状态,因为当时日志级别较低,没有相关日志。

DECLARE_LOCALS;  // 声明局部变量,用于状态机上下文```boost::statechart::result
PeeringState::WaitRemoteBackfillReserved::react(const RemoteReservationRejectedTooFull &evt)
{DECLARE_LOCALS;ps->state_set(PG_STATE_BACKFILL_TOOFULL);   //hereretry();return transit<NotBackfilling>();
}恢复
手动 ceph pg repeer 32.314,重启状态转换,发现异常消失。
不要执行ceph pg force-backfill ,   会因为PG_STATE_BACKFILL_TOOFULL 状态,直接return
http://www.dtcms.com/a/391335.html

相关文章:

  • 维星AI的GEO搜索优化:企业在AI时代的可见度突围之道
  • Abp Vnext 数据库由SQL server切换MySQL
  • Linux嵌入式自学笔记(基于野火EBF6ULL):4.gcc
  • Mellanox网卡寄存器PPCC
  • [vibe code追踪] 应用状态管理 | 交互式点击 | 共享白板
  • SG-TCP232-110 单通道串口服务器,一键实现串口与以太网双向转换
  • 零基础入门神经网络:从数学公式到通俗理解
  • 坤驰科技诚邀您参加——第十三届中国光纤传大会
  • 如何找到高质量的Java项目教程?
  • 无声的战场:AUTOSAR AP日志里的谍影重重(1)
  • ThinkPHP在使用nginx反向代理后如何获取真实的Ip地址
  • LeetCode 分类刷题:2439. 最小化数组中的最大值
  • Git最佳实践(Golang示例项目)
  • 20250919在荣品RD-RK3588-MID开发板的Android13系统下使用TF卡刷机解决竖屏横用的时候的竖屏提示的问题
  • Makefile学习(三)- CFLAGS和LDFLAGS
  • React 新闻发布系统 NewSandBox侧边栏与顶部栏布局
  • ppt视频极致压缩参数
  • 49.Mysql多实例部署
  • java 上传文件和下载/预览文件 包括音频调进度条
  • 部署你的 Next.js 应用:Vercel、Netlify 和自托管选项
  • 从产品经理视角:小智AI的产品介绍与分析
  • 解决:导包红色波浪线但正常运行及其后续问题
  • webrtc弱网-LinkCapacityEstimator类源码分析与算法原理
  • vue el-autocomplete输入框自动匹配优化,建议项按高度相似降序
  • 十分钟了解@Version注解
  • vue3+ts+uniapp H5微信小程序app有截止日期的日期date-pcicker组件
  • 设计模式-观察者模式详解
  • centos7--安装海量数据库Vastbase M100
  • Apache Commons DBCP连接池生产环境配置推荐
  • 【11/20】实时数据基础:WebSocket 在 Express 和 Vue 中的整合,实现简单聊天功能