Elasticsearch主分片變成未分配


Elasticsearch集群狀態莫名其妙變成紅色,紅色意味着有可能存在主分片未分配。本隨筆記錄了問題的排查和簡單地恢復集群。

 

 查看分配狀態

從分配詳情可以看出的確是有3個分片沒能自動分配,其中包括6號分片的主分片,因為主分片未分配意味着數據不完整,所以集群的狀態是紅色。

 

獲取分片分配解釋

執行命令

GET /_cluster/allocation/explain
{
  "index": "bigtable_v4",
  "shard": 6,
  "primary": true
}

返回結果

重點:failed to obtain in-memory shard lock

 

 

Github大佬們的解釋:

https://github.com/elastic/elasticsearch/issues/23939

 

 兩個重點:

  1. 出現這個問題的原因是原有分片未正常關閉和清理,所以當分片要重新分配回出問題節點的時候沒有辦法獲得分片鎖。
  2. 這不會造成分片數據丟失,只需要重新觸發一下分配。

 

修復

執行修復命令

POST /_cluster/reroute?retry_failed

修復結果

 Elasticsearch集群健康狀態忽然變為紅色有可能是內存不足Full GC停頓時間過長或網絡不好導致節點離線。

如果確實是網絡條件不理想可以考慮以下改善:

1.當節點離線延緩分片重新分配

PUT /_all/_settings
{
    "settings": {
      "index.unassigned.node_left.delayed_timeout": "5m"
    }
}

2.延緩網絡錯誤檢查時間

https://www.elastic.co/guide/en/elasticsearch/reference/6.8/modules-discovery-zen.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM