首页 > 解决方案 > ELK 复制和数据节点的作用

问题描述

我正在运行一个带有 3 个数据节点的 ELK 集群。2 个数据节点也用作使用 2 个 logstash 系统的数据摄取节点。

我在单个索引的 1 个分片和 0 个副本上运行,每个索引每天创建大约 200 万个文档。当前索引的大小约为 8GB。

由于我没有很多节点,因此 1 个分片足以用于索引。我认为。

但是 0 副本意味着,将没有可用的副本。但是当我使用 1 个分片时,每个索引都位于一个节点中。

现在我的问题是,不同的索引是存储在不同的数据节点中,还是所有数据都存储在所有数据节点中?

前段时间,一个数据节点出现故障,我将其物理移除并在集群中添加了一个新节点。根据我的理解,没有数据丢失。

我需要将副本更改为1吗?

标签: elasticsearchelastic-stackelk

解决方案


一个索引被分成多个分片,可以跨多个数据节点存储。

如果一个索引有一个分片和零个副本,那么它的所有文档将只存储在一个数据节点上。如果此节点发生故障,则整个索引都将丢失。

如果一个索引有一个 shard 和一个 replica,ES 通常会将它们放在不同的数据节点中,这样如果一个节点发生故障,可以从另一个节点恢复索引。


推荐阅读