添加更多节点(或节点丢失)后未分配主分片

时间:2018-06-19 17:54:08

标签: elasticsearch timeout

某些索引主分片处于未分配状态,它显示红色指示器。如果我运行GET _cluster/allocation/explain,它将提供如下详细信息:

"unassigned_info": {
    "reason": "ALLOCATION_FAILED",
    "at": "2018-06-19T00:29:17.781Z",
    "failed_attempts": 5,
    "delayed": false,
    "details": "failed to create shard, failure IOException[failed to obtain in-memory shard lock]; nested: ShardLockObtainFailedException[[log_2018_05][10]: obtaining shard lock timed out after 5000ms]; ",
    "allocation_status": "deciders_no"
}

这在我们的生产环境中发生了两次。曾经是在一个网络断开中丢失多个数据节点的情况。另一个时间是我们在环境中添加了两个数据节点。

应如何处理?

1 个答案:

答案 0 :(得分:1)

原因是主分片处于未分配状态。

Elastic的支持建议使用以下API调用,该调用将重试之前失败的分片分配:

 POST _cluster/reroute?retry_failed

这应该使未分配的主分片重新路由到可用节点,并且群集应从红色变为黄色状态(这意味着所有主分片都可以,副本尚未准备好)