首页 > 解决方案 > Elasticsearch 基于磁盘的分配和分层存储(热温)优先

问题描述

我正在设置 Elasticsearch 集群的基线和 POC,目前我正在使用 4 台服务器,其中 3 台将保存弹性集群,但存储空间有限(可能无法保存每天的预期数据)。

如果我设置了一个 3 hot - 1 warm 的分层存储,如果 3 个 hot 服务器快满了,它会重新分配 shard 到 1 warm server 以平衡数据吗?

我想知道的是何时启用基于磁盘的分片分配,当上述 3 台服务器快满时,是否会将分片分配重定向到第 4 台服务器,该服务器有足够的存储空间但拥有 Logstash 和 Kibana,我想将其用于备份并存储集群中溢出的数据。

注意:数据保留时间仅为一天。

标签: elasticsearch

解决方案


我认为这不可能开箱即用,因为没有溢出节点的概念。分片的数量是在创建索引的那一刻定义的。所有分片都将被分配,传入的数据将分布在所有分片上。如果将主分片或副本分片之一放​​置在第 4 个节点上,那么就弹性搜索而言,这很好。

但我看到了一个(可能很难看)解决方法:将主索引配置为仅在前三个节点上分配。创建一个监视集群磁盘使用情况的监视器。如果达到所需的使用阈值,则发出重新索引查询并将主索引的最旧数据移动到配置为仅在第 4 个节点上分配的溢出索引中。但请注意,如果溢出索引只有一个节点,则不会有副本。


推荐阅读