如何配置用于在 Google Compute Engine 上备份 elasticsearch 数据的结构?

How can I configure a structure for backing up elasticsearch data on Google Compute Engine?

我在 GCE(Google 计算引擎)上配置了一个 elasticsearch 环境,有两个节点,因此有两个虚拟机,我需要为此创建一个备份策略。 我首先想到我可以使用 elasticsearch 快照 API 将我的所有数据备份到给定存储,因为 API 支持几种存储快照的方法。

我尝试使用共享文件系统选项,但它要求存储位置在节点之间共享。有什么办法可以在 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 plugin for elasticsearch 用于存储备份。 Google Cloud Storage 是否有任何插件?可以这样做吗?

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

您可以通过互操作性将 S3 插件与 Google 云存储一起使用。有关详细信息,请参阅此 page

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

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

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

Elasticsearch 现在有 a plugin for Google Cloud Storage,因此这是原生支持的。