如何疑難排解 OpenSearch Service 網域中儲存空間不足的問題?
我的 Amazon OpenSearch Service 域存儲空間不足,我收到一個錯誤。
簡短說明
您的 OpenSearch Service 網域對處理工作負載有儲存空間需求。如果您的 OpenSearch Service 網域用完了儲存空間,可能會發生 ClusterBlockException 錯誤。例如,您將儲存裝置配置到叢集節點時,最多有 20% 的空間 (20 GB) 是預留空間。此外,Linux 等作業系統會保留 5% 的檔案系統,以支援根使用者執行的任何重要程序。如需 OpenSearch Service 儲存空間需求的詳細資訊,請參閱計算儲存需求。
若要解決儲存空間不足的問題,請完成以下步驟:
- 更新叢集碎片策略,以便碎片在所有節點上均勻分佈。
- 增加網域的 Amazon Elastic Block Store (Amazon EBS) 磁碟區的大小。您也可以將更多叢集節點新增至 OpenSearch Service 網域。
- 減少網域中儲存的資料量。您可以刪除不必要的檔案、最佳化舊索引,或減少網域的複本計數。請務必先拍攝手動快照。
**注意:**減少網域的複本計數可以降低容錯能力。最佳做法是為每個索引設定至少一個複本。 - 使用索引狀態管理 (ISM) 來管理儲存空間不足。
- 使用 Amazon CloudWatch 指標來監控叢集中的可用儲存空間量。
解決方法
更新儲存區組態設定
**重要事項:**更新組態設定之前,請確認可能觸發藍色/綠色部署的組態變更。此外,請確定您的專用主節點類型是建議的節點類型。
使用 cat 分配 (來自 Elastic 網站) 命令檢查叢集中每個節點有多少可用的儲存空間:
curl -XGET "es_endpoint/_cat/allocation?v"
若要更新您的 OpenSearch Service 網域組態設定,請完成下列步驟:
1. Python Package Index 開啟 OpenSearch Service 主控台。
2. 從導覽窗格的受管理的叢集下,選擇網域。
3. 選擇您要新增儲存空間的網域。
4. 更新您的網域設定。
注意:如果您使用 Amazon EBS 磁碟區進行儲存,請更新儲存組態設定。或者,您可以更新資料節點的數量。
5. 選擇提交。
如果您的網域使用 EBS 磁碟區進行資料儲存
如果網域使用 EBS 磁碟區進行儲存,請執行下列其中一個動作:
- 增加 EBS 磁碟區的大小。最大磁碟區大小取決於節點的執行個體類型或彈性搜尋版本類型。例如,512 GiB 是 Elasticsearch 1.5 版本的最大音量大小。
- 如果您無法增加 EBS 磁碟區的大小,請新增節點或擴展您的網域,然後選擇新的 EBS 限制。如需 EBS 磁碟區的詳細資訊,請參閱 EBS 磁碟區大小配額。
- 為您的 Amazon Simple Storage Service (Amazon S3) 建立不需要的索引備份。然後,從 OpenSearch Service 叢集中刪除索引,以釋放磁碟空間。或者,您也可以使用 Curator 在 OpenSearch Service 中輪換資料 (來自 Python Package Index 網站)。您也可以使用 ISM 輪替 OpenSearch Service 中的索引。
**注意:**您必須設定手動快照儲存庫才能建立備份。
如果您的網域使用 Amazon Elastic Compute Cloud (Amazon EC2) I3 執行個體進行資料儲存
如果您使用 Amazon EC2 I3 執行個體進行資料儲存,請執行下列其中一項操作:
- 將更多節點新增至您的 OpenSearch Service 叢集。
- 擴展執行個體類型以取得更多儲存空間。
- 從您的 OpenSearch Service 叢集中刪除任何不想要的索引。
刪除未使用或舊的索引
您可以使用以下命令檢查索引建立日期:
GET _cat/indices?h=h,s,i,id,p,r,dc,dd,ss,creation.date.string&s=creation.date.string:desc
若要刪除單一索引,請執行下列命令:
DELETE <index-name>
若要刪除多個索引,請執行下列命令:
DELETE cwl-index-*
使用 ISM 管理儲存空間不足
ISM 允許您將例行任務自動化,然後將它們套用至 OpenSearch Service 中的索引和索引模式。透過 ISM,您可以定義自訂管理政策,協助維護磁碟空間不足等問題。例如,您可以使用變換操作和 ISM 政策,根據索引大小等條件,自動刪除舊索引。當現有索引符合定義的條件時,變換操作會將目標變換至新索引。
下列範例 ISM 政策會在 50 分鐘後刪除索引:
PUT _plugins/_ism/policies/delete_ism_policy { "policy": { "policy_id": "delete_ism_policy", "description": "A simple default policy that deletes old unused indices“, "last_updated_time": 1658834661281, "schema_version": 13, "error_notification": null, "default_state": "example_hot_state", #Default state "states": [ { "name": "example_hot_state", "actions": [], "transitions": [ { "state_name": "delete", "conditions": { "min_index_age": “50m” #Note that after 50 minutes index will transit from hot_state to delete state } } ] }, { "name": "delete", #Indices moved to delete state "actions": [ { "delete": {} } ], "transitions": [] } ], "ism_template": [ { "index_patterns": [ #This ISM policy attaches to all indices for the index pattern and you can mention your index pattern here "sample*" ], "priority": 100, #Priority can be set from 0 to 100 "last_updated_time": 1658834436349 } ] } }
使用下列 API 呼叫,將 ISM 政策手動附加至索引:
POST _plugins/_ism/add/your-index-* { "policy_id": "<policy_id>" }
如需詳細資訊,請參閱如何使用 ISM 管理 Amazon OpenSearch Service 中的低儲存空間?
使用 CloudWatch 警示來監控儲存
您可以使用 CloudWatch FreeStorageSpace 指標來監控叢集中的可用儲存空間量。若要在儲存空間不足時接收通知,請設定 CloudWatch 警示。
如需更多詳細資訊,請參閱使用 Amazon CloudWatch 監控 OpenSearch 叢集指標。
相關資訊
Amazon OpenSearch Service 的最佳操作實踐
相關內容
- 已提問 1 年前lg...
- 已提問 2 個月前lg...
- 已提問 17 天前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 3 年前
- AWS 官方已更新 2 年前