zoukankan      html  css  js  c++  java
  • mds/journal.cc: 2929: FAILED assert解决

    前言

    在处理一个其他双活MDS无法启动环境的时候,查看mds的日志看到了这个错误mds/journal.cc: 2929: FAILED assert(mds->sessionmap.get_version() == cmapv),在查询资料以后,暂时得到了解决,在生产环境下还是不建议使用双活MDS

    处理步骤

    这个是双MDS多活情况下出现的一个问题,在什么情况下出现还无法判断,目前只看到是有这个问题,并且有其他人也出现了 issue17113
    按照disaster-recovery建议的步骤做了如下处理:

    备份下journal

    cephfs-journal-tool journal export backup.bin
    
    cephfs-journal-tool journal reset
    cephfs-table-tool all reset session
    

    做了上两步后环境并没有恢复,还有个下面的操作没有做,这个操作会引起数据的丢失, MDS ranks other than 0 will be ignored: as a result it is possible for this to result in data loss,所以暂缓操作

    ceph fs reset <fs name> --yes-i-really-mean-it
    

    再次启动后还是,看到日志提示的是sessionmap的问题,正常情况下这个地方重置了session应该是可以好的

    Yan, Zheng 2014年的时候在邮件列表里面提过一个配置

    mds wipe_sessions = 1
    

    当时解决一个replay的问题,尝试加入这个参数,然后启动mds

    环境恢复了变成了双active,提示还有damage,但是数据属于可访问了

    后续操作

    建议是导出数据,重新配置为主备MDS集群,然后倒入数据

    变更记录

    Why Who When
    创建 武汉-运维-磨渣 2017-04-27
  • 相关阅读:
    拓扑排序
    数论初步(费马小定理)
    HDU
    HDU
    八月馒头
    萌新仓鼠,参上!
    新姿势
    字典树
    HDU
    Codeforce
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575425.html
Copyright © 2011-2022 走看看