You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ceph集群意外断电崩溃,如何修复Mon节点块校验和不匹配问题

Ceph集群块校验和不匹配修复及恢复指南

一、修复Mon节点块校验和不匹配

Mon日志中的block checksum mismatch是Mon数据库损坏的直接表现,按以下步骤修复:

  1. 停止故障Mon容器
    替换<fsid>为你的集群FSID(可从容器名ceph-bf74b922-5d17-11ed-977a-525400b60738-osd-2中提取bf74b922-5d17-11ed-977a-525400b60738):

    podman stop ceph-<fsid>-mon-ceph01
    cephadm rm-daemon mon.ceph01 --force
    
  2. 备份Mon数据目录

    cp -r /var/lib/ceph/<fsid>/mon/ceph-ceph01/ /root/mon-ceph01-backup-$(date +%Y%m%d)
    
  3. 修复Mon数据库

    cephadm shell -- ceph-mon --mkfs -i ceph01 --mon-data /var/lib/ceph/<fsid>/mon/ceph-ceph01/ --repair
    
  4. 重启Mon服务

    cephadm deploy mon ceph01
    

二、解决认证超时问题

Mon恢复后,重新校验admin密钥有效性:

  1. 查看当前admin密钥:
    cat /etc/ceph/ceph.client.admin.keyring
    
  2. 若密钥失效,重新生成并导入:
    cephadm shell -- ceph auth get-or-create client.admin mon 'allow *' osd 'allow *' mgr 'allow *' > /etc/ceph/ceph.client.admin.keyring
    

三、修复OSD容器异常

针对无日志输出、周期性重启的OSD:

  1. 检查OSD磁盘挂载状态

    lsblk
    

    确认OSD 2对应的磁盘是否挂载到/var/lib/ceph/<fsid>/osd/ceph-2/

  2. 修复OSD元数据

    cephadm shell -- ceph-osd -i 2 --osd-data /var/lib/ceph/<fsid>/osd/ceph-2/ --repair
    
  3. 重新部署OSD
    替换<osd-disk>为OSD 2对应的物理磁盘路径(如/dev/sdb):

    cephadm deploy osd ceph01:/dev/<osd-disk>
    

四、集群整体恢复步骤

  1. 确认Mon法定人数正常

    cephadm shell -- ceph mon stat
    

    确保输出显示quorum包含至少3个Mon节点

  2. 恢复Mgr服务

    cephadm deploy mgr ceph01
    
  3. 启动所有OSD并检查状态

    cephadm shell -- ceph osd tree
    

    启动所有标记为down的OSD,等待PG同步完成:

    cephadm shell -- ceph pg stat
    

    直到所有PG状态变为active+clean

  4. 验证集群状态

    ceph -s
    

五、防止进一步损坏的检查清单

硬件防护

  • 为所有集群节点配置UPS电源,避免意外断电
  • 检查磁盘控制器的BBU(电池备份单元)状态,确保写缓存有断电保护
  • 定期用smartctl检测磁盘健康:
    smartctl -a /dev/<disk>
    

集群配置优化

  • 确保Mon节点数量≥3,维持quorum高可用
  • 调整OSD恢复参数,平衡恢复速度与集群负载:
    cephadm shell -- ceph config set osd osd_recovery_max_active 3
    cephadm shell -- ceph config set osd osd_recovery_op_priority 3
    
  • 开启Mon数据库自动备份,配置时钟漂移阈值:
    cephadm shell -- ceph config set mon mon_clock_drift_allowed 0.1
    

运维规范

  • 每日执行集群健康检查:ceph -s、ceph health detail
  • 部署Prometheus+Grafana监控,配置磁盘、Mon、OSD状态告警
  • 定期备份Mon数据库与OSD元数据,制定灾难恢复演练计划
  • 确保NTP服务稳定运行,避免节点时钟偏差导致集群异常

内容的提问来源于stack exchange,提问作者william

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:45:21