您现在的位置是:首页 > 文章详情

ceph 集群报 mds cluster is degraded 故障排查

日期:2017-05-08点击:561

ceph 集群报 mds cluster is degraded 故障排查

ceph 集群版本:

ceph -v
ceph version 10.2.7 (50e863e0f4bc8f4b9e31156de690d765af245185)

ceph -w 查看服务状态:

mds cluster is degraded      monmap e1: 3 mons at {ceph-6-11=172.16.6.11:6789/0,ceph-6-12=172.16.6.12:6789/0,ceph-6-13=172.16.6.13:6789/0}             election epoch 454, quorum 0,1,2 ceph-6-11,ceph-6-12,ceph-6-13       fsmap e1928: 1/1/1 up {0=ceph-6-13=up:rejoin}, 2 up:standby      osdmap e4107: 90 osds: 90 up, 90 in             flags sortbitwise,require_jewel_osds       pgmap v24380658: 5120 pgs, 4 pools, 14837 GB data, 5031 kobjects            44476 GB used, 120 TB / 163 TB avail                5120 active+clean

服务日志:

fault with nothing to send, going to standby2017-05-08 00:21:32.423571 7fb859159700  1 heartbeat_map is_healthy 'MDSRank' had timed out after 152017-05-08 00:21:32.423578 7fb859159700  1 mds.beacon.ceph-6-12 _send skipping beacon, heartbeat map not healthy2017-05-08 00:21:33.006114 7fb85e264700  1 heartbeat_map is_healthy 'MDSRank' had timed out after 152017-05-08 00:21:34.902990 7fb858958700 -1 mds.ceph-6-12 *** got signal Terminated ***2017-05-08 00:21:36.423632 7fb859159700  1 heartbeat_map is_healthy 'MDSRank' had timed out after 152017-05-08 00:21:36.423640 7fb859159700  1 mds.beacon.ceph-6-12 _send skipping beacon, heartbeat map not healthy2017-05-08 00:21:36.904448 7fb85c260700  1 mds.0.1929 rejoin_joint_start2017-05-08 00:21:36.906440 7fb85995a700  1 heartbeat_map reset_timeout 'MDSRank' had timed out after 152017-05-08 00:21:36.906502 7fb858958700  1 mds.ceph-6-12 suicide.  wanted state up:rejoin2017-05-08 00:21:37.906842 7fb858958700  1 mds.0.1929 shutdown: shutting down rank 02017-05-08 01:04:36.411123 7f2886f60180  0 set uid:gid to 167:167 (ceph:ceph)2017-05-08 01:04:36.411140 7f2886f60180  0 ceph version 10.2.7 (50e863e0f4bc8f4b9e31156de690d765af245185), process ceph-mds, pid 11320282017-05-08 01:04:36.411734 7f2886f60180  0 pidfile_write: ignore empty --pid-file2017-05-08 01:04:37.291720 7f2880f40700  1 mds.ceph-6-12 handle_mds_map standby2017-05-08 01:04:44.618574 7f2880f40700  1 mds.0.1955 handle_mds_map i am now mds.0.19552017-05-08 01:04:44.618588 7f2880f40700  1 mds.0.1955 handle_mds_map state change up:boot --> up:replay2017-05-08 01:04:44.618602 7f2880f40700  1 mds.0.1955 replay_start2017-05-08 01:04:44.618627 7f2880f40700  1 mds.0.1955  recovery set is

表现现象:

此时cephfs 挂载到系统的文件夹,可以进入,无法创建文件,仅能查看目录;

故障排查解决:

参考文档
http://tracker.ceph.com/issues/19118
http://tracker.ceph.com/issues/18730

查看信息发现,是新版本的一个bug,近期我们做了一个版本升级,从10.2.5升级到10.2.7 ,升级完成不到一周:

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

解决办法:

解决办法1:

此办法为应急办法,留一个mds 节点工作,其它节点服务暂时关闭,仅剩余一个节点独立工作,不再有mds 之间的心跳监测,此问题可以规避。此步骤完成后可以按照解决办法2进行处理,彻底解决。

解决办法2:增大超时时间阀值,修改到300秒,参数如下:

在所有的mds 节点执行,

mds beacon grace 描述: 多久没收到标识消息就认为 MDS 落后了(并可能替换它)。 类型: Float 默认值: 15

参考文档:
http://docs.ceph.org.cn/cephfs/mds-config-ref/

修改参数方法:

1:可以写入ceph 配置文件

调整参数前查看:

root@jp33e514-6-10 ~]# ceph --admin-daemon /var/run/ceph/ceph-mds.jp33e514-6-10.asok config show |grep mds|grep beacon_grace 

    "mds_beacon_grace": "15",


添加配置参数:

[root@jp33e514-6-11 ceph]# more ceph.conf 

[global]

..................略。。。。。。。。。。。。

public_network = 172.17.6.0/24

cluster_network = 172.17.6.0/24

filestore_xattr_use_omap = true

osd_crush_chooseleaf_type = 1

mds_beacon_grace = 300

mds_cache_size = 2000000

mds_beacon_grace = 300    《《== 配置内容



重启服务

systemctl restart ceph-mds@jp33e514-6-10.service


systemctl status ceph-mds@jp33e514-6-10.service


确认配置生效:

ceph --admin-daemon /var/run/ceph/ceph-mds.jp33e514-6-10.asok config show |grep mds|grep beacon_grace


    "mds_beacon_grace": "300",


2:直接使用命令修改集群参数:

查看现配置:

[root@ceph-6-11 ~]# ceph --admin-daemon /var/run/ceph/ceph-mon.ceph-6-11.asok config show |grep mds|grep beacon_grace     "mds_beacon_grace": "15",

使用在线配置命令直接修改成功:

[root@ceph-6-11 ~]# ceph --admin-daemon /var/run/ceph/ceph-mon.ceph-6-11.asok config set mds_beacon_grace 300{    "success": "mds_beacon_grace = '300' (unchangeable) "}

验证:

[root@ceph-6-11 ~]# ceph --admin-daemon /var/run/ceph/ceph-mon.ceph-6-11.asok config show |grep mds|grep beacon_grace     "mds_beacon_grace": "300",  #  << === 参数已经修改成功

参数修改完成后,可开启所有已关闭mds 节点,在集群中任意关闭一个mds 主节点,状态可以同步到其它节点,其它主节点会接管服务响应,cephfs 使用不受影响。


原文链接:https://blog.51cto.com/michaelkang/1923209
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章