我的ES是用来放日志的,按天创建索引。数据节点有10台
目前的需求是默认打开最近3天的日志,3天前到前30天这段时间的日志都是关闭状态。
这种情况下,如果要下线一个或多个节点会很头疼:
首先设置allocation.exclude._ip排除掉这台机器后,它只会将已经打开的索引分片迁移到其他服务器,关闭状态的索引是不动的,如果要把这台上的分片全部迁走,得打开所有已经关闭的索引等数据迁移后再关闭。
另外就是这些分片的迁移本身就是很费时的。即使我有脚本能自动操作也是要等很久。
请问这种情况下有没有比较好的解决方案呢。
我的想法是,每6天为一组,连续六天的索引设置分片只分配在其中2台节点上。轮转着这样保存。假如某台我需要从集群中下掉节点,可以找存放日志最早的两台中的一台来下线。即使不做数据迁移,也只会丢失最早最不太可能用到的日志。如果要做迁移的话,也只需要打开6天的索引做操作。
但这种方法有个问题,就是每天只有2台节点在做数据写入,负载比10台平均处理所有写入请求要高了5倍 。
不知道还有没有其他更好的思路呢?
目前的需求是默认打开最近3天的日志,3天前到前30天这段时间的日志都是关闭状态。
这种情况下,如果要下线一个或多个节点会很头疼:
首先设置allocation.exclude._ip排除掉这台机器后,它只会将已经打开的索引分片迁移到其他服务器,关闭状态的索引是不动的,如果要把这台上的分片全部迁走,得打开所有已经关闭的索引等数据迁移后再关闭。
另外就是这些分片的迁移本身就是很费时的。即使我有脚本能自动操作也是要等很久。
请问这种情况下有没有比较好的解决方案呢。
我的想法是,每6天为一组,连续六天的索引设置分片只分配在其中2台节点上。轮转着这样保存。假如某台我需要从集群中下掉节点,可以找存放日志最早的两台中的一台来下线。即使不做数据迁移,也只会丢失最早最不太可能用到的日志。如果要做迁移的话,也只需要打开6天的索引做操作。
但这种方法有个问题,就是每天只有2台节点在做数据写入,负载比10台平均处理所有写入请求要高了5倍 。
不知道还有没有其他更好的思路呢?
2 个回复
medcl - 今晚打老虎。
赞同来自: 端小强
https://github.com/elastic/ela ... 39499
zqc0512 - andy zhou
赞同来自: