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/

修改参数方法:

可以写入ceph 配置文件,此方法我们没有测试成功;

查看现配置:

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

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

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

验证:

[[email protected] ~]# 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 使用不受影响。

时间: 2024-10-23 13:10:25

ceph 集群报 mds cluster is degraded 故障排查的相关文章

ceph集群报 Monitor clock skew detected 错误问题排查,解决

ceph集群报 Monitor clock skew detected 错误问题排查,解决           告警信息如下: [[email protected] ceph]# ceph -w    cluster ddc1b10b-6d1a-4ef9-8a01-d561512f3c1d     health HEALTH_WARN            clock skew detected on mon.ceph-100-81, mon.ceph-100-82            Mon

ceph集群报错:HEALTH_ERR 1 pgs inconsistent; 1 scrub errors

报错信息如下: [[email protected] ~]# ceph health detail HEALTH_ERR 1 pgs inconsistent; 1 scrub errors; pg 2.37c is active+clean+inconsistent, acting [75,6,35] 1 scrub errors 报错信息总结: 问题PG:2.37c OSD编号:75,6,35 执行常规修复: ceph pg repair 2.37c 查看修复结果: [[email prot

【集群实战】NFS服务常见故障排查和解决方法

NFS,全名叫Network File System,中文叫网络文件系统,是Linux.UNIX系统的分布式文件系统的一个组成部分,可实现在不同网络上共享远程文件系统. NFS由Sun公司开发,目前已经成为文件服务的一种标准之一(RFC1904,RFC1813). 其最大的功能就是可以通过网络,让不同操作系统的计算机可以共享数据,所以可以把NFS看做是一个文件服务器.NFS缺点是其读写性能比本地硬盘要差一些. 一.NFS服务常见故障排查: NFS服务出现了故障,主要从以下几个方面检查原因: (1

Openstack之Ceph集群操作

Oepnstack之CEPH系列是根据Ceph Cookbook整理的笔记,分为以下几个部分: 1. <Ceph简介> 2. <Ceph集群操作> 3. <Ceph块设备管理与Openstack配置> 4. <深入Ceph> 5. <ceph优化与性能测试> **注意:此文对应ceph版本为10.1.2** ~~~bash #ceph -v ceph version 10.1.2(4a2a6f72640d6b74a3bbd92798bb913ed

二十八. Ceph概述 部署Ceph集群 Ceph块存储

client:192.168.4.10 node1 :192.168.4.11 ndoe2 :192.168.4.12 node3 :192.168.4.13 1.实验环境 准备四台KVM虚拟机,其三台作为存储集群节点,一台安装为客户端,实现如下功能: 创建1台客户端虚拟机 创建3台存储集群虚拟机 配置主机名.IP地址.YUM源 修改所有主机的主机名 配置无密码SSH连接 配置NTP时间同步 创建虚拟机磁盘 1.1 五台机器(包括真机)配置yum源 1.1.1 全部搭建ftp服务 1.1.2 配

CEPH -S集群报错TOO MANY PGS PER OSD

背景 集群状态报错,如下: # ceph -s cluster 1d64ac80-21be-430e-98a8-b4d8aeb18560 health HEALTH_WARN <-- 报错的地方 too many PGs per OSD (912 > max 300) monmap e1: 1 mons at {node1=109.105.115.67:6789/0} election epoch 4, quorum 0 node1 osdmap e49: 2 osds: 2 up, 2 in

从ceph集群中删除MDS server

如果你不需要cephfs,MDS就成了多余的.为了提高性能,可以把MDS卸载掉. 首先停止所有的MDS daemon: $ sudo service ceph stop mds === mds.0 === Stopping Ceph mds.0 on server-3...kill 1190...done 然后在ceph.conf中删掉MDS相关的内容: [mds] keyring = /etc/ceph/keyring.$name [mds.0] host = server-3 然后进行删除:

ceph集群增加pg报错

描述: 一个正在运行ceph集群增加pg时报错. 报错信息: Error E2BIG: specified pg_num 4096 is too large (creating 2048 new PGs on ~60 OSDs exceeds per-OSD max of 32) 解决: 由于一次增加pg数量太多导致,尝试一次增加少量pg解决此问题.或者需要调整ceph集群参数mon_osd_max_split_count默认值为32,意思为每个osd最大32个pg,调整完成后重启mon或在线调

ceph集群常用命令

结合网络.官网.手动查询等多方渠道,整理ceph维护管理常用命令,并且梳理常规命令在使用过程中的逻辑顺序.另外整理期间发现ceph 集群的命令体系有点乱,详细情况各自体验. 一:ceph集群启动.重启.停止 1:ceph 命令的选项如下: 选项简写描述 --verbose-v详细的日志. --valgrindN/A(只适合开发者和质检人员)用 Valgrind 调试. --allhosts-a在 ceph.conf 里配置的所有主机上执行,否 则它只在本机执行. --restartN/A核心转储