索引单节点可分配分片数达到限制

2023-07-14 18:46:33 浏览数 (2)

异常现象

通过执行 GET /_cluster/allocation/explain 查看当前索引分配详情

代码语言:javascript复制
"deciders": [{
			"decider": "shards_limit",
			"decision": "NO",
			"explanation": "too many shards [1] allocated to this node for index [index-xxx], index setting [index.routing.allocation.total_shards_per_node=1]"
		}]

如果 decider 中返回 shards_limit,通常是由于配置了单节点可分配分片数达到上限而无法分配。

排查流程

执行 GET /{myIndex}/_settings 查看 index.routing.allocation.total_shards_per_node 配置的具体值,需要保证该值大于等于((主分片数 副本分片数)/ 节点数),如果该值小于会导致部分分片无法分配

解决方案

修改单节点可分配分片数大小大于(主分片数 副本分片数)/ 节点数,或-1(不限制数量)

代码语言:javascript复制
PUT /{myIndex}/_settings
{
  "index.routing.allocation.total_shards_per_node": -1
}

0 人点赞