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

踩坑:关于使用ceph pg repair引发的业务阻塞

概述

在某次故障回溯中,发现引发集群故障,slow io,pg stuck的罪魁祸首竟是做了一次ceph pg repair $pgid。然而ceph pg repair作为使用频率极高的,用来修复pg不一致的常用手段,平时可能很少注意其使用规范和可能带来的影响,更不会想到会引起业务阻塞。

产生原因

一般我们在集群中出现,active+inconsistent等状态的pg时,会想到用ceph pg repair方式根据pg log进行权威的pg 选择然后进行副本恢复。包括正常在社区搜索处理不一致,不完整的pg修复攻略,都会出现类似“先 repair试试看”等类似方法。然而作为在线业务的运维保障人员,我们需要知道一个操作的各个阶段的运行机制以及潜在风险。
当集群出现不一致时,往往pg是由deep-scrub与scrub扫描出来

deep-scrub

deep scrub本身是一种扫描检测机制,其过程会遍历目标osd上所有的object,并进行校验和匹配。因为ceph同时为了满足强一致性(所有副本写完再返回),又为了提高性能(写日志),因此可能会存在最终实际object出现写错和不一致的情况,这种情况下,deep scrub可以帮助发现潜在数据风险,提高数据可靠性。但其动作本身有会消耗大量的计算和io资源,会导致集群的性能大打折扣,在某些对性能有要求的集群中,会set nodeep-scrub flag(不关闭普通的scrub,也就是依然存在元数据校验,并不意味着关闭后集群数据没有任何校验,只是可靠性下降)。
ceph本身的op队列中,deep-scrub的op priority 只有5,即队列中,不会占据大量client op。
总得来说就是两点:1.开启deep-scrub会占用存储io,增加硬盘io压力,降低存储性能 2.ceph本身deep-scrub的op priority并不高。

ceph pg repair

查看ceph pg repair源码,其本质是,会对指定的pg先进行一次deep scrub,然而由ceph pg repair发起的deep scrub与ceph本身osd发起的deep-scrub并不同,其op priority会被设置成120,也就是说,在deep scrub本身影响集群性能的但没有引起阻塞的情况下,这次特殊的deep scrub很有可能会导致放大对集群性能,osd io的影响。
实际故障情况是,集群存在某个慢盘,写入时出现不一致,然后进行pg repair时,该硬盘直接利用率达到100%,延迟达到秒级,从而使该osd上的pg io全部阻塞卡死,最终引起业务故障。

规范

虽然pg repair有导致osd io阻塞的风险,但我们依然非常依赖其进行pg 不一致问题的修复,只要正确理解上述问题后,规范操作即可。即:
需要先用kvstore tool判断排除掉rocksdb问题,以及检查集群本身的慢盘,必须在将问题osd停止并out出集群后,再进行repair,而不是盲目直接进行repair。

相关文章:

踩坑:关于使用ceph pg repair引发的业务阻塞

概述 在某次故障回溯中,发现引发集群故障,slow io,pg stuck的罪魁祸首竟是做了一次ceph pg repair $pgid。然而ceph pg repair作为使用频率极高的,用来修复pg不一致的常用手段,平时可能很少注意其使用规范和可能带来的…...

瞬间升级!电子文档华丽变身在线题库,效率翻倍✨

👋嘿小伙伴们,有个超赞的秘籍要告诉你们——土著刷题能将你的电子文档一键变身在线题库!😉 你还没发现这个宝藏功能吗?快来瞧瞧! 🌟是不是常被一堆电子版的学习资料搞得头昏脑涨,学习…...

如何动态改变本地的ip

在当今数字化时代,网络连接已成为我们日常生活和工作中不可或缺的一部分。无论是出于隐私保护、突破地域限制,还是为了测试和优化网络应用,动态改变本地IP地址的需求日益增多。本文将详细介绍如何安全、有效地实现这一目标,旨在帮…...

Spring Boot框架在中小企业设备管理中的创新应用

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…...

Ceph入门到精通-Osd db扩容

ceph-bluestore-tool 是一个在 BlueStore 实例上执行低级管理操作的实用程序。 以下命令可用于 ceph-bluestore-tool 语法 ceph-bluestore-tool COMMAND [ --dev DEVICE … ] [ -i OSD_ID ] [ --path OSD_PATH ] [ --out-dir DIR ] [ --log-file | -l filename ] [ --deep ]c…...

windows msvc2017 x64编译AWS SDK CPP库

在本文中,我们将介绍如何编译AWS SDK C库,以便在您的项目中使用。AWS SDK C库提供了与Amazon Web Services交互的接口,允许您在C应用程序中使用AWS服务。 一、准备工作 在开始编译AWS SDK C库之前,请确保您的系统已经安装了以下…...

铜业机器人剥片 - SNK施努卡

SNK施努卡有色行业电解车间铜业机器人剥片 铜业机器人剥片技术是针对传统人工剥片效率低下、工作环境恶劣及生产质量不稳定的痛点而发展起来的自动化解决方案。 面临人工剥片的诸多挑战,包括低效率、工作环境差、人员流动大以及产品质量控制不精确等问题。 人工剥片…...

非接触式竖向位移、水平位移视频实时在线监测的设备分类及选型

前言 视觉是人工智能正在快速发展的一个分支,简单说来,机器视觉就是用机器代替人眼来做测量和判断。在结构健康自动化监测方面,机器视觉采用光学图像结合智能算法和物联网技术,利用先进的智能靶标识别及亚像素处理等技术&#xff…...

Svelte 5 正式发布:新一代前端框架!

10 月 22 日,Svelte 5 正式发布!该版本带来的更新主要包括: 重写框架:Svelte 5 是从头开始重写的,使得应用更快、更小、更可靠,并且代码更一致和符合习惯。 向后兼容:Svelte 5 几乎完全向后兼容…...

85.【C语言】数据结构之顺序表的中间插入和删除及遍历查找

目录 3.操作顺序表 1.分析中间插入函数 函数的参数 代码示例 图片分析 main.c部分改为 在SeqList.h添加SLInsert函数的声明 运行结果 2.分析中间删除函数 函数的参数 代码示例 图片分析 main.c部分改为 在SeqList.h添加SLErase函数的声明 运行结果 承接84.【C语…...

触觉智能Purple Pi OH鸿蒙开发板成功适配OpenHarmony5.0 Release,开启新征程!

10月22日,触觉智能Purple Pi OH鸿蒙开发板迎来了重大系统版本升级,成功适配OpenHarmony5.0 Release,为嵌入式开发者和科技爱好者们带来了全新的机遇与挑战! 触觉智能 Purple Pi OH 开发板一直以来都以其高品质和超高性价比而著称。…...

分布式解决方案---分布式ID

目录 是什么 特点 全局唯一 高并发 高可用 怎么做 实现方案 是什么 分布式ID是指在分布式系统中生成的唯一标识符。由于分布式系统的特点,多个节点可能会同时生成ID,因此需要确保每个ID在整个系统中是唯一的。 重点就是唯一性!&#x…...

httpd服务

文章目录 1、搭建一个网络yum源2、基于域名访问的虚拟主机3、基于端口来访问域名4、搭建个人网站5、加密访问显示自定义网页内容 1、搭建一个网络yum源 [roottest01 conf.d]# cat repo.conf <virtualhost *:80>documentroot /var/www/html/ServerName 10.104.43.154ali…...

Linux系统安装Redis详细操作步骤(二进制发布包安装方式)

安装方式介绍 在Linux系统中&#xff0c;安装软件的方式主要有四种&#xff0c;这四种安装方式的特点如下&#xff1a; 安装方式特点二进制发布包安装软件已经针对具体平台编译打包发布&#xff0c;只要解压&#xff0c;修改配置即可rpm安装软件已经按照redhat的包管理规范进…...

Jenkins和Gitlab整合构建CI/CD流水线

配置环境 虚拟机建议4G起步 192.168.58.199 192.168.58.200 部署Jenkins 部署Jenkins参考这篇文章&#xff1a;Jenkins安装部署_connecting to pkg.jenkins.io (pkg.jenkins.io)|151.-CSDN博客 安装完毕之后根据下图操作 选择git&#xff0c;添加git仓库克隆url&#xff0c;选…...

14 C语言中的关键字

C语言中的关键字 在C语言中&#xff0c;关键字是一些预定义的单词&#xff0c;它们具有特殊的意义和用途。这些关键字不能用作标识符&#xff0c;比如变量名、函数名等&#xff0c;因为它们被保留用于特定的语言结构和操作。 关键字的分类 C语言的关键字可以分为几个主要类别…...

(11)(2.1.7) FETtec OneWire ESCs(一)

文章目录 前言 1 去哪里买 2 连接 3 组态 前言 &#xff01;Note 此功能在固件版本 4.1.1 及更高版本上可用。 OneWire 是 FETtec 的 ESC 双向通信协议(ESC bi-directional communication protocol)。 FETtec OneWire ESC 的遥测信息被发送回自动驾驶仪&#xff1a; 电…...

Python 异步编程:使用 `asyncio.to_thread` 和 `asyncio.Queue` 处理任务队列

Python 异步编程&#xff1a;使用 asyncio.to_thread 和 asyncio.Queue 处理任务队列 1. 什么是 asyncio.to_thread&#xff1f;2. 什么是 asyncio.Queue&#xff1f;3. 示例代码&#xff1a;使用 asyncio.to_thread 和 asyncio.Queue 处理任务队列示例代码代码解释运行结果 4.…...

【问题解决】Flink在linux上运行成功但是无法访问webUI界面

一&#xff0c;问题 在搭建Flink的时候&#xff0c;已经在linux服务器上运行了./start-cluster.sh&#xff0c; 而且日志显示已经成功了。 服务器上也没有开启防火墙 正常来说应该能通过ip:8081来访问(8081是Flink WebUI的默认端口)&#xff0c;但是访问的时候&#xff0c;显示…...

【问题解决】pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

今天配置完poetry环境变量之后pnpm不能用了 具体报错 pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保路径正确&#xff0c;然后再试一次。 所在位置 行:1 字符: 1pnpm run dev~~~~ Ca…...

微信网页授权回调地址放多个参数的方法

https://open.weixin.qq.com/connect/oauth2/authorize?appidAPPID&redirect_uriREDIRECT_URI&response_typecode&scopeSCOPE&stateSTATE#wechat_redirect 跳转后地址 redirect_uri/?codeCODE&stateSTATE。 redirect_uri如果不进行urlencode编码, 跳转后…...

相机工作距离计算

镜头 基础参数 焦距 ​ 例如&#xff0c;使用1英寸靶面(12.8mm x 9.6mm)的相机&#xff0c;工作距离WD是300mm&#xff0c;视野FOV的高度是120mm&#xff0c;那么光学放大倍率&#x1d6fd; 9.6&#x1d45a;&#x1d45a;/120&#x1d45a;&#x1d45a;0.08 &#xff0c;…...

Pandas模块之垂直或水平交错条形图

目录 df.plot() 函数Pandas模块之垂直条形图Pandas模块之水平交错条形图 df.plot() 函数 df.plot() 是 Pandas 中的一个函数&#xff0c;用于绘制数据框中的数据。它是基于 Matplotlib 库构建的&#xff0c;可以轻松地创建各种类型的图表&#xff0c;包括折线图、柱状图、散点…...

ArcGIS必会的选择要素方法(AND、OR、R、IN等)位置选择等

今天来看看ArcGIS中的几个选择的重要使用方法 1、常规选择、 2、模糊查询、 3、组合复合条件查询&#xff08;AND、OR、IN&#xff09;&#xff0c; 4、空值NULL查询 5、位置选择 推荐学习&#xff1a; 以梦为马&#xff0c;超过万名学员学习ArcGIS入门到实战的应用课程…...

快速创建一个微信小程序,详细步骤以及示范程序代码

创建一个微信小程序涉及前端和后端的搭建与联调。以下是一个快速创建微信小程序的详细步骤以及示范程序代码。 一、注册微信小程序账号 前往微信公众平台&#xff0c;注册一个小程序账号并完成相关设置。注册完成后&#xff0c;获取小程序的AppID&#xff0c;这是后续开发过程…...

【继承】讲解

访问控制 传递下去可以一共分为四个特性 公有保护私有存在但不可见 虽然它们各自的特性不同&#xff0c;能不能使用也另说&#xff0c;但是在建立类对象的时候&#xff0c;系统都会申请相应的内存&#xff0c;也就是说&#xff0c;无论它们能不能用&#xff0c;它们都存在。 …...

无人机之低空管控技术

无人机的低空管控技术是对低空飞行活动进行管理和控制的一系列措施和技术的总称&#xff0c;旨在确保低空飞行活动的安全、有序和高效。 一、主要技术手段 雷达系统监测 原理&#xff1a;雷达是利用电磁波探测目标的电子设备&#xff0c;通过发射电磁波对目标进行照射并接收…...

探索 DevOps:从概念到实践

引言 在现代软件开发的世界中,DevOps 已成为一个热门词汇。它不仅改变了开发和运维的合作方式,还显著提升了软件交付的速度和质量。那么,究竟什么是 DevOps?它的定义和目标是什么?本文将为你详细解释 DevOps 的基本概念,并通过代码示例和图片帮助你更好地理解这一重要的…...

联通国际云视频:高清、稳定、易用的云端会议平台

一、产品概述 中国联通国际公司推出的云视频产品&#xff0c;是一款基于先进云计算技术的云会议架构平台。它旨在为用户提供高品质、方便快捷、简单易用、灵活多变、稳定可靠的视频通讯解决方案&#xff0c;满足用户随时随地高效沟通的需求。 二、主要功能 音视频及数据共享 …...

表达式求值(2020cspj)

题目描述 给定一个只包含加法和乘法的算术表达式&#xff0c;请你编程计算表达式的值。 输入格式 一行&#xff0c;为需要你计算的表达式&#xff0c;表达式中只包含数字、加法运算符 和乘法运算符 *&#xff0c;且没有括号&#xff0c;所有参与运算的数字均为 0 到 231−1…...

又拍云 wordpress使用/如何自己做网页

1.spark&#xff1a;用来实现快速而通用的集群计算平台。也可以说是一个集群计算的通用框架。 2.优点&#xff1a;能够在内存中进行计算&#xff0c;内存式存储和容错机制。 3.组件&#xff1a; 1.spark core&#xff1a;RDD&#xff0c;弹性分布式数据集&#xff1b; spark …...

wordpress添加小说板块/seo外包公司专家

nvl(round(t22.xllc/1000),0)as xllc 判断前一个值是不是null如果不是就取其值&#xff0c;如果是句为0&#xff1b; round是四舍五入&#xff0c;ceiling是向上取整...

物流网站给做软件下载/推广软件赚钱

sql注入攻击实例mysql_SQL注入攻击案例 SQL注入案例 SQL注入基本手法 整合篇 所谓的sql注入本质上还是执行sql语句 检测注入点 判断是否存在sql注入可能 判断当前表有多少字段 利用order by n select * from tag order by 2;order by n以第n个column排序,如果n大于表中…...

中山市区做网站公司/亚马逊的免费网站

导读&#xff1a;高考专业解读&#xff0c;计算机科学与技术国家重点学科&#xff0c;21所高校获评&#xff01;计算机科学与技术专业一直以来都是报考的热门&#xff0c;计算机科学与技术(0821)下设3个二级学科081201计算机系统结构&#xff1b;081202计算机软件与理论&#x…...

网站开发公司的销售方式/宁波网站建设推广公司价格

一 宏观说明 [问题] Spring的声明式事务&#xff0c;我想就不用多介绍了吧&#xff0c;一句话“自从用了Spring AOP啊&#xff0c;事务管理真轻松啊&#xff0c;真轻松&#xff1b;事务管理代码没有了&#xff0c;脑不酸了&#xff0c;手不痛了&#xff0c;一口气全配上了事务&…...

网站点击弹出下载框 怎么做/软文写手接单平台

2019独角兽企业重金招聘Python工程师标准>>> es:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/distributed-cluster.html 下一篇&#xff1a;http://my.oschina.net/qiangzigege/blog/264127 内容&#xff1a; Elasticsearch的目标是可用…...