我将Elasticsearch群集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
}
感谢您提出的解决我的问题的建议或反馈。谢谢所有人。
UPDATE:在其他群集中,我考虑了相同的升级过程,并且没有相同的问题。
从es v5.x升级到es v6.x之前发生的事情。由快照的数据段中的数据损坏引起。
快照在幕后的工作方式是:从第二个快照开始,在某个群集上,新快照将中继到之前已快照过的旧数据段(在您之前完成的快照中)因此,当前快照不必从头开始,这是ES提高效率的明智方法。这也是为什么第一个快照需要更长的时间的原因。
请参阅ES文档here中的详细信息。
对我来说,它有助于删除所有快照,因此删除了所有旧数据段,然后创建另一个快照。像一个新的开始。
如果这没有帮助,我建议对您的集群进行滚动重启然后删除所有旧快照,然后再创建一个新快照
有关滚动重启here的信息。
此外,我建议您查看您的es存储库的路径,定义和配置。可能是升级导致了一些故障。
希望对您有所帮助,并能看到。
总体v5.6具有一些有关快照和还原api的已知问题,这些问题已在v6.x中修复,因此,如果可能,我建议升级到6.x。