集群节点临时重启,禁用分片自动分配
一个集群节点重启前要先临时禁用自动分配,设置cluster.routing.allocation.enable为none,否则节点停止后,当前节点的分片会自动分配到其他节点上,本节点启动后需要等其他节点RECOVERING后才会RELOCATING,也就是分片在其他节点恢复后又转移回来,浪费大量时间。
首先禁用自动分配
curl -XPUT http://127.0.0.1:9200/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.enable" : "none" } }'
然后再重启集群
集群启动后再改回配置
curl -XPUT http://127.0.0.1:9200/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.enable" : "all" } }'
以下动态设置可用于控制分片和恢复:cluster.routing.allocation.enable
启用或禁用特定种类的分片的分配:
all - (默认值)允许为所有类型的分片分配分片。
primaries - 仅允许分配主分片的分片。
new_primaries - 仅允许为新索引的主分片分配分片。
none - 任何索引都不允许任何类型的分片。
重新启动节点时,此设置不会影响本地主分片的恢复。 如果重新启动的节点具有未分配的主分片的副本,会立即恢复该主分片。
cluster.routing.rebalance.enable
为特定类型的分片启用或禁用重新平衡:
all - (默认值)允许各种分片的分片平衡。
primaries - 仅允许主分片的分片平衡。
replicas - 仅允许对副本分片进行分片平衡。
none - 任何索引都不允许任何类型的分片平衡。
cluster.routing.allocation.allow_rebalance
始终 - 始终允许重新平衡。
indices_primaries_active - 仅在所有主分片激活时。
indices_all_active - (默认)仅当所有分片都激活时。
cluster.routing.allocation.cluster_concurrent_rebalance
允许控制群集范围内允许的并发分片重新平衡数。 默认为2。
请注意,此设置仅控制由于群集中的不平衡而导致的并发分片重定位数。 此设置不会因分配过滤或强制感知而限制分片重定位。