美文网首页
ES集群重启预案及影响分析

ES集群重启预案及影响分析

作者: EricJonse | 来源:发表于2019-05-15 15:09 被阅读0次

ES集群重启预案

es每个节点均是有状态,不同索引分片配置设置不同,单个分片可能有冗余,可能有1备份。因此,为不影响服务,升级或者重启es服务需要逐个依次进行(滚动重启)

注:重启操作应在集群状态为green时进行,重启任一一个节点前后,都要保证在集群状态恢复到green状态时。

步骤1-禁用分片分配

如果不禁止,当停止某一节点后,分片分配进程会进行UNASSIGNED分片的分配(当集群状态达到recovery要求,触发恢复阈值时)。这样的情况下,会造成大量的IO操作。但是禁用分片后,功能上会禁止新建索引。

curl -X PUT http://0.0.0.0:9200/_cluster/settings?pretty -d '{"transient": {"cluster.routing.allocation.enable": "none"}}'

步骤2-验证修改后的配置:

curl -X GET http://0.0.0.0:9200/_cluster/settings?pretty

步骤3-执行同步刷新

这一步操作的原因是:当有分片在集群重启过程中并没有发生更新,则跳过对这些分片的同步校验,提高分片恢复的速度

curl -XPOST "http://0.0.0.0:9200/_flush/synced?pretty"

步骤4-重启client-node节点

重启client-node组节点有小概率导致写入丢失(由于LB的轮询策略:当一个节点离线后,10s内不会再将请求分配到该节点。可以通过不要立即重启另外的client节点来避免此问题)

子步骤1--重启一个client-node组的节点

子步骤2--确认节点加入集群

通过命令查看集群状态和查看节点数

curl -XGET http://0.0.0.0:9200/_cluster/health?pretty

子步骤3--按照子步骤1-2重启剩余的client-node节点

步骤5-重启master节点

子步骤1--重启一个master-node的非master节点

子步骤2--确认节点加入集群

子步骤3--重复子步骤1-2重启剩余的非master节点

子步骤4--重复子步骤1-2重启剩余的master节点

子步骤5--检查master是否重新选举成功(30s后会开始选举:原因discovery.zen.ping_timeout:30s)

master选举过程中会堵塞写操作,对search无影响,堵塞API的操作

步骤6-重启data-node节点

子步骤1--重启一个data-node组的data-node节点

子步骤2--确认节点加入集群

子步骤3--重复子步骤1-2重启剩余的data节点

步骤7-启用分片分配

curl -X PUT http://0.0.0.0:9200/_cluster/settings?pretty -d '{"transient": {"cluster.routing.allocation.enable": "all"}}'

相关文章

网友评论

      本文标题:ES集群重启预案及影响分析

      本文链接:https://www.haomeiwen.com/subject/tcipaqtx.html