我们有3个数据节点集群,我们所有的索引都有1个主索引+2个副本碎片。直到几天前,集群的所有索引都以绿色状态正常运行。
由于某些原因,现在只有一个索引的状态为黄色,并有1个未分配的索引错误。当我运行_cluster/allocation/explain
时,它告诉我“分片不能分配给已经存在分片副本的同一个节点”。如果我查看Kibana上的集群运行状况,我没有在该节点上看到重复的分片。
所以我不太确定问题出在哪里。有人能在这方面给点建议吗?
发布于 2020-08-05 09:22:08
这句话是正确的。
the shard cannot be allocated to the same node on which a copy of the shard already exists
由于在存在索引的主碎片(P)的同一节点上分配副本(R)没有意义,因此的副本用于提供高可用性和容错性,并且始终分配给不存在副本的主碎片的节点。
现在,在您的示例中,您提到您有3个数据节点,并且所有索引也有3个分片(1个P+ 2R),这使得在每个数据节点上分配1个分片(无论是P分片还是R分片)是理想的。
你也是正确的,cluster health on Kibana, I don't see a duplicate shard on that node.
和它不会发生P或R可以在同一个节点上。
因为您已经使用过_cluster/allocation/explain
,所以我假设您已经知道有问题的索引,所以只需遵循discuss post中提到的建议,简而言之,,将有问题索引的副本数量减少到1或增加数据节点。
发布于 2021-07-30 12:58:05
请尝试关闭索引,然后重新打开。它强制重新分配分片,至少在我集群上是这样。
https://stackoverflow.com/questions/63253621
复制相似问题