Elasticsearch再起動後のシャードが再配置されない

elasticsearch6.4.0
DataNode=3、shard=3、replica=1で運用しています。

再起動後、3台のノードは起動したのですが、起動したのですが
healthを確認すると
statusがredでunassigned_shardsに数字が残っていました。
※質問時cluster起動できないため、クエリ結果共有できないです。

そこで
http://xxx.xxx.xxx.xxx:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason
を実施したところ

packetbeat-20190328 1 p STARTED
packetbeat-20190328 1 r UNASSIGNED CLUSTER_RECOVERED
packetbeat-20190328 3 p STARTED
packetbeat-20190328 3 r UNASSIGNED CLUSTER_RECOVERED
packetbeat-20190328 4 p STARTED
packetbeat-20190328 4 r UNASSIGNED CLUSTER_RECOVERED
packetbeat-20190328 2 p STARTED
packetbeat-20190328 2 r UNASSIGNED CLUSTER_RECOVERED
packetbeat-20190328 0 p STARTED
packetbeat-20190328 0 r UNASSIGNED CLUSTER_RECOVERED

と、出てきました。
上記は一部分だけであり全体的に同様の表示がされています。

どのように解決したらよいかご教授願えますでしょうか。。。

追記
node再起動前は下記リクエストを実施しています。

curl -X PUT "XXX.XXX.XXX.XXX:9200/_cluster/settings" -H 'Content-Type: application/json' -d '{"persistent": {"cluster.routing.allocation.enable": "none"}}'

node再起動後、primary shardの再配置が落ち着いた後に下記リクエストを実施しています。

curl -X PUT "xxx.xxx.xxx.xxx:9200/_cluster/settings" -H 'Content-Type: application/json' -d '{"persistent": {"cluster.routing.allocation.enable": "all"}}'

以下を実行すると、 UNASSIGNEDな理由を表示できますが、
確認することは可能でしょうか?

GET _cat/shards?v&h=index,shard,prirep,state,unassigned.reason&s=state:asc

yoshiokaさん

ご返信ありがとうございます。
確認してみたところ、Diskの容量の85%に達していたため、ロックがかかっておりました。
ロックがかかっていたため、配置が止まっていたようです。

ディスクを拡張することで再配置が行われるようになりました!

ありがとうございます。

1 Like