簡體   English   中英

Elasticsearch 快照失敗 - 無法恢復

[英]Elasticsearch Snapshot failed - Cannot Restore

我正在嘗試將數據從一個實例移動到另一個 elasticsearch 實例。 我已經創建了此處提到的角色和 s3 存儲桶。

我已經在兩個實例中注冊了存儲庫,快照創建成功,s3 有新對象。 但是當我運行恢復命令時。 我收到如下錯誤

:[{"type":"snapshot_restore_exception","reason":"[test:sample5/xcMBVd21SQky8E2TX8Z76xf] index [example] wasn't fully snapshotted - cannot restore"}]

我使用 python 腳本創建了一個快照,

path = '_snapshot/test/' + sampe_snap
url = host + path
payload = {
  "indices": "example",
  "include_global_state": False
}

r = requests.put(url, json=payload, auth=awsauth) 

返回

{"accepted":true}

為了調試,我使用了 Kibana 並搜索了快照。 它顯示如下

GET _snapshot/test/sampe_snap
    ....
    "indices" : [ "example" ],
    "include_global_state" : false,
    "state" : "PARTIAL",
    "start_time" : "2021-02-04T11:14:22.153Z",
    "start_time_in_millis" : 1612437262153,
    "end_time" : "2021-02-04T11:14:22.554Z",
    "end_time_in_millis" : 1612437262554,
    "duration_in_millis" : 401,
    "failures" : [ {
      "index" : "example",
      "index_uuid" : "example",
      "shard_id" : 3,
      "reason" : """java.nio.file.NoSuchFileException: Blob object [indices/TJz0FNoGQUfvJ5pbTFLyQ/3/index-f16nCDQoiRl4UV8vCFSA] not found: The specified key does not exist.
    (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey...;

為什么會失敗?

錯誤信息很清楚:

索引 [示例] 未完全快照 - 無法恢復

這意味着您嘗試恢復的索引沒有完全快照,因此無法恢復。

從快照細節中可以看出,它有一個state PARTIAL ,這意味着並非索引的所有分片都可以成功快照。 在您的情況下, example索引的 3 號分片未成功快照,因此,在 S3 存儲桶中找不到該分片的段(即index-f16nCDQoiRl4UV8vCFSA ),因此無法恢復索引。

您可以嘗試通過設置partial: true來恢復該部分快照,但所有丟失的分片都為空,因此您可能缺少一些數據。

也許嘗試另一個更早或更晚創建的快照。

這里的問題是快照以PARTIAL state 而不是SUCCESS state 結束。

快照以 PARTIAL state 結尾的原因是由於索引TJz0FNoGQUfvJ5pbTFLyQ (索引example的快照索引 id)的分片shard 3內的 S3 存儲庫index-f16nCDQoiRl4UV8vCFSA文件中的某些問題。 這是存儲庫損壞的明顯案例。

  "reason" : """java.nio.file.NoSuchFileException: Blob object [indices/TJz0FNoGQUfvJ5pbTFLyQ/3/index-f16nCDQoiRl4UV8vCFSA] not found: The specified key does not exist.

當集群負載很重(JVM > 80% 或 CPU 利用率 >80%)並且很少有節點從集群中退出時,會觀察到這種存儲庫損壞。

解決此問題的一種方法是刪除所有引用 index: example的快照。 這將清理索引example的 S3 快照文件,現在當您拍攝新快照時,一切都會重新開始。

為了更安全,我建議聯系 AWS 支持來修復這種類型的存儲庫損壞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM