elasticsearch - 如何防止碎片从热节点迁移到热节点或冷节点?

标签 elasticsearch elasticsearch-7 elasticsearch-opendistro

我有什么:

  • Elasticsearch(7.7.0)集群(amazon / opendistro-for-elasticsearch:1.8.0 Docker镜像)
  • 一个主节点
  • 一个协调节点
  • 具有node.attr.data=hot的两个数据节点
  • 一个带有node.attr.data=warm的数据节点


  • 我想要什么:防止将碎片分配和重定位从热数据节点迁移到热数据(将来又冷)。
    我尝试了什么:
    我为所有索引模板都添加了"index.routing.allocation.require.data": "hot",因此新创建的索引将不会分配给任何热门数据节点。这很好。
    无论如何,我不能限制从热节点到热节点的碎片重定位。目前,我正在使用"cluster.routing.allocation.exclude._ip" : "warm data node ip"来防止从热数据节点重定位到热数据节点。但是我可以在此过滤器中使用ILM吗?
    我也尝试过
    PUT _cluster/settings
    {
      "transient": {
        "cluster.routing.allocation.awareness.attributes": ["data"]
      }
    }
    
    PUT _cluster/settings
    {
      "transient": {
        "cluster.routing.allocation.awareness.force.data.values": ["hot"]
      }
    }
    
    然后删除"cluster.routing.allocation.exclude._ip"过滤器。碎片还是从热数据节点移到热数据节点。我想念什么?

    最佳答案

    我认为您错过了ILM政策中的分配意识。
    您的暖相定义应具有

    "allocate": {
       "require": {
            "data": "warm"
        }
    }
    
    从定义中删除它,它应该可以解决您的问题。
    对我来说完全了解ILM的最佳文章是
    https://www.elastic.co/blog/implementing-hot-warm-cold-in-elasticsearch-with-index-lifecycle-management
    您可以在“针对热-热-冷优化ILM策略”中找到完整的示例。

    关于elasticsearch - 如何防止碎片从热节点迁移到热节点或冷节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64587026/

    相关文章:

    elasticsearch - 从 OpenDistro docker 镜像运行时为 "Kibana server is not ready yet"

    elasticsearch - Elasticsearch knn索引(aws\opendistro)是否支持稀疏矢量索引?

    elasticsearch - 弹性云Circuit_break_exception

    elasticsearch - 升级后 Elasticsearch 排序脚本不起作用

    ElasticSearch 启动错误——默认发现设置不适合生产使用;

    elasticsearch - Elasticsearch 7-防止字段可搜索

    amazon-web-services - 具有Cognito的AWS Elasticsearch Kibana-缺少角色

    lucene - 在 Elasticsearch 查询中获取所有匹配的方面

    elasticsearch - 如何在术语查询中模拟多个字段

    elasticsearch - 使用参数直接放置过滤器会导致错误