云搜索服务 CSS-为什么新创建的索引分片全部被分配到一个node节点上?:原因分析

时间:2023-11-01 16:16:54

原因分析

新建索引分片被集中分配于一个node节点上可能有以下原因:

  • 之前索引的分配导致某个节点上的shards数量过少,新建索引shards分配被balance.shard参数主导,为了平衡所有索引的全部分片,将shards集中分配在数量过少的节点上。
  • 节点扩容,当新节点加入时新节点上的shards数量为0,此时集群会自动进行rebalance,但是rebalance需要时间,此时新建索引很容易会被balande.shard参数主导,平衡所有索引的分片,即都分配在新节点上看起来更加平衡。

涉及集群平衡性shard分配主要有两个配置参数:

cluster.routing.allocation.balance.index(默认值0.45f)

cluster.routing.allocation.balance.shard(默认值0.55f)

  • “balance.index”:值越大,shard分配越倾向于使得每个索引的所有分片在节点上均匀分布,如a索引共有6个shards,数据节点有3个,该配置值倾向于让a索引2、2、2平衡分配
  • “balance.shard”:值越大,shard分配越倾向于使得所有分片(所有索引的)在节点上平衡,如索引a有2个shards,索引b有4个shards,该配置倾向于所有6个分片进行2、2、2平衡分配。
  • balance.index和balance.shard共同负责shards分配。
support.huaweicloud.com/css_faq/css_02_0042.html