elasticsearch - Elasticsearch 基于磁盘的分配和分层存储(热温)优先
问题描述
我正在设置 Elasticsearch 集群的基线和 POC,目前我正在使用 4 台服务器,其中 3 台将保存弹性集群,但存储空间有限(可能无法保存每天的预期数据)。
如果我设置了一个 3 hot - 1 warm 的分层存储,如果 3 个 hot 服务器快满了,它会重新分配 shard 到 1 warm server 以平衡数据吗?
我想知道的是何时启用基于磁盘的分片分配,当上述 3 台服务器快满时,是否会将分片分配重定向到第 4 台服务器,该服务器有足够的存储空间但拥有 Logstash 和 Kibana,我想将其用于备份并存储集群中溢出的数据。
注意:数据保留时间仅为一天。
解决方案
我认为这不可能开箱即用,因为没有溢出节点的概念。分片的数量是在创建索引的那一刻定义的。所有分片都将被分配,传入的数据将分布在所有分片上。如果将主分片或副本分片之一放置在第 4 个节点上,那么就弹性搜索而言,这很好。
但我看到了一个(可能很难看)解决方法:将主索引配置为仅在前三个节点上分配。创建一个监视集群磁盘使用情况的监视器。如果达到所需的使用阈值,则发出重新索引查询并将主索引的最旧数据移动到配置为仅在第 4 个节点上分配的溢出索引中。但请注意,如果溢出索引只有一个节点,则不会有副本。
推荐阅读
- reactjs - 控制台记录导入的 SVG 会给出数字
- matlab - 如何在matlab中缓冲CSV文件中的数据?
- angular - 如果省略了防御性编码/错误检查,则 Angular Observable 订阅失败
- git - “git merge --squash”的正确用例是什么?
- html - 在带有真棒标签的文本区域中添加工具提示
- javascript - 如何在单击另一个元素时关闭一个元素
- python - df中的单独列与python中电子邮件的购买的第一个和最后一个日期?
- entity-framework - 检索嵌套层次结构中的所有项目
- c++ - 进入下一个循环迭代,意外更改了值
- vue.js - 在 vue 中导入对象 js 并从捆绑中排除此文件