首页 > 解决方案 > 将 Elasticsearch 2.4 升级到 5.6 后获取快照

问题描述

我将我的弹性搜索集群 2.4 版本升级到 5.6。(如弹性网站中所述)。升级没有问题,但现在我需要检查可用的快照并收到错误:

curl -X GET "localhost:9200/_snapshot/es_logs/_all?pretty"

{
  "error" : {
    "root_cause" : [
      {
        "type" : "repository_exception",
        "reason" : "[es_logs] could not read repository data from index blob"
      }
    ],
    "type" : "repository_exception",
    "reason" : "[es_logs] could not read repository data from index blob",
    "caused_by" : {
      "type" : "access_denied_exception",
      "reason" : "/mnt/backup/elasticsearch/es_logs/pending-incompatible-snapshots-uMo3FaYxST6JFL_t8LOv8w"
    }
  },
  "status" : 500
}

我感谢任何建议或反馈来解决我的问题。谢谢大家。

更新:在其他集群中,我考虑了相同的升级过程并且没有相同的问题。

标签: elasticsearchelastic-stacksnapshot

解决方案


之前从 es v5.x 升级到 es v6.x 时发生在我身上。由快照的数据段中的数据损坏引起。

快照在幕后的工作方式是:从第二个快照开始,在某个集群上,新快照中继之前已经快照的旧数据段(在以前的快照中你已经完成),因此当前快照不会必须从头开始,这是 ES 获得效率的一种聪明方式。这也是为什么第一个快照需要更长的时间。

请在此处的 ES 文档中阅读有关它的更多信息。

对我来说,它有助于删除我所有的快照,因此删除所有旧数据段,然后再做一个快照。就像一个新的开始。

如果这没有帮助,我建议对您的集群进行滚动重启,然后删除所有旧快照,然后创建一个新快照

在此处阅读有关滚动重启的信息。

另外,我建议查看您的 es 存储库路径、定义和配置。可能是升级导致了一些故障。

希望它会有所帮助和gl。

总体而言,v5.6 有一些关于快照和恢复 api 的已知问题,这些问题已在 v6.x 中得到修复,所以如果可能的话,我建议升级到 6.x。


推荐阅读