跳至內容

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

1 分的閱讀內容
0

我的 Amazon OpenSearch Service 網域中的磁碟空間在各個節點之間分佈不平均。結果導致磁碟使用情況呈現嚴重偏斜。

簡短描述

由於以下原因,磁碟使用情況可能會呈現嚴重偏斜:

  • 叢集中的碎片大小不平均。OpenSearch Service 將碎片數量平均分佈在各個節點上,但不同的碎片大小需要不同大小的磁碟空間。
  • 節點上的可用磁碟空間。如需詳細資訊,請參閱 Elastic 網站上的以磁碟為基礎的碎片分配設定
  • 碎片分配策略不正確。

若要重新平衡 OpenSearch Service 叢集中的碎片分配,請完成一個或多個解決方案。

解決方法

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

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

GET _cat/allocation?v

若要檢查分配給每個節點的碎片以及每個碎片的大小,請執行下列 API:

GET _cat/shards?v

**注意:**上述的 API 輸出顯示了不同索引的碎片大小是否可以有所不同。

索引碎片策略不平均可能會導致資料偏斜。若要檢查索引的碎片策略,請執行下列 API:

GET _cat/indices?v

檢查各個索引的碎片大小是否相同

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

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

如果您擁有大量執行個體類別,請使用 OpenSearch Service 的 PB 等級來決定碎片大小。例如,具有多個 i3.16xlarge.search 執行個體的 OpenSearch Service 網域可以支援高達 100 GB 的碎片大小,因為可用的資源更多。如需碎片策略的詳細資訊,請參閱選擇碎片數量

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

如果您 OpenSearch Service 叢集的磁碟使用率較高,請為叢集新增更多資料節點。新增資料節點也會增加更多資源,以提高叢集效能。

**注意:**當可用儲存空間不足時,OpenSearch Service 不會自動重新平衡叢集。因此,如果資料節點的可用儲存空間耗盡,則叢集會阻止任何寫入動作。如需磁碟空間管理的詳細資訊,請參閱如何對 OpenSearch Service 網域中儲存空間不足問題進行疑難排解?

更新您的碎片策略

根據預設,Amazon OpenSearch Service 的碎片策略為 5:1,其中每個索引會分為五個主要碎片。在每個索引中,每個主要碎片也都有複本。OpenSearch Service 會自動將主要碎片和複本碎片指派到單獨的資料節點,並確保在發生故障時有備份。

若要修改 OpenSearch Service 的預設行為,請設計您的索引,使碎片依照大小平均分配。

對於現有索引,請使用重新索引 API 來變更主要碎片的數量。如需詳細資訊,請參閱 Elastic 網站上的重新索引文件。重新索引 API 可以將較小的索引合併為較大的索引,或將較大的索引分割。當較大的索引分成更多的主要碎片時,碎片大小會減少。

對於新索引,請使用索引範本 API 來定義主要和複本碎片的數量。如需詳細資訊,請參閱 Elastic 網站上的建立或更新索引範本

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

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

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

相關資訊

計算儲存需求

開始使用 Amazon Elasticsearch Service: 我需要多少碎片?

AWS 官方已更新 1 年前