关于Docker Swarm上的Elasticsearch分片的问题

问题描述 投票:1回答:1

我计划配置一个3节点的docker群,其中部署了弹性堆栈。配置完成并分配分片后,我有两个部分问题:

  1. 如果我们将容器存储配置为写入持久性存储(本地)-如果3个节点中的一个容器死亡,则分片会平衡吗?

  2. 如果我们将一个新的容器作为新的第3个节点代替死掉的容器,它将像旧的容器一样从磁盘上读回,包括磁盘上的现有数据和分片吗?碎片会重新恢复平衡吗?

提前感谢

docker elasticsearch docker-swarm sharding docker-swarm-mode
1个回答
0
投票

背景

Elasticsearch是一个分布式系统,主要分片用于将其扩展到多个数据节点,而副本分片可提供更好的可用性和读取性能。根据您的索引和群集设置,即索引中有多少个分片和副本,以及有多少个数据节点可用,将分配这些分片和副本。

出现您的问题

1。如果我们将容器存储配置为写入持久性存储(本地),那么-如果3个节点中的一个容器死亡,则分片是否会平衡?

是的,如果设置允许这样做,但是请记住,分片及其副本永远不会在同一数据节点上分配,因此在这种情况下,弹性搜索集群的状态将为Yellow(缺少副本分片)或RED(缺少主分片) 。,请阅读split-brain problem in Elasticsearch进行详细了解。

2。如果我们启动一个新的容器作为新的第3个节点来代替死掉的容器,它是否会像旧的容器一样从磁盘上读回,包括磁盘上的现有数据和分片?碎片会重新恢复平衡吗?

是的,当然,因为您没有在docker容器上存储数据,Elasticsearch将读取数据并使用f-sync(这将非常快)在新数据节点上重新分配分片。

© www.soinside.com 2019 - 2024. All rights reserved.