如何配置在谷歌计算引擎上备份弹性搜索数据的结构



我在GCE(谷歌计算引擎)上配置了e弹性搜索环境,有两个节点,因此两个虚拟机和我需要为此创建一个备份策略。我最初认为我可以使用 elasticsearch 快照 API 将所有数据备份到给定的存储中,因为 API 支持几种存储快照的方法。

  • 共享文件系统,例如 NAS
  • 亚马逊 S3
  • HDFS (Hadoop Distributed File System)
  • Azure Cloud

我尝试使用共享文件系统选项,但它要求在节点之间共享存储位置。有没有办法在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 插件用于存储备份。谷歌云存储有插件吗?有可能这样做吗?

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

Elasticsearch现在有一个用于Google Cloud Storage的插件,因此这是原生支持的。

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

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

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

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

最新更新