故障现象

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

原因分析

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

原因理解

重新梳理看到的现象:

1, create index较慢或者或出现失败

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

2, pending task有任务堆积

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

3, GET /_cat/nodes返回500

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

根据pending task中的任务“shard-failed”,搜索master日志,找到如下一条信息

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

根据此信息,可能是/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同样有相应报错,切换到对应目录,确认对应磁盘故障。

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

实际处理

临时方案:

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

效果验证:

GET /_cluster/pending_tasks常态下为0

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

GET /_cat/nodes返回正常结果

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

 

后续跟进:

增加数据盘故障监控

小结

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



相关文章:

  • 2021-05-14
  • 2021-09-27
  • 2021-08-20
  • 2021-08-02
  • 2022-01-09
  • 2021-11-06
  • 2021-11-26
  • 2022-01-14
猜你喜欢
  • 2022-03-01
  • 2021-10-29
  • 2021-10-05
  • 2021-12-02
  • 2021-06-25
  • 2021-04-18
  • 2021-07-23
相关资源
相似解决方案