跨群集的ElasticSearch快照

时间:2015-01-12 14:11:34

标签: elasticsearch

最近,我在snapshot群集中创建了一个elasticsearch个索引,该群集包含3个数据节点。

我的主要目的是将此索引移到另一个群集中。

我使用的命令:

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已在上述位置成功创建,但位于我点击查询的另一个节点,此备份位置中的每个节点都有一个文件夹(名称:indices),其中包含等效节点上备份索引的分片。

例:
node1:home / me / my_backup / indices / 1,2,3
node2:home / me / my_backup / indices / 4,5,6
node3:home / me / my_backup / indices / 7,8,9

因此,我必须手动将群集中的所有索引文件夹复制到具有快照元数据的节点以完成备份。然后我将备份文件夹复制到新的群集并恢复它(恢复过程很好)

备份索引的所有索引文件夹都可以在1个节点中,而不是在群集中拆分吗?

2 个答案:

答案 0 :(得分:5)

您指定的location应该是"共享"位置和存储库中指定的路径应指向所有节点共享的同一目录。它不能只是节点上的本地目录。例如:该位置可以是单独计算机上的网络共享安装,并且所有节点都应指向它并且应该能够访问它。

这样做的原因是每个节点都可以从分片中保存主要副本或副本,并且它应该能够复制该特定分片中包含的文档,然后转移到" shared&# 34;位置。

答案 1 :(得分:0)

如安德烈(Andrei)所写-要在多个节点上使用快照,您将需要一个可以被所有节点访问的共享位置,并且必须具有相同path.repo条目的elasticsearch.yml设置。

create shared repositories across multiple clusters指南,涵盖了您需要的所有步骤,包括设置Samba服务器和客户端以及配置ElasticSearch。