如何重新平衡 Amazon OpenSearch Service 叢集中不均勻的碎片分佈?

上次更新日期:2021 年 9 月 23 日

我的 Amazon OpenSearch Service 網域中的磁碟空間在節點之間的分配不均勻。因此,磁碟使用量嚴重偏差。如何重新平衡節點分佈?

簡短描述

磁碟使用量之所以嚴重偏差,可能是下列原因:

  • 叢集中的碎片大小不均勻。雖然 OpenSearch Service 會將碎片數量平均分配到節點之間,但不同的碎片大小可能需要不同數量的磁碟空間。
  • 節點上的可用磁碟空間。(如需詳細資訊,請參閱 Elasticsearch 網站上的磁碟式碎片分配。)
  • 碎片分配策略不正確。(如需詳細資訊,請參閱 OpenSearch Service 碎片分配的揭秘。)

若要重新平衡 OpenSearch Service 叢集中的碎片分配,請考慮下列方法:

  • 檢查碎片分配、碎片大小,和索引碎片化策略。
  • 確保索引之間的碎片大小相同。
  • 將碎片大小保持在 10 GB 到 50 GB 之間,以獲得更好的效能。
  • 將更多資料節點新增至您的 OpenSearch Service 叢集。
  • 更新您的碎片化策略。
  • 刪除舊的或未使用的索引,以釋出磁碟空間。

解決方案

檢查碎片分配、碎片大小,和索引碎片化策略

若要檢查分配給每個節點的碎片數量和使用在每個節點的磁碟空間量,請使用以下 API:

$ curl -XGET ES_Endpoint/_cat/allocation?v

若要檢查分配給每個節點的碎片和每個碎片的大小,請使用以下 API:

$ curl -XGET ES_Endpoint/_cat/shards?v

注意: 此 API 顯示碎片的大小可以根據不同的索引而有所不同。

採取索引的不均勻碎片化策略可能會導致資料偏差,其中較大索引的碎片只存在於少數節點上。使用以下 API 檢查索引的碎片化策略:

$ curl -XGET ES_Endpoint/_cat/indices?v

確保索引之間的的碎片大小相同

如果索引大小差距頗大,請在達到特定索引大小時,使用變換索引 API 建立新的索引。或者,您可以使用索引狀態管理 (ISM) 為 OpenSearch Service 7.1 及更新版本建立新的索引。如需有關使用 ISM 滾動別名的詳細資訊,請參閱 Open Distro 網站上的變換

將碎片大小保持在 10 GB 到 50 GB 之間,以獲得更好的效能

如果您有大量執行個體,請為 Amazon OpenSearch Service 使用 PB 規模來確定碎片大小。例如,具有多個 i3.16xlarge.search 執行個體的 OpenSearch Service 網域因為有更多可用的資源,所以能支援多達 100 GB 的碎片大小。如需有關碎片化策略的詳細資訊,請參閱選擇碎片數量

將更多資料節點新增至您的 OpenSearch Service 叢集

如果您的 OpenSearch Service 叢集已達到高磁碟使用量等級,請將更多資料節點新增至叢集。新增資料節點也會增加更多資源,能提升叢集效能。

注意:如果缺乏可用儲存空間,OpenSearch Service 不會自動將叢集重新平衡。因此,如果資料節點用盡可用儲存空間,叢集會封鎖任何寫入。如需有關磁碟空間管理的詳細資訊,請參閱如何將儲存空間新增至 Amazon OpenSearch Service 網域?

更新您的碎片化策略

在預設情況下,OpenSearch Service 的碎片化策略為 5:1,其中每個索引分成五個主碎片。在每個索引中,每個主碎片也有自己的複本。OpenSearch Service 會自動分配主碎片和複本碎片到分開的資料節點,確保萬一故障時有備份存在。

要修改 OpenSearch Service 的預設行為,請設計您的索引,使得碎片按大小平均分配:

  • 對於現有的索引,使用 reindex API 來變更主碎片的數量。_reindex API 可用於將較小的索引合併成更大的索引,或者也可以用來分割較大的索引。當較大的索引分割成更多主碎片時,碎片大小會減少。
  • 對於新索引,請使用範本 API 來定義主碎片和複本碎片的數量。

然後,更新碎片的索引設定。如需詳細資訊,請參閱 Elasticsearch 網站上的更新索引設定

刪除舊的或未使用的索引,以釋出磁碟空間

OpenSearch Service 7.1 版及更新版本支援索引狀態管理。使用 ISM,您可以定義自訂管理政策,以便在訂定的期間過後刪除舊的或未使用的索引。

Amazon OpenSearch Service 是 Amazon Elasticsearch Service 的後繼者。