腾讯云 Elasticsearch Service(ES)是基于开源搜索引擎 Elasticsearch 打造的高可用、可伸缩的云端全看索引情况,并根据返回找到状态异常的索引
GET /_cat/indices
2.查看详细的异常信息
GET /_cluster/allocation/explain
这里通过异常信息可以看出:
(1)主分片当前处于未分配状态current_state,发生这个问题的原因是因为分配了该分片的节点已从集群中离开unassigned_info.reason;
(2)发生了上诉问题之后,分片无法自动分配分片的原因是集群中没有该分片的可用副本can_allocate;
(3)同时也给出了更详细的信息allocate_explanation 。
这种情况发生的原因是因为集群有节点下线,导致主分片已没有任何可用的分片数据,当前唯一能做的事就是等待节点恢复并重新加入集群。
注意
某些极端场景,比如单副本集群的分片发生了损坏,或是文件系统故障导致该节点被永久移除,而此时只能接受数据丢失的事实,并通过[reroute commends]1来重新分配空的主分片。
3. 分片未分配(`unassigned_info.reason`)的所有可能
小结
我们可以通过上述分析方式大概分析出集群产生未分配分片的原因,一般都可以在allocation explain api中得到想要的答案。