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

Ceph OSD 故障排除

问题概述

故障现象:

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

故障分析过程

1. 初始状态检查

bash 复制代码
# 查看 OSD 状态
ceph osd tree | grep -E "host|down"
# 结果显示:
# 250   hdd   14.60939         osd.250    down        0 1.00000 

# 查看服务状态
systemctl status ceph-osd@250
# 结果:服务启动失败

2. 日志分析

bash 复制代码
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. 设备映射检查

bash 复制代码
# 查看 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. 设备测试

bash 复制代码
# 测试物理设备
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:检查卷组状态

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

步骤 2:重新激活 LVM 卷组

bash 复制代码
# 停用卷组
vgchange -an ceph-4375cd08-9b0e-4621-9710-88ef9d85de9c

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

步骤 3:验证设备可读性

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

步骤 4:修复设备权限

bash 复制代码
# 检查设备权限
ls -la /dev/dm-27
# 结果:brw-rw---- 1 root disk 253, 27

# 修复权限
chown ceph:ceph /dev/dm-27

步骤 5:重启 OSD 服务

bash 复制代码
# 重置服务失败状态
systemctl reset-failed ceph-osd@250.service

# 启动服务
systemctl start ceph-osd@250

# 检查状态
systemctl status ceph-osd@250
ceph osd tree | grep 250

常用命令参考

bash 复制代码
# 查看 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 恢复正常运行。

相关推荐
三十..1 天前
Ceph分布式存储核心技术精要与运维实践指南
运维·分布式·ceph
一个行走的民1 天前
Ceph OSD NUMA 亲和性、Page Cache 跨 NUMA 访问与绑核实践
ceph
潮起鲸落入海1 天前
ceph集群组件管理 ceph orch 和ceph config命令
ceph
bukeyiwanshui1 天前
20260529 Ceph 分布式存储 认证和授权管理
ceph
bukeyiwanshui1 天前
20260528 Ceph 分布式存储 池管理
ceph
一个行走的民1 天前
CephX 认证机制深度解析
ceph
马立杰2 天前
Ceph 集群手动部署
ceph·分布式存储
bukeyiwanshui2 天前
20260528 Ceph 分布式存储 集群配置
分布式·ceph
qq_356408662 天前
Kubernetes Rook-Ceph 高可用存储部署文档
ceph·容器·kubernetes
潮起鲸落入海2 天前
ceph集群mon 以及池管理
ceph