2017-01-30 68 views
1

我們已經創建了新的ES集羣v5.x.我們添加了新的備份存儲庫來恢復(舊的ES 2.x)。 我們已從我們的快照中恢復,一切都很好。我們有ES快照的保留期限。 我們使用s3存儲和repository-s3插件進行備份。 雖然我們的保留期限刪除該快照,我們得到了一個錯誤:從ES 2.x遷移到ES 5.x Elasticsearch

{ 

    "error": { 
     "root_cause": [ 
      { 
       "type": "snapshot_missing_exception", 
       "reason": "[s3_repository:snapshot_201701040203/snapshot_201701040203] is missing" 
      } 
     ], 
     "type": "snapshot_exception", 
     "reason": "[s3_repository:snapshot_201701040203/snapshot_201701040203] Snapshot could not be read", 
     "caused_by": { 
      "type": "snapshot_missing_exception", 
      "reason": "[s3_repository:snapshot_201701040203/snapshot_201701040203] is missing", 
      "caused_by": { 
       "type": "no_such_file_exception", 
       "reason": "Blob object [snap-snapshot_201701040203.dat] not found: The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request ID: DB308DF310809F58)" 
      } 
     } 
    }, 
    "status": 500 

} 

完整的日誌:

[2017-01-30T13:18:57,344][WARN ][r.suppressed    ] path: /_snapshot/s3_repository/_all, params: {repository=s3_repository, snapshot=_all} 
org.elasticsearch.snapshots.SnapshotException: [s3_repository:snapshot_201701040203/snapshot_201701040203] Snapshot could not be read 
     at org.elasticsearch.snapshots.SnapshotsService.snapshots(SnapshotsService.java:187) ~[elasticsearch-5.1.2.jar:5.1.2] 
     at org.elasticsearch.action.admin.cluster.snapshots.get.TransportGetSnapshotsAction.masterOperation(TransportGetSnapshotsAction.java:122) [elasticsearch-5.1.2.jar:5.1.2] 
     at org.elasticsearch.action.admin.cluster.snapshots.get.TransportGetSnapshotsAction.masterOperation(TransportGetSnapshotsAction.java:50) [elasticsearch-5.1.2.jar:5.1.2] 
     at org.elasticsearch.action.support.master.TransportMasterNodeAction.masterOperation(TransportMasterNodeAction.java:86) [elasticsearch-5.1.2.jar:5.1.2] 
     at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$3.doRun(TransportMasterNodeAction.java:170) [elasticsearch-5.1.2.jar:5.1.2] 
     at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:527) [elasticsearch-5.1.2.jar:5.1.2] 
     at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-5.1.2.jar:5.1.2] 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111] 
     at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111] 
Caused by: org.elasticsearch.snapshots.SnapshotMissingException: [s3_repository:snapshot_201701040203/snapshot_201701040203] is missing 
     at org.elasticsearch.repositories.blobstore.BlobStoreRepository.getSnapshotInfo(BlobStoreRepository.java:566) ~[elasticsearch-5.1.2.jar:5.1.2] 
     at org.elasticsearch.snapshots.SnapshotsService.snapshots(SnapshotsService.java:182) ~[elasticsearch-5.1.2.jar:5.1.2] 
     ... 9 more 
Caused by: java.nio.file.NoSuchFileException: Blob object [snap-snapshot_201701040203.dat] not found: The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request ID: 38087D5B4A20B627) 
     at org.elasticsearch.cloud.aws.blobstore.S3BlobContainer.readBlob(S3BlobContainer.java:92) ~[?:?] 
     at org.elasticsearch.repositories.blobstore.ChecksumBlobStoreFormat.readBlob(ChecksumBlobStoreFormat.java:100) ~[elasticsearch-5.1.2.jar:5.1.2] 
     at org.elasticsearch.repositories.blobstore.BlobStoreFormat.read(BlobStoreFormat.java:89) ~[elasticsearch-5.1.2.jar:5.1.2] 
     at org.elasticsearch.repositories.blobstore.BlobStoreRepository.getSnapshotInfo(BlobStoreRepository.java:560) ~[elasticsearch-5.1.2.jar:5.1.2] 
     at org.elasticsearch.snapshots.SnapshotsService.snapshots(SnapshotsService.java:182) ~[elasticsearch-5.1.2.jar:5.1.2] 

我試圖刪除此快照庫,刪除所有的indeces。但是,如果我將再次添加此存儲庫,我收到相同的錯誤。 我該如何恢復ES? ES在哪裏獲取關於舊快照的信息?

此致敬禮。

+0

我已經重新創建ES-集羣,並得到同樣的錯誤。所以這個問題在AWS s3中有些地方。 – Oleksandr

回答

0

今天我遇到了這個問題。我的情況稍有不同,但也許這會幫助你。看起來,ES 5在ES 2.x不存在的存儲桶中維護快照的索引。

在我的場景中,我正在從2.x轉換到5.x.昨天,我將由我的2.x環境創建的一系列快照恢復到5.x環境中。昨晚我的2.x環境創建了另一個快照。當我去恢復快照時,出現快照不存在的錯誤(即使它存在)。

如果我重命名s3存儲桶中的兩個文件,ES 5將重建其索引並查看新快照。這兩個文件是:index-0和index.latest。

希望有所幫助。