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

Ceph OSD 硬盘重连导致设备名变化

Ceph OSD 故障排除

问题概述

故障现象:

  • OSD 250 处于 down 状态
  • osd服务启动失败,报告 I/O 错误和权限错误
  • 疑似由于硬盘重连导致设备名变化

故障分析过程

1. 初始状态检查

# 查看 OSD 状态
ceph osd tree | grep -E "host|down"
# 结果显示:
# 250   hdd   14.60939         osd.250    down        0 1.00000 # 查看服务状态
systemctl status ceph-osd@250
# 结果:服务启动失败

2. 日志分析

journalctl -u ceph-osd@250 --no-pager | tail -20

关键错误信息:

  • bluestore(/var/lib/ceph/osd/ceph-250/block) _read_bdev_label failed to read from /var/lib/ceph/osd/ceph-250/block: (5) Input/output error
  • ** ERROR: unable to open OSD superblock on /var/lib/ceph/osd/ceph-250: (2) No such file or directory

3. 设备映射检查

# 查看 OSD 250 的设备配置
ls -la /var/lib/ceph/osd/ceph-250/
# 发现 block 设备指向:
# /dev/ceph-4375cd08-9b0e-4621-9710-88ef9d85de9c/osd-block-5aa17639-6575-42ec-a1ab-8a22be220134 -> ../dm-27# 检查物理卷状态
pvs | grep ceph-4375cd08-9b0e-4621-9710-88ef9d85de9c
# 结果:/dev/sdbk    ceph-4375cd08-9b0e-4621-9710-88ef9d85de9c lvm2 a--  14.55t     0

4. 设备测试

# 测试物理设备
dd if=/dev/sdbk of=/dev/null bs=4096 count=1 2>&1
# 结果:成功,物理设备正常# 测试逻辑卷
dd if=/dev/dm-27 of=/dev/null bs=4096 count=1 2>&1
# 结果:Input/output error - 逻辑卷无法读取

问题根因

  1. 设备名变化:由于硬盘更换,原设备名从 sdn 变为 sdbk
  2. LVM 映射问题:卷组未正确激活,导致逻辑卷无法访问
  3. 权限问题:设备重新激活后权限不正确

解决方案

步骤 1:检查卷组状态

# 查看卷组状态
vgs ceph-4375cd08-9b0e-4621-9710-88ef9d85de9c
# 结果显示:Attr 为 wz--n-(不活跃状态)

步骤 2:重新激活 LVM 卷组

# 停用卷组
vgchange -an ceph-4375cd08-9b0e-4621-9710-88ef9d85de9c# 重新激活卷组
vgchange -ay ceph-4375cd08-9b0e-4621-9710-88ef9d85de9c

步骤 3:验证设备可读性

# 测试逻辑卷是否可读
dd if=/dev/dm-27 of=/dev/null bs=512 count=1 2>&1
# 结果:成功读取

步骤 4:修复设备权限

# 检查设备权限
ls -la /dev/dm-27
# 结果:brw-rw---- 1 root disk 253, 27# 修复权限
chown ceph:ceph /dev/dm-27

步骤 5:重启 OSD 服务

# 重置服务失败状态
systemctl reset-failed ceph-osd@250.service# 启动服务
systemctl start ceph-osd@250# 检查状态
systemctl status ceph-osd@250
ceph osd tree | grep 250

常用命令参考

# 查看 OSD 状态
ceph osd tree
ceph osd status# LVM 相关命令
vgs                    # 查看卷组
lvs                    # 查看逻辑卷
pvs                    # 查看物理卷
vgchange -ay <vg_name> # 激活卷组
vgchange -an <vg_name> # 停用卷组# 设备映射
dmsetup ls             # 查看设备映射
dmsetup info <device>  # 查看设备信息# 服务管理
systemctl status ceph-osd@<id>
systemctl start ceph-osd@<id>
systemctl reset-failed ceph-osd@<id># 日志查看
journalctl -u ceph-osd@<id> --no-pager

总结

由硬盘重连导致设备名变化引起,通过重新激活 LVM 卷组和修复设备权限成功解决。关键在于:

  1. 正确诊断:通过日志分析定位到 I/O 错误
  2. 逐层排查:从物理设备到逻辑卷逐层测试
  3. 权限修复:确保 Ceph 进程有正确的设备访问权限

状态: 问题已解决,OSD 250 恢复正常运行。

http://www.dtcms.com/a/347230.html

相关文章:

  • 访问网络附加存储
  • `strcat` 字符串连接函数
  • 一文学会vue的动态权限控制
  • 3.Shell 变量入门:变量定义、赋值、取值($var)及环境变量与局部变量区别详解
  • PYTHON让繁琐的工作自动化-列表
  • 07_模块和包
  • UNet改进(34):ACmix-UNet混合架构的PyTorch
  • 动手学深度学习(pytorch版):第六章节—卷积神经网络(1)从全连接层到卷积
  • 避开MES实施的“坑”:详解需求、开发、上线决胜点
  • 自动化知识工作AI代理的工程与产品实现
  • Node.js 和 Express 面试问题总结
  • Ubuntu通过 systemd 管理 gpt4free,需为其创建 g4f.service 文件,定义服务的启动、停止等操作(未实践)
  • Java基础 8.23
  • 【8位数取中间4位数】2022-10-23
  • LangChain4J-基础(整合Spring、RAG、MCP、向量数据库、提示词、流式输出)
  • QT-常用类
  • 【GPT入门】第57课 详解 LLamaFactory 与 XTuner 实现大模型多卡分布式训练的方案与实践
  • calchash.exe和chckhash.exe计算pe文件hash值的两个实用小工具
  • 【Linux系统】命名管道与共享内存
  • 结构化数据与非结构化数据的区别、特点和应用场景
  • Games 101 第四讲 Transformation Cont(视图变换和投影变换)
  • Java22 stream 新特性 窗口算子:GathererOp 和 GatherSink
  • Flink2.0学习笔记:使用HikariCP 自定义sink实现数据库连接池化
  • 权限管理模块
  • 用 Ansible 优雅部署 Kubernetes 1.33.3(RedHat 10)
  • 第一章:启航篇 —— 新晋工程师的生存与扎根 (1)
  • TensorFlow 深度学习 开发环境搭建
  • 通过Java连接并操作MySQL数据库
  • 多智能体篇:智能体的“语言”——ACL协议与消息队列实现
  • 高斯分布的KL散度计算