允许 Elasticsearch 分配系统中的数据

编辑

允许 Elasticsearch 分配系统中的数据编辑

可以使用 启用集群分配配置 来控制 Elasticsearch 部署中数据的分配。在某些情况下,用户可能希望暂时禁用或限制系统中数据的分配。

忘记重新允许所有数据分配会导致未分配的碎片。

为了(重新)允许分配所有数据,请按照以下步骤操作

为了让碎片分配,我们需要更改限制碎片分配的 配置,以允许分配所有碎片。

我们将通过检查系统范围的 cluster.routing.allocation.enable 集群设置 并将配置的值更改为 all 来实现这一点。

使用 Kibana

  1. 登录到 Elastic Cloud 控制台
  2. Elasticsearch 服务 面板中,单击您的部署的名称。

    如果您的部署名称被禁用,您的 Kibana 实例可能不健康,在这种情况下,请联系 Elastic 支持。如果您的部署不包含 Kibana,您只需要 先启用它

  3. 打开您的部署的侧边导航菜单(位于左上角的 Elastic 徽标下方),然后转到 开发工具 > 控制台

    Kibana Console
  4. 检查 cluster.routing.allocation.enable 集群设置

    response = client.cluster.get_settings(
      flat_settings: true
    )
    puts response
    GET /_cluster/settings?flat_settings

    响应将如下所示

    {
      "persistent": {
        "cluster.routing.allocation.enable": "none" 
      },
      "transient": {}
    }

    表示当前配置的值,该值控制系统中是否允许部分或完全分配数据。

  5. 更改 配置 值以允许系统中的所有数据完全分配

    response = client.cluster.put_settings(
      body: {
        persistent: {
          'cluster.routing.allocation.enable' => 'all'
        }
      }
    )
    puts response
    PUT _cluster/settings
    {
      "persistent" : {
        "cluster.routing.allocation.enable" : "all" 
      }
    }

    系统范围配置的 allocation.enable 的新值已更改为允许分配所有碎片。