弹性搜索 - 节点故障

Nag*_*Nag 3 elasticsearch

正如我从文档中了解到的,当一个节点出现故障时,弹性搜索会自动在所有其他节点上创建主分片或副本分片以解决该节点的故障。

但是,如果节点出现会发生什么情况——当机器出现时,在其他节点上创建的那些分片是否会“自动”删除——例如,在具有3 个节点的集群,节点 1 包含索引 1 的1 个主分片,还有一个索引 2 的副本分片。如果节点 1 宕机,ES会在任一可用节点中自动创建主分片、副本分片

Ami*_*wal 6

它取决于集群中的可用节点和索引配置(分片和副本)。

需要注意的几个重要事项

  1. Elasticsearch 永远不会在同一节点上分配主分片及其副本。
  2. 当一个包含主分片的节点宕机时,如果有另一个节点包含它的副本,那么 Elasticsearch 只会将该副本分片提升为主分片(即时),然后查看集群中是否还有另一个节点可以复制副本分片通过fsync网络使用(复制分片数据)。

这可能会导致集群中出现以下故障:

  1. 如果 Elasticsearch 找到可用节点来创建副本,它将创建,否则您的集群健康状况将变为黄色(缺少副本分片)。

  2. 如果 Elasticsearch 无法提升任何副本分片并且无法分配索引的主分片,则集群健康状况将变为 RED(缺少主分片)。

当节点再次加入集群时

  1. Elasticsearch 再次尝试重新平衡和恢复,并基于该集群状态和健康状况进行更新。

来到您的示例:-如果您的示例中只有 1 个主分片并​​且没有索引的副本,则集群状态将为 RED,但是当节点再次加入集群时,它将再次变为绿色。

但是,如果您有 1 个主分片和 1 个副本配置,Elasticsearch 将简单地提升(节点 2 或节点 3)上的副本分片,用于索引 1 和索引 2,其副本分片存在于节点 1 上,将在另一个节点上创建使用它的主要分片和集群健康状况将仅处于绿色状态,当节点再次加入时,这些分片将不会被使用。