elasticsearch 如果冷节点达到最大分片数,而热节点没有达到极限,数据是否仍然存在?

t5fffqht  于 2023-10-17  发布在  ElasticSearch
关注(0)|答案(1)|浏览(120)

版本7.16.2
冷节点已经达到设置的每节点最大碎片限制,但是热节点和暖节点远离该限制。
有一个问题,在此之前,应用程序无法将日志写入ES,因此在此期间数据丢失。我还没有检查热节点是否达到最大分片限制,但我们得到了“最大分片打开”错误
我很好奇,如果冷节点达到极限,而热节点有可用的空间,将阻止写。

olqngx59

olqngx591#

只有冷节点达到限制时,数据应该正常。
如果我理解正确的话,它将在ILM allocate阶段失败。
由于所有的write请求都应该首先到达热节点,
在冷节点被分片限制阻塞期间,ILM过程应该在一些等待/失败阶段挂起;并且需要进一步的POST my-index/_ilm/retry来继续。
另一方面,如果冷节点上的磁盘空间(可能还有cpu)仍然可用,可以尝试增加限制:

PUT _cluster/settings 
{
  "persistent": { 
    "cluster.max_shards_per_node": "3000" 
  } 
}

或者,尝试改变热节点的分片策略,比如让每个主分片在30 ~ 40 GB左右;并且只保留必要的副本数量(1或2应该足够)。

相关问题