Elasticserach集群节点分片exclude失效原因排查

前因

最近公司有一套ES集群主机需要下线扩容到新集群,我们在将旧集群节点上的分片exclude掉时,发现相关节点上的分片并未被exclude掉:集群配置如图展示:
图一

后果

如图一所示,集群其它参数配置并未与exclude参数起冲突,正常情况下exclude掉的节点不应该有分片分布,实际情况是相关节点依然分布着分片,于是在进一步的排查中我们发现基于索引级的分片分布有配置index.routing.allocation.require参数,如图二所示:
图二
index.routing.allocation.require参数解释:表示索引分片必须要分配在具有指定属性值的节点上。

在图二里我们可以看到,index.routing.allocation.require参数配置索引分片必须分配在具有属性box_type值为clod的节点上,而我们在对相关节点分片进行exclude时,相关节点属性box_type值具有clod,因此require与exclude参数起到冲突,且require参数优先级大于exclude参数,所以在对相关节点分片进行exclude时失效,后续我们取消掉相关索引的require参数配置,分片得以正常排除。

PUT index/_settings
{
  "routing": {
    "allocation": {
      "require": {
        "box_type": null
      },
      "total_shards_per_node": null
    }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值