shard recovery和shard重分配

在集群重启的时候,有一些配置会影响shard恢复过程。

如果有10个node,每个node都有一个shard,可能是primary shard或者是replica shard。当前index有5个primary shard,每个primary shard有一个replica shard。

默认配置下,shard恢复过程如下

当集群遇到重启情况时,节点是一个一个启动的,可能会出现5个节点先启动,剩下的5个没启动。启动的5个节点通过gossip协议相互通信,选举出一个master,组成集群。因为有5个节点尚未启动成功,那么未启动成功的节点上的shard是不可用的,集群少了一半的shard。此时启动成功的5个节点组成的集群开始将部分replica shard提升为primary shard,同时为每一个primary shard复制足够的replica shard。

如果将未启动成功的节点再次启动并成功加入集群后发现,本来是自己持有的shard已经被复制到之前启动成功的5个node上了。那么后面加入的5个node会删除本地的shard。

集群开始对shard进行reblance,将最早启动的5个node上的shard均匀发布到后来的5个node上。

劣势:shard重新复制,移动,删除,再次移动,会消耗大量网络资源和磁盘资源。对于数据量大的集群,重启时可能有TB级别的数据在移动,导致集群启动耗时很长。

此时修改配置改进,

gateway.recover_after_nodes: 8    //es等到8个node上线再开始shard recovery

gateway.expected_nodes: 10     //10个节点10在线

gateway.recover_after_time: 5m    //等待最多5分钟

经过上面配置后,es集群会等待至少8个节点在线,或等待5分钟或者10个节点都在线,开始shard recovery的过程。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值