ES故障案例——记ES数据盘故障造成集群不可用

作者:SUNNY
时间:2018-05-24


故障现象

Pending tasks任务一直有堆积,线上createindex等无法完成或创建时间较长。

原因分析

Data node某数据盘故障,创建索引时,master无法完成分片分配,导致任务阻塞,影响后续创建索引等任务。

原因理解

重新梳理看到的现象:

1, create index较慢或者或出现失败
在这里插入图片描述
2, pending task有任务堆积
在这里插入图片描述
3, GET /_cat/nodes返回500
在这里插入图片描述

根据pending task中的任务“shard-failed”,搜索master日志,找到如下一条信息
在这里插入图片描述

根据此信息,可能是/data9目录数据目录出现权限问题,但是进入到es数据目录,创建、删除、修改文件权限是正常。比较奇怪。

在官方论坛找到了一篇关于此报错的一个讨论:

https://discuss.elastic.co/t/master-node-error-read-only-file-system/121806

但此讨论与遇到问题不是同一问题。

问题追查,到此陷入困境。

仔细阅读了master的配置文件,但是master实际上并没有配置/data9这个数据目录,但master为什么会有这样报错?

猜测1:由于master机器上有2个es实例,启动时引用错配置文件

验证:验证进程打开的文件句柄,与实际不符。

猜测2:其他节点报错

验证:仔细排查挨个节点的日志,发现一data node同样有相应报错,报错与master错误日志一致。切换到对应目录,确认对应磁盘故障。

实际处理

临时方案:

在对应数据节点,临时下线故障数据目录,重启es实例。

效果验证:

GET /_cluster/pending_tasks常态下为0

tasks: []

GET /_cat/nodes返回正常结果

功能验证正常

说明:分片不能同步情况可以可以通过此接口查看/_cluster/allocation/explain?pretty&pretty

后续跟进:

增加数据盘故障监控

小结

数据节点数据盘故障,会影响到整个集群性能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值