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

1 分的閱讀內容
0

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

簡短描述

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

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

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

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

解決方案

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

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

GET _cat/allocation?v

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

GET _cat/shards?v

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

索引的碎片策略不均勻可能會導致資料偏差。在此情況下,較大索引的碎片僅駐留在少數節點上。若要檢查索引的碎片策略。請使用以下 API:

GET _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 網域中的低儲存空間?

更新您的碎片化策略

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

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

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

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

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

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


相關資訊

計算儲存需求

開始使用 Amazon OpenSearch Service:我需要幾個碎片?

AWS 官方
AWS 官方已更新 2 年前