為什麼無法刪除索引或升級 Amazon OpenSearch Service 叢集?
我無法刪除索引或升級 Amazon OpenSearch Service 叢集。為什麼會發生此情況?
簡短描述
如果您嘗試刪除索引或升級 OpenSearch Service 叢集,可能會因下列原因而未能作出變更:
- 正在建立快照。
- 在建立快照的過程中卡住。
- 建立快照時出現紅色狀態的叢集。
- 快照逾時或未能建立。
如需有關 OpenSearch Service 升級失敗的詳細資訊,請參閱疑難排解升級問題。如需 OpenSearch Service 叢集之紅色運作狀態的詳細資訊,請參閱紅色叢集狀態。
解決方案
正在建立快照
建立快照時,您可能會遇到下列其中一個錯誤訊息:
- 「先前的快照作業尚未完成」(在叢集升級期間)
- 「無法刪除正在建立快照的索引」(刪除索引時)
如果您收到錯誤訊息,請嘗試下列步驟:
1. 如果是已加密的網域,請使用下列語法來檢查是否正在建立自動化快照:
curl -XGET "https://domain-endpoint/_snapshot/cs-automated-enc/_status"
2. 如果是未加密的網域,請使用下列語法來檢查是否正在建立自動化快照:
curl -XGET "https://domain-endpoint/_snapshot/cs-automated/_status"
如果沒有執行中的快照,那麼就會顯示下列輸出:
{ "snapshots": [] }
空括號表示您是否可以安全地刪除索引或執行升級。如果 OpenSearch Service 無法檢查是否正在建立快照,則操作可能會失敗。
在建立快照的過程中卡住
1. 使用下列命令語法來檢查每小時建立快照的開始與結束時間:
curl -XGET "https://domain-endpoint/_cat/snapshots/cs-automated?v&s=id"
2. 通過 awk 命令管道使用 cURL 輸出列印開始時間:
curl -XGET "https://domain-endpoint/_cat/snapshots/cs-automated?v&s=id" | awk -F" " ' { print $4 } '
輸出代表每小時建立快照的時間。例如,此輸出表示會在每小時的 52 分左右執行輸出:
22:51:11 23:51:18 00:51:19 01:51:14 02:51:16 03:51:18 04:51:16 05:51:11
3. 查看您的 OpenSearch Service 升級資格。
**重要事項:**在完成建立快照之前,請勿執行升級資格檢查。
使用快照狀態 API 來檢查快照是否已完成。擷取快照時,快照狀態 API 會傳回空白集。如果目前的狀態顯示正在建立快照,而且狀態維持不變有一段時間,那麼您的快照程序可能停滯了。這同樣適用於已停止的快照,也可以預防建立其他快照。如果叢集處於紅色狀態,或出現寫入區塊,請清除狀態或區塊以解決故障。
**注意:**在設定變更後,快照中的資料可能會變更。因此,請不要使用排定工作的快照。
建立快照時出現紅色狀態的叢集
1. 若只要列出註冊至網域的儲存庫名稱,請使用下列語法:
curl -XGET "http://domain-endpoint/_cat/repositories?v&h=id"
2. 若要列出註冊至網域的儲存庫名稱、類型和其他設定,請使用下列語法:
curl -XGET "http://domain-endpoint/_snapshot?pretty" curl -XGET "https://domain-endpoint/_cluster/state/metadata"
3. 檢查您是否可以在每個儲存庫中列出快照,不包括 cs-automated 或 cs-automated-enc 儲存庫。如果你有幾個存儲庫,請使用下列的 bash 指令碼:
#!/bin/bash repos=$(curl -s https://domain-endpoint/_cat/repositories 2>&1 |grep -v "cs-automated" | awk '{print $1}') for i in $repos; do echo "Snapshots in ... :" $i >>/tmp/snapshot `curl -s -XGET https://domain-endpoint/_cat/snapshots/$i >> /tmp/snapshot` \echo "done..." done
**重要提示:**在 cs-automated 或 cs-automated-enc 中卡住的快照不能被手動刪除。
4. 若要檢視 /tmp/snapshot 資料夾中的輸出,請使用下列語法:
cat /tmp/snapshot
此命令會傳回類似下列的回應:
Snapshots in ... : snapshot-manual-repo axa_snapshot-1557497454881 SUCCESS 1557639400 05:36:40 1557639405 05:36:45 4.6s 7 31 0 31 2019-05-15 SUCCESS 1560503610 09:13:30 1560503622 09:13:42 11.8s 4 16 0 16 epoch_test SUCCESS 1569151317 11:21:57 1569151335 11:22:15 18.1s 15 56 0 56
傳回的錯誤訊息顯示 Amazon Simple Storage (Amazon S3) 儲存貯體已被刪除,並註冊為快照儲存庫:
Snapshots in ... : snapshot-manual-repo { "error": { "root_cause": [{ "type": "repository_exception", "reason": "[snapshot-manual-repo] could not read repository data from index blob" }], "type": "repository_exception", "reason": "[snapshot-manual-repo] could not read repository data from index blob", "caused_by": { "type": "i_o_exception", "reason": "Exception when listing blobs by prefix [index-]", "caused_by": { "type": "a_w_s_security_token_service_exception", "reason": "a_w_s_security_token_service_exception: User: arn:aws:sts::999999999999:assumed-role/cp-sts-grant-role/swift-us-east-1-prod-666666666666 is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::666666666666:policy/my-manual-es-snapshot-creator-policy (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID: 6b9374fx-11xy-11yz-ff66-918z9bb08193)" } } }, "status": 500 }
5. 確認已從 Amazon S3 儲存貯體中刪除手動快照儲存庫:
aws s3 ls | grep -i "snapshot-manual-repo"
**注意:**以您的儲存貯體名稱替換 snapshot-manual-repo。
6. 從您的叢集中刪除儲存庫:
curl -XDELETE "https://domain-endpoint/_snapshot/snapshot-example-manual-repo"
快照逾時或未能建立
如果您收到快照逾時或未能建立的訊息,請執行下列步驟:
1. 檢查您是否可以手動建立快照。如果您遇到未能手動建立快照錯誤,請呼叫 _cat/snapshots API:
curl -XGET "https://domain-endpoint/_cat/snapshots/s3_repository"
2. 以 Amazon S3 儲存貯體的名稱替換 s3_repository。此語法可以檢查當前快照的運行時間。如果持續的時間看起來合理,請等候快照完成,然後嘗試再次建立快照。
**注意:**您的快照持續時間可能較長,具體取決於索引的大小或叢集的資源消耗量。
3. 檢查叢集的運作狀態:
curl -XGET "https://domain-endpoint/_cluster/health?pretty"
如果叢集的運作狀態為紅色,請先找出並解決造成紅色叢集狀態的根本原因。如果 OpenSearch Service 正在重新放置或初始化碎片,請等待程序完成後再設定任何存取政策。請注意,重新分配碎片可能會嚴重限制叢集的計算資源。如需有關紅色叢集疑難排解的詳細資訊,請參閱紅色叢集狀態。
相關資訊
相關內容
- 已提問 1 年前lg...
- 已提問 1 年前lg...
- 已提問 2 年前lg...
- 已提問 1 年前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前