HEALTH_WARN 1 filesystem is degraded,一直在rejoin状态

问题:ceph多 mds机制下,重启mds有个cephfs出现degraded的状态,而且备份的mds一直在rejoin。
分析

  • 原因一:在某些mds备用不够的情况下,这个问题也可能会出现,应该是集群存储压力过大,osd有pg出现stuck的情况,一旦mds重启,元数据无法恢复,自然新备用的mds会一直是rejoin的状态。

  • 原因二:看rejoin的mds日志发现

      2020-04-17 17:03:45.966 7f35f0cf3700  0 mds.beacon.shnode181 Skipping beacon heartbeat to monitors (last acked 37.75s ago); MDS internal heartbeat is not healthy!
    

此时经查阅资料问题出现在如下关键点:

The fix for this should be part of a broader fix to make the MDS only shrink its cache gradually (e.g. if the operator reduces mds_cache_memory_limit).

-原因三:

当cephfs 存储有大量数据的时候,多个主节点要同步状并进行数据交换,mds 节点有消息监测,默认设置的是15秒超时,如果15没有收到消息,就将节点踢出集群。默认的超时时间较短,会导致压力大,返回数据慢的节点异常,被反复踢出集群,刚被踢出集群,心跳又发现节点是活着的,又会将节点加入集群,加入集群后一会又被踢出,如此反复。此时ceph集群会报“mds cluster is degraded”。服务日志报“heartbeat_map is_healthy 'MDSRank' had timed out after 15”

natilus新版本这个问题比较突出,之前在luminous版本里并不会出现这个问题,standby的mds始终在rejoin状态

解决
针对原因一:

  • 此次情况比较特殊,ceph health detail命令竟然看不到stuck的osd,解决如下:
  • 把 使用率比较高的osd降权重,手动触发osd的数据迁移。
  • 重新ceph health detail命令,此时会发现stuck的osd,重启相应的osd,mds状态恢复。

针对原因二(收效甚微):

  • 调小mds mds_cache_memory_limit到40G 以下
  • # ceph tell mds.\* injectargs '--mds_cache_memory_limit=40000000000
  • 在/etc/ceph/ceph.conf修改,传到所有ceph节点

针对原因三(主要原因):

  • 方法一 mds多活热备调低敏感度,有两个操作:

    • 调高mds_beacon_grace=300,调高超时时间。

        写到/etc/ceph/ceph.conf里,传到所有mds节点,然后重启mds
      
    • mds采用热备模式,替换原来冷备模式,加快mds加入速度。

        ceph fs set <fs name> allow_standby_replay true
      
  • 方法二 mds多活热备静态目录方法,即给目录划分不同的mds

    命令:
    setfattr -n ceph.dir.pin -v 2 path/to/dir
    mkdir -p a/b
    # “a” and “a/b” both start without an export pin set
    setfattr -n ceph.dir.pin -v 1 a/
    # a and b are now pinned to rank 1
    setfattr -n ceph.dir.pin -v 0 a/b
    # a/b is now pinned to rank 0 and a/ and the rest of its children are still pinned to rank 1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值