CEPH
    CEPH
    • CEPH
    • Ceph 恢复速度优化指南
    • CEPH,PG操作
    • BlueStore替换硬盘
    • Ceph去掉PG操作步骤
    • ceph离线osd处理
    • CEPH集群的健康指标
    • CEPH删除OSD
    • VG扩容
    • CEPH更换硬盘

    CEPH集群的健康指标

    CEPH集群的健康状态分为 HEALTH_OK(正常)、HEALTH_WARN(警告)和 HEALTH_ERR(严重错误)三类。当集群出现以下情况时,会触发 HEALTH_ERR 状态:
    一、集群整体健康状态直接报错
    集群整体状态异常
    当 ceph -s 命令输出为 HEALTH_ERR 时,表明集群存在严重问题,需立即处理。例如:
    慢请求过多或持续时间过长:若集群中慢请求(如 REQUEST_SLOW)超过 100 个,或单个慢请求持续时间超过 60 秒,会直接触发 HEALTH_ERR。
    历史慢请求记录异常:通过分析 MON 节点日志(ceph.log),若历史慢请求满足上述条件,也会触发告警。
    MON节点时间不同步
    MON节点之间的时钟偏移超过默认阈值(0.05 秒),且未配置 NTP 同步,会导致 HEALTH_ERR。
    二、PG(归置组)状态异常
    PG不一致(Inconsistent)
    PG副本间数据不一致(如对象大小不匹配或恢复失败),需手动修复(例如 ceph pg repair <pg_id>)。
    PG长时间未scrub
    若未开启 mon Warn Not De 配置,长期未执行scrub的 PG 可能导致数据不一致,触发 HEALTH_ERR。
    PG恢复失败或数据丢失
    对象丢失(UNFOUND):如 67/12247509 objects unfound 表示部分数据无法找到,需检查硬盘或网络。
    恢复过程中错误:如 14 pgs recovery_unfound 或 39 pgs inconsistent,需排查数据迁移或硬件问题。
    三、OSD(对象存储守护进程)故障
    OSD Down
    心跳超时:OSD 未在 mon_osd_report_timeout(默认 900 秒)内向 MON 发送心跳,或对等 OSD 报告其失效。
    进程崩溃或启动失败:如密钥(keyring)丢失、文件系统损坏(如 XFS 报错 error -5)或磁盘坏道。
    OSD内部错误
    自杀超时:OSD 内部操作线程因 I/O 卡死超过 osd_op_thread_suicide_timeout(默认 150 秒),进程主动退出。
    慢请求堆积:单个 OSD 慢请求超过 10 个或持续时间超过 60 秒,导致数据阻塞。
    四、其他关键组件异常
    MON 节点故障
    MON 失去法定数量:若 MON 节点数不足法定数量(如 3 节点中 2 个宕机),集群进入 HEALTH_ERR。
    MON 数据库损坏:如 leveldb/RocksDB 未正确压缩,导致元数据存储异常。
    网络问题
    网络抖动或丢包:如 ethtool -S 显示大量 rx_crc_errors 或 tx_aborted_errors,可能导致数据传输失败。
    端口连接问题:MON 或 OSD 间通信端口(如 6789)被防火墙拦截。
    五、数据冗余与容量问题
    副本数不足(Degraded)
    若 PG 的副本数低于配置值(如三副本降为 1 副本),且无法恢复,会触发 HEALTH_ERR。
    OSD 容量超限
    OSD 近满(NearFull)或满(Full):当 mon_osd_full_ratio(默认 95%)或 mon_osd_nearfull_ratio(默认 85%)被突破时,集群停止写入并报错。
    处理建议
    快速定位:通过 ceph health detail 或 ceph -s -f json 获取具体告警原因。
    修复 PG:使用 ceph pg repair 或 ceph pg deep-scrub 修复不一致。
    检查硬件:排查磁盘坏道(如 megacli 工具)或网络连通性。
    调整配置:优化慢请求阈值或扩容集群以缓解容量压力。

    修改于 2025-04-30 10:38:00
    上一页
    ceph离线osd处理
    下一页
    CEPH删除OSD
    Built with