我的 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: 我需要多少碎片?