elasticsearch
resource_error
ai_generated
partial
ClusterHealthResponse: status=RED, unassigned_shards=5, reason=ALLOCATION_FAILED due to [1] shards not allocated because of rack awareness constraints
ID: elasticsearch/primary-shard-not-allocated-due-to-rack-awareness
78%Fix Rate
85%Confidence
1Evidence
2024-03-15First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 7.17.10 | active | — | — | — |
| 8.11.0 | active | — | — | — |
| 8.12.2 | active | — | — | — |
Root Cause
Rack awareness allocation filtering prevents primary shard allocation because no node in the required rack has enough disk space or is available.
generic中文
机架感知分配过滤阻止主分片分配,因为所需机架中没有节点具有足够的磁盘空间或可用。
Official Documentation
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cluster.html#cluster-allocation-awarenessWorkarounds
-
90% success Temporarily disable rack awareness allocation filtering: PUT _cluster/settings { "transient": { "cluster.routing.allocation.awareness.attributes": "" } } then re-enable after shards allocate
Temporarily disable rack awareness allocation filtering: PUT _cluster/settings { "transient": { "cluster.routing.allocation.awareness.attributes": "" } } then re-enable after shards allocate -
95% success Add a node in the required rack and ensure it has sufficient disk space, then use the cluster rebalance API: POST _cluster/reroute?retry_failed=true
Add a node in the required rack and ensure it has sufficient disk space, then use the cluster rebalance API: POST _cluster/reroute?retry_failed=true
中文步骤
临时禁用机架感知分配过滤:PUT _cluster/settings { "transient": { "cluster.routing.allocation.awareness.attributes": "" } },分片分配后再重新启用在所需机架中添加一个节点并确保其有足够的磁盘空间,然后使用集群重路由API:POST _cluster/reroute?retry_failed=true
Dead Ends
Common approaches that don't work:
-
65% fail
The issue is not overall disk space but the specific rack's node availability; increasing space on nodes in other racks does not satisfy the allocation filter
-
80% fail
Re-creating the index with fewer shards does not address the rack awareness constraint; the new primary shards will still fail to allocate if the same rack is unavailable