8

我在 GCE(Google Compute Engine)上配置了具有两个节点的弹性搜索环境,因此需要两个 VM,我需要为此创建一个备份策略。我首先想到我可以使用elasticsearch快照 API 将我的所有数据备份到给定的存储,因为 API 支持几种存储快照的方法。

  • 共享文件系统,例如 NAS
  • 亚马逊 S3
  • HDFS(Hadoop分布式文件系统)
  • 天蓝色云

我尝试使用共享文件系统选项,但它要求在节点之间共享存储位置。有没有办法在 GCE 上做到这一点?

curl -XPUT http://x.x.x.x:9200/_snapshot/backup -d '{
    "type": "fs",
    "settings": {
        "compress" : true,
        "location": "/elasticsearch/backup"
    }

}'

nested: RepositoryVerificationException[[backup] store location [/elasticsearch/backup] is not shared between node

我知道有一个用于存储备份的弹性搜索 AWS 插件。谷歌云存储有插件吗?有可能这样做吗?

如果上述任何替代方案都不可行,是否有任何其他推荐的策略来备份我的数据?

4

3 回答 3

2

Elasticsearch 现在有一个用于 Google Cloud Storage 的插件,因此它是本机支持的。

于 2016-10-05T17:23:23.867 回答
0

您可以通过互操作性将 S3 插件与 Google Cloud Storage 一起使用。有关详细信息,请参阅此页面。

或者,您可以在文件系统中创建一个普通备份,然后使用 gsutil 将其上传到云存储。

于 2015-02-04T19:01:29.737 回答
0

我在 Google Cloud 上的 ES 集群(5 个节点)也遇到了同样的问题。我们不能像上面 Jon 提到的那样在实际磁盘上使用本地备份,因为在我的例子中,并不是每个节点都有所有数据。

在我看来,唯一的方法是创建一个带有大磁盘的小型机器,并将该磁盘作为共享驱动器安装在我在同一路径中的所有 5 个 ES 节点上,以便我们可以使用“共享文件系统”选项。

于 2015-06-17T10:33:44.737 回答