功能概述

OpenSearch 服务支持将数据复制到一个或多个 OpenSearch 集群,通过 opensearch-cross-cluster-replication 插件,以 Replication 方式从 OpenSearch 迁移数据,可实现集群数据迁移和灾备。

创建 OpenSearch 跨集群复制后,主 OpenSearch 集群上对索引的所有操作,包括创建、更新、删除文档等,都将复制到从集群节点上。

本小节主要介绍如何在 OpenSearch 集群间复制数据。

约束限制

  • 跨集群复制期间,复制的索引仅可读。

  • 跨集群复制期间,不能将从集群索引复制到主集群。

  • 复制停止后,不支持重启复制。

操作步骤

步骤一:网络配置

确保两个 OpenSearch 集群之间的网络通畅。

步骤二:配置从集群

  1. 登录目标集群的的 OpenSearch Dashboard。详情可参考如何登录 OpenSearch Dashboard

  2. 在 Dashboard 的 Dev Tools 的 Console 页面,执行以下命令行,创建 Connection。其中 seeds 地址填写源 OpenSearch 集群数据节点的 IP 地址。

    PUT _cluster/settings
    {
      "persistent": {
        "cluster": {
          "remote": {
            "my-connection-alias": {
              "seeds": [
                "172.22.2.65:9300",
                "172.22.2.69:9300"
              ]
            }
          }
        }
      }
    }
  3. 执行以下命令行,创建 Replication。指定待复制的 Connection 名称 leader_alias 和索引名称 leader_index

    PUT _plugins/_replication/leader-01/_start
    {
      "leader_alias": "my-connection-alias",
      "leader_index": "leader-01",
      "use_roles": {
        "leader_cluster_role": "all_access",
        "follower_cluster_role": "all_access"
      }
    }

步骤三:主集群添加数据

  1. 登录源集群的的 OpenSearch Dashboard。详情可参考如何登录 OpenSearch Dashboard

  2. 在 Dashboard 的 Dev Tools 的 Console 页面,执行以下命令行,往指定索引中添加数据。前文从集群中,配置的远端索引为 leader-01,因此,这里在源集群的该索引中,添加数据。

    PUT /leader-01/_doc/1
    {
      "The Shining": "Stephen King"
    }

步骤四:从集群确认数据

  1. 登录目标集群的的 OpenSearch Dashboard。详情可参考如何登录 OpenSearch Dashboard

  2. 在 Dashboard 的 Dev Tools 的 Console 页面,执行以下命令行,查看索引 leader-01 中的数据已经同步。

    GET /leader-01/_search