0

我有什么

  • 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"过滤器。无论如何,分片都从热数据节点重新定位到热数据节点。我错过了什么?

4

2 回答 2

0

我认为您错过了 ILM 政策中的分配意识。你的暖阶段定义应该有

"allocate": {
   "require": {
        "data": "warm"
    }
}

从您的定义中删除它,它应该可以解决您的问题。

对我来说完全了解 ILM 的最佳文章是 https://www.elastic.co/blog/implementing-hot-warm-cold-in-elasticsearch-with-index-lifecycle-management 您将在“针对热-暖-冷优化您的 ILM 策略”

于 2020-10-29T08:42:22.313 回答
0

我不得不更新我的旧 incides 的设置:

PUT my-index/_settings
{
  "index.routing.allocation.require.data": "hot"
}

如果更新索引模板,则不会更新特定索引模板下的索引。

于 2020-10-29T14:27:38.497 回答