某些索引主分片处于未分配状态,它显示红色指示器。如果我运行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"
}
这在我们的生产环境中发生了两次。曾经是在一个网络断开中丢失多个数据节点的情况。另一个时间是我们在环境中添加了两个数据节点。
应如何处理?
答案 0 :(得分:1)
原因是主分片处于未分配状态。
Elastic的支持建议使用以下API调用,该调用将重试之前失败的分片分配:
POST _cluster/reroute?retry_failed
这应该使未分配的主分片重新路由到可用节点,并且群集应从红色变为黄色状态(这意味着所有主分片都可以,副本尚未准备好)