Hello,World

ES集群节点更换时,数据迁移的疑问

Elasticsearch | 作者 wangxinrong | 发布于2019年07月02日 | 阅读数:3227

我的ES是用来放日志的,按天创建索引。数据节点有10台
目前的需求是默认打开最近3天的日志,3天前到前30天这段时间的日志都是关闭状态。
这种情况下,如果要下线一个或多个节点会很头疼:
首先设置allocation.exclude._ip排除掉这台机器后,它只会将已经打开的索引分片迁移到其他服务器,关闭状态的索引是不动的,如果要把这台上的分片全部迁走,得打开所有已经关闭的索引等数据迁移后再关闭。
另外就是这些分片的迁移本身就是很费时的。即使我有脚本能自动操作也是要等很久。

请问这种情况下有没有比较好的解决方案呢。

我的想法是,每6天为一组,连续六天的索引设置分片只分配在其中2台节点上。轮转着这样保存。假如某台我需要从集群中下掉节点,可以找存放日志最早的两台中的一台来下线。即使不做数据迁移,也只会丢失最早最不太可能用到的日志。如果要做迁移的话,也只需要打开6天的索引做操作。
但这种方法有个问题,就是每天只有2台节点在做数据写入,负载比10台平均处理所有写入请求要高了5倍 。

不知道还有没有其他更好的思路呢?

已邀请:

medcl - 今晚打老虎。

赞同来自: 端小强

如果你有副本的话,可以直接上最新的 7.2 版本,现在已经支持对关闭索引的自动均衡和副本,
https://github.com/elastic/ela ... 39499
 

zqc0512 - andy zhou

赞同来自:

热节点、温节点、冷节点 配置下就把你的集群节点分组了。

要回复问题请先登录注册