Ceph OSD.419 故障分析

Ceph OSD.419 故障分析

1. 问题描述

在 Ceph 存储集群中,OSD.419 无法正常启动,系统日志显示服务反复重启失败。

2. 初始状态分析

观察到 OSD.419 服务启动失败的系统状态:

systemctl status ceph-osd@419
● ceph-osd@419.service - Ceph object storage daemon osd.419Loaded: loaded (/usr/lib/systemd/system/ceph-osd@.service; enabled-runtime; vendor preset: disabled)Active: failed (Result: start-limit) since Thu 2025-07-17 10:55:23 CST; 2s agoProcess: 1459996 ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph (code=exited, status=1/FAILURE)

这表明 OSD 进程启动后立即失败,退出状态码为 1。

3. 日志分析

查看 OSD.419 的详细日志:

journalctl -u ceph-osd@419 -n 50

日志中发现关键错误信息:

2025-07-17 10:55:23.127 7f102fcbca80 -1 bluestore(/var/lib/ceph/osd/ceph-419/block) _read_bdev_label failed to read from /var/lib/ceph/osd/ceph-419
2025-07-17 10:55:23.127 7f102fcbca80 -1  ** ERROR: unable to open OSD superblock on /var/lib/ceph/osd/ceph-419: (2) No such file or directory

这表明 BlueStore 无法读取块设备上的标签信息,导致 OSD 无法启动。

4. 文件系统与设备链接检查

检查 OSD 数据目录及其块设备链接:

ls -la /var/lib/ceph/osd/ceph-419

输出显示目录存在且包含必要文件:

total 28
drwxrwxrwt  2 ceph ceph  200 Jun 28 22:17 .
drwxr-x--- 63 ceph ceph 4096 Apr 15 19:50 ..
lrwxrwxrwx  1 ceph ceph   93 Jun 28 22:17 block -> /dev/ceph-51f28752-dd94-4636-ad49-4f94adeec1fb/osd-block-4e392de5-7359-44a9-b5d3-2e4ad333bd87
lrwxrwxrwx  1 ceph ceph   23 Jun 28 22:17 block.db -> /dev/vg_nvme1n1/lv_sdbc
-rw-------  1 ceph ceph   37 Jun 28 22:17 ceph_fsid
-rw-------  1 ceph ceph   37 Jun 28 22:17 fsid
-rw-------  1 ceph ceph   57 Jun 28 22:17 keyring
-rw-------  1 ceph ceph    6 Jun 28 22:17 ready
-rw-------  1 ceph ceph   10 Jun 28 22:17 type
-rw-------  1 ceph ceph    4 Jun 28 22:17 whoami

进一步追踪块设备链接:

ls -la /dev/ceph-51f28752-dd94-4636-ad49-4f94adeec1fb/osd-block-4e392de5-7359-44a9-b5d3-2e4ad333bd87

输出显示其指向 /dev/dm-77

lrwxrwxrwx 1 root root 8 Jul 17 10:02 /dev/ceph-51f28752-dd94-4636-ad49-4f94adeec1fb/osd-block-4e392de5-7359-44a9-b5d3-2e4ad333bd87 -> ../dm-77

5. 设备映射与 LVM 分析

检查设备映射器信息:

dmsetup info /dev/dm-77

输出表明这是一个活跃的 LVM 设备:

Name:              ceph--51f28752--dd94--4636--ad49--4f94adeec1fb-osd--block--4e392de5--7359--44a9--b5d3--2e4ad333bd87
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        0
Event number:      0
Major, minor:      253, 77
Number of targets: 1
UUID: LVM-D48Kd1xr9eXJxf8QOiu6d1PMQH3v50ElpO9ex3rKqF3wo9n21vF32ecPkt1Fl3Xs

通过 ceph-volume 工具确认 OSD 使用的物理设备:

ceph-volume lvm list | grep osd.419 -A 50

输出确认 OSD.419 使用的是 /dev/sdbk 作为块设备,/dev/vg_nvme1n1/lv_sdbc 作为数据库设备:

===== osd.419 ======[block]       /dev/ceph-51f28752-dd94-4636-ad49-4f94adeec1fb/osd-block-4e392de5-7359-44a9-b5d3-2e4ad333bd87block device              /dev/ceph-51f28752-dd94-4636-ad49-4f94adeec1fb/osd-block-4e392de5-7359-44a9-b5d3-2e4ad333bd87block uuid                pO9ex3-rKqF-3wo9-n21v-F32e-cPkt-1Fl3Xscephx lockbox secret      cluster fsid              44599101-c099-4508-90de-5c748ea5b0f2cluster name              cephcrush device class        Nonedb device                 /dev/vg_nvme1n1/lv_sdbcdb uuid                   7Wengz-0w4M-DkOu-Uyff-FWE3-fW4f-5wiBAgencrypted                 0osd fsid                  4e392de5-7359-44a9-b5d3-2e4ad333bd87osd id                    419osdspec affinity          type                      blockvdo                       0devices                   /dev/sdbk[db]          /dev/vg_nvme1n1/lv_sdbc

6. 设备健康状态检查

系统日志中的 I/O 错误

检查系统日志中的 I/O 错误:

dmesg | grep -i error | tail -20

发现多个与 dm-77sdbc 相关的 I/O 错误:

[1593796.275701] Buffer I/O error on dev dm-77, logical block 3906468848, async page read
[1593796.738615] Buffer I/O error on dev dm-77, logical block 3906468848, async page read
[1593797.475909] Buffer I/O error on dev dm-77, logical block 0, async page read
[1593798.084174] Buffer I/O error on dev dm-77, logical block 0, async page read
[1593798.576004] Buffer I/O error on dev dm-77, logical block 0, async page read

物理设备健康状态

检查底层物理设备 /dev/sdbk 的 SMART 信息:

smartctl -a /dev/sdbk

虽然整体状态为 “PASSED”,但发现一些潜在问题指标:

  • Raw_Read_Error_Rate 值较高 (214634404)
  • Reallocated_Sector_Ct 显示有 8 个扇区被重新分配
  • Command_Timeout 值非常高 (4295032833)

直接读取测试

使用 dd 命令尝试从设备读取数据:

dd if=/dev/dm-77 of=/dev/null bs=4k count=1

结果确认存在 I/O 错误:

dd: error reading '/dev/dm-77': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.00196238 s, 0.0 kB/s

使用 BlueStore 工具检查块设备标签:

ceph-bluestore-tool show-label --dev /dev/dm-77

结果同样显示 I/O 错误:

unable to read label for /dev/dm-77: (5) Input/output error
2025-07-17 11:00:23.188 7f6fc31efec0 -1 bluestore(/dev/dm-77) _read_bdev_label failed to read from /dev/dm-77: (5) Input/output error

检查正常osd

# ls -lh /dev/ceph-1902944b-03e6-40f6-9e60-155c8eb0867a/osd-block-3a3bc0db-3cf6-40ef-948f-563e971bb455
lrwxrwxrwx 1 root root 8 Jun 29 12:35 /dev/ceph-1902944b-03e6-40f6-9e60-155c8eb0867a/osd-block-3a3bc0db-3cf6-40ef-948f-563e971bb455 -> ../dm-78
# dd if=/dev/dm-78 of=/dev/null bs=4k count=1
1+0 records in
1+0 records out
4096 bytes (4.1 kB) copied, 0.0122036 s, 336 kB/s
# ceph-bluestore-tool show-label --dev /dev/dm-78
{"/dev/dm-78": {"osd_uuid": "3a3bc0db-3cf6-40ef-948f-563e971bb455","size": 16000896466944,"btime": "2025-04-15 19:48:22.746107","description": "main","bluefs": "1","ceph_fsid": "44599101-c099-4508-90de-5c748ea5b0f2","kv_backend": "rocksdb","magic": "ceph osd volume v026","mkfs_done": "yes","osd_key": "AQB+R/5n9/t/HxAAmxcGbkW30GeHo+gMyYGLtA==","ready": "ready","require_osd_release": "14","whoami": "420"}
}

7. 故障结论

通过以上分析,可以得出以下结论:

  1. OSD.419 无法启动是因为其块设备 /dev/dm-77(对应物理设备 /dev/sdbk)存在严重的 I/O 错误
  2. 错误主要发生在逻辑块 0 处,这是关键的超级块位置,导致 BlueStore 无法读取 OSD 的元数据
  3. 物理设备 /dev/sdbk 虽然 SMART 状态为 “PASSED”,但有多个指标显示潜在问题
  4. 多次直接读取测试确认设备确实存在物理 I/O 错误

8. 解决方案

基于故障分析,建议采取以下解决措施:

短期解决方案

  1. 将 OSD 标记为 out,确保集群不会尝试向它写入数据:

    ceph osd out 419
    
  2. 尝试修复 BlueStore(成功率较低):

    ceph-bluestore-tool repair --path /var/lib/ceph/osd/ceph-419
    
  3. 如果修复失败,完全移除这个 OSD:

    ceph osd purge 419 --yes-i-really-mean-it
    

长期解决方案

  1. 更换物理硬盘 /dev/sdbk,该硬盘显示有潜在问题

  2. 使用新硬盘创建新的 OSD:

    ceph-volume lvm create --data /dev/NEW_DISK --db /dev/vg_nvme1n1/lv_sdbc
    
  3. 定期检查所有 OSD 的物理设备健康状态,设置监控预警

9. 经验总结

  1. 在 Ceph 集群中,OSD 故障通常可以追溯到底层物理设备问题
  2. 完整的故障分析应包括:服务状态、日志分析、设备链接追踪、物理设备健康检查和直接 I/O 测试
  3. 即使 SMART 状态显示为 “PASSED”,也应关注各项指标的异常值
  4. 在处理 I/O 错误时,通常更换设备是最可靠的长期解决方案
  5. 维护良好的监控系统可以帮助提前发现潜在的硬件问题,避免服务中断

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/89709.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL持久化原理及其常见问题

目录 MySQL刷盘原理 脏页和干净页 MySQL出现短暂的堵塞SQL现象 情况分析 应对措施 数据库表中数据删除原理 删除表中数据数据库空间大小不会改变 情况分析 应对措施 MySQL刷盘原理 一般主要分为两个步骤 内存更新和 redo log 记录是同一事务修改的两个必要操作&#…

VSCode中Cline无法正确读取终端的问题解决

出现的问题是:Cline 无法正确读取终端输出。 Shell Integration Unavailable Cline won’t be able to view the command’s output. Please update VSCode (CMD/CTRL Shift P → “Update”) and make sure you’re using a supported shell: zsh, bash, fish, o…

scalelsd 笔记 线段识别 本地部署 模型架构

ant-research/scalelsd | DeepWiki https://arxiv.org/html/2506.09369?_immersive_translate_auto_translate1 https://gitee.com/njsgcs/scalelsd https://github.com/ant-research/scalelsd https://huggingface.co/cherubicxn/scalelsd 模型链接: https…

Python, C ++开发个体户/个人品牌打造APP

个体户/个人品牌打造APP开发方案(Python C)一、技术选型与分工1. Python- 核心场景:后端API开发、数据处理、内容管理、第三方服务集成(如社交媒体分享、支付接口)。- 优势:开发效率高,丰富的库…

SQLAlchemy 常见问题笔记

文章目录SQLAlchemy Session对象如何操作数据库SQLAlchemy非序列化对象如何返回1.问题分析2.解决方案方法1:使用 Pydantic 响应模型(推荐)方法2:手动转换为字典(简单快速)方法3:使用 SQLAlchemy…

Shell脚本-uniq工具

一、前言在 Linux/Unix 系统中,uniq 是一个非常实用的文本处理命令,用于对重复的行进行统计、去重和筛选。它通常与 sort 搭配使用,以实现高效的文本数据清洗与统计分析。无论是做日志分析、访问频率统计,还是编写自动化脚本&…

氛围编码(Vice Coding)的工具选择方式

一、前言 在写作过程中,我受益于若干优秀的博客分享,它们给予我宝贵的启发: 《5分钟选对AI编辑器,每天节省2小时开发时间让你早下班!》:https://mp.weixin.qq.com/s/f0Zm3uPTcNz30oxKwf1OQQ 二、AI编辑的…

[硬件电路-57]:根据电子元器件的受控程度,可以把电子元器件分为:不受控、半受控、完全受控三种大类

根据电子元器件的受控程度,可将其分为不受控、半受控、完全受控三大类。这种分类基于元器件的工作状态是否需要外部信号(如电压、电流、光、热等)的主动调控,以及调控的精确性和灵活性。以下是具体分类及实例说明:一、…

基于Pytorch的人脸识别程序

人脸识别原理详解人脸识别是模式识别和计算机视觉领域的重要研究方向,其目标是从图像或视频中识别出特定个体的身份。现代人脸识别技术主要基于深度学习方法,特别是卷积神经网络 (CNN),下面从多个维度详细解析其原理:1. 人脸识别的…

ubuntu 开启ssh踩坑之旅

文章目录确认当前用户为普通用户 or root命令使用ssh还是sshd服务名称的由来apt update和apt upgrade的关系apt upgrade报错:“E: 您在 /var/cache/apt/archives/ 上没有足够的可用空间”开启ssh步骤错误排查查看日志修改sshd_config文件允许防火墙通过22端口确认当…

力扣:动态规划java

sub07 线性DP - O(1) 状态转移2_哔哩哔哩_bilibili 跳楼梯 class Solution {public int climbStairs(int n) {if (n < 1) {return 1; // 处理边界情况}int[] dp new int[n 1]; // 创建长度为n1的数组&#xff0c;比方说跳二级楼梯dp[0] 1; // 初始值设定dp[1] 1;for (…

React Native打开相册选择图片或拍照 -- react-native-image-picker

官方文档&#xff1a;https://www.npmjs.com/package/react-native-image-picker 场景&#xff1a;点击按钮打开相册选择图片或者点击按钮拍照 import { launchCamera, launchImageLibrary } from react-native-image-picker;// ... <TouchableOpacityactiveOpacity{0.7}o…

USRP B210生成信号最大带宽测试之Frank

书接上文&#xff1a; USRP B210生成LFM,SFM,BPSK,Frank信号的最大带宽测试&#xff08;一&#xff09; USRP B210生成信号最大带宽测试&#xff08;二&#xff09;SFM USRP B210生成信号最大带宽测试&#xff08;三&#xff09;LFM USRP B210生成信号最大带宽测试之BPSK …

pages.json页面路由中,globalStyle的各个属性

欢迎来到我的UniApp技术专栏&#xff01;&#x1f389; 在这里&#xff0c;我将与大家分享关于UniApp开发的实用技巧、最佳实践和项目经验。 专栏特色&#xff1a; &#x1f4f1; 跨平台开发一站式解决方案 &#x1f680; 从入门到精通的完整学习路径 &#x1f4a1; 实战项目经…

[前端技术基础]CSS选择器冲突解决方法-由DeepSeek产生

在 CSS 中&#xff0c;当多个选择器对同一元素的相同属性&#xff08;如颜色&#xff09;定义发生冲突时&#xff0c;浏览器会通过层叠规则&#xff08;Cascading&#xff09;解决冲突。具体优先级从高到低如下&#xff1a;1. !important 规则&#xff08;最高优先级&#xff0…

解决 IDEA 中 XML 文件的 “URI is not registered” 报错

解决 IDEA 中 XML 文件的 “URI is not registered” 报错 在使用 IDEA 开发时&#xff0c;XML 文件&#xff08;尤其是带有 DTD 约束的配置文件&#xff0c;如 MyBatis、Spring 配置文件&#xff09;常出现 URI is not registered (Settings | Languages & Frameworks | S…

FreeBSD Conda Python3.12下安装GPT4Free(g4f)0.5.7.3版本

FreeBSD下不能直接安装g4f&#xff0c;因为Curl_cffi这个库装不上。0.5.0.3这个版本不需要这个库&#xff0c;所以可以安装。 那么就没有办法安装新版本了吗&#xff1f; 有的&#xff0c;就是在linux仿真环境下。 Linux仿真环境安装g4f 最简单的方法是使用chroot进入linux仿…

Node.js 中基于请求 ID 实现简单队列(即时阻止策略/排队等待策略)

在Node.js 中基于请求 ID 实现简单队列 下面示例演示两种策略&#xff0c;以同一个请求 ID 为单位&#xff1a; 即时阻止策略&#xff1a;如果已有相同 ID 的请求在处理&#xff0c;直接报错并返回。 排队等待策略&#xff1a;后续相同 ID 的请求不报错&#xff0c;而是挂起&…

详解如何解决Mysql主从复制延迟

解决 MySQL 主从复制延迟需要从架构设计、参数调优、硬件优化等多维度综合处理。一、根本原因分析主从延迟的本质是&#xff1a;从库的 SQL 线程重放速度 < 主库的写入速度 常见瓶颈点&#xff1a;单线程回放&#xff08;MySQL 5.6 前&#xff09;从库硬件配置低&…

Spring之事务使用指南

Spring之事务使用指南一、事务的基础概念1.1 什么是事务&#xff1f;1.2 事务的ACID特性1.3 Spring事务的核心优势二、Spring事务的核心配置三、事务传播行为&#xff08;Propagation&#xff09;3.1 常用传播行为详解3.1.1 REQUIRED&#xff08;默认值&#xff09;3.1.2 SUPPO…