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 恢复正常运行。

相关推荐
qq_312920114 天前
K8s存储类(StorageClass)设计与Ceph集成实战
ceph·容器·kubernetes
1990_super12 天前
虚拟机环境部署Ceph集群的详细指南
ceph
1990_super12 天前
Ceph对象池详解
ceph
1990_super14 天前
使用ceph-deploy安装和配置RADOS Gateway (RGW)并使用S3访问集群
ceph·gateway
野生技术架构师20 天前
分布式存储 Ceph 的演进经验 · SOSP 2019
分布式·ceph
mixboot21 天前
ceph 14.2.22 nautilus Balancer 数据平衡
ceph·balancer·数据平衡
斯普信专业组25 天前
k8s云原生rook-ceph pvc快照与恢复(下)
ceph·云原生·kubernetes
斯普信专业组25 天前
k8s云原生rook-ceph pvc快照与恢复(上)
ceph·云原生·kubernetes
斯普信专业组25 天前
Ceph、K8s、CSI、PVC、PV 深入详解
ceph·容器·kubernetes