[英]ElasticSearch Snapshot across cluster
最近我在一个由 3 个数据节点组成的elasticsearch
集群中创建了一个索引的snapshot
。
我的主要目的是将此索引移动到另一个集群中。
我使用的命令:
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "/home/me/backup",
"compress": true
}
}
PUT _snapshot/my_backup/snapshot_1?wait_for_completion=true
{
"indices": "daily-20141127"
}
注意:以上查询是在同一个数据节点中执行的。
Snapshot
已在上述位置成功创建,但在我执行查询的另一个节点中,此备份位置中的每个节点都有一个文件夹(名称:索引),其中包含等效节点上的备份索引分片。
例子:
节点 1:家/我/my_backup/indices/1,2,3
node2:家/我/my_backup/indices/4,5,6
node3:家/我/my_backup/indices/7,8,9
因此,我必须手动将集群中的所有索引文件夹复制到具有快照元数据的节点以完成备份。 然后我将备份文件夹复制到新集群并恢复它(恢复过程很好)
备份索引的所有索引文件夹都可以在 1 个节点中而不是跨集群拆分吗?
您指定的location
应为“共享”位置,并且存储库中指定的路径应指向所有节点共享的同一目录。 它不能只是节点上的本地目录。 例如:该位置可以是单独机器上的网络共享安装,所有节点都应该指向它并且应该能够访问它。
这样做的原因是每个节点可能持有一个主分片或分片的副本,它应该能够制作包含在该特定分片中的文档的副本,然后移动到“共享”位置。
正如安德烈所写 - 要在多个节点上使用快照,您将需要一个可以被所有节点访问的共享位置,并且您必须使用相同的 path.repo 条目进行 elasticsearch.yml 设置。
有一个指南如何跨多个集群创建共享存储库,其中涵盖了您需要的所有步骤,包括设置 Samba 服务器和客户端 + 配置 ElasticSearch。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.