Elasticsearch 的Cluster-level Shard Allocation and Routing Settings(集群级别的分片分配和路由设置)是用于控制分片在集群中的分配和移动的高级功能。这些设置允许管理员根据集群的硬件配置、性能需求、资源可用性以及业务逻辑,灵活地管理分片的分配和重新平衡。以下是对这些设置的详细说明:
---
1.分片分配和路由的基本概念
分片分配(Shard Allocation)是指 Elasticsearch 将分片(包括主分片和副本分片)分配到集群中的节点的过程。分片分配可能发生在以下场景:
• 初始恢复(Initial Recovery):当索引被创建时。
• 副本分配(Replica Allocation):当副本分片需要被分配时。
• 重新平衡(Rebalancing):当集群状态发生变化(如节点加入或移除)时。
• 集群或索引设置更新时。
主节点(Master Node)负责决定将哪些分片分配到哪些节点,并在必要时移动分片以重新平衡集群。
---
2.集群级别的分片分配设置
集群级别的分片分配设置用于控制分片分配和重新平衡的行为。以下是一些关键设置:
2.1`cluster.routing.allocation.enable`
控制分片分配的启用或禁用:
• `all`(默认):允许所有类型的分片分配。
• `primaries`:仅允许主分片分配。
• `new_primaries`:仅允许新索引的主分片分配。
• `none`:禁止所有分片分配。
此设置仅影响未来的分配,不会重新分配已分配的分片。
2.2`cluster.routing.allocation.same_shard.host`
如果设置为`true`,禁止将同一分片的多个副本分配到同一主机上的不同节点。默认值为`false`,允许分片副本分配到同一主机的不同节点。
2.3并发恢复设置
• `