1、发现问题
根据kinbana的monitor发现ES集群的索引分片分布不均匀,硬盘使用也不平衡。
很奇怪分片少的硬盘空间还用得多,而分片多的硬盘反而用得少,还没搞清楚原因,ES会自己平衡集群分片,由于某个节点分片少,会不停的往这个节点建分片,导致硬盘空间差距越来越大,这个问题影响到了存储,必须要解决。
2、查找解决方案
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/cluster-reroute.html
根据官方文档可以重新路由,移动分片以达到分片平衡,但由于手动执行命令太慢太累了,于是决定写个脚本,
3、最终解决方案:脚本批量移动
shell脚本:查找节点重复分片并重新路由(移动分片)
#!/bin/bash
declare -A node_group=(
["es-node-01"]="es-node-02 es-node-03 es-node-04 es-node-05 es-node-06 es-node-07"
["es-node-02"]="es-node-01 es-node-03 es-node-04 es-node-05 es-node-06 es-node-07"
["es-n