Elasticsearch8.2扩容挪数据master出现异常

2023-11-15

背景

1.ES 8.2 版本集群,从10节点扩到20节点(变更,目标替换老的10个节点,先扩容新节点再下掉老节点)

2.挪数据执行exclude API,排除老节点IP,设置迁移速率为800Mb/s,默认40Mb/s

异常

1.迁移过程中突然不再recovery,且老节点上依然有数据

2.发现出现一些pending task(node left/挪数据暂停...)

3.节点日志中出现 failed to process cluster event (clear-voting-config-exclusions) within 30s;还有 index not found异常;

4.集群依然是green

5.indices中的doc数量两次请求不一样(猜测脑裂)

6.pending task 30min 依然无法完成,确认无法自动恢复

分析

1.假定脑裂,即需要将部分节点先孤立,再加回集群即可恢复,由于不知道脑裂的哪批节点,只能保留现有的master节点,一个个操作其他节点。

风险评估:如果选择的master节点最终的term周期并不是最大的,可能会有丢数据风险;进入ES的容器可以发现,data目录和write目录都多了个lock文件,加上了锁,保证了数据的安全。此时联系用户停止数据写入(发现用户已经没有任何写入了),此时可以把锁全部干掉,然后任意一个master候选节点成为master都不会丢数据,哪怕term不是最大的。

注:如果有写入,可能会出现master候选节点信息不完全一致(没来得及同步完全),在手动随机选master节点后导致数据丢失。

2.参考官方文档:elasticsearch-node | Elasticsearch Guide [8.2] | Elastic

执行unsafe查看term任期,降低风险,还是尽量选最大的;

执行detach,将节点孤立;

重启节点(pod)重新加入集群;

小插曲

怀疑是由于master候选节点是双数导致了master vote列表出现小于一半的情况,导致节点加入集群异常;

尝试加一个node,从20-->21

结论:节点无法加入集群,测试失败,无法快速恢复

处理

1.执行 执行 ./elasticsearch-node unsafe-bootstrap

删掉 /usr/share/elasticsearch/data/node.lock

继续执行 ./elasticsearch-node unsafe-bootstrap

继续删 /usr/share/elasticsearch/data/_state/write.lock

继续执行 ./elasticsearch-node unsafe-bootstrap

选择N

找到term最大的再选择y

2.节点逐一 ./bin/elasticsearch-node detach-cluster  (不包括master节点),detach之后重启节点,观察,节点会加入集群。

原理分析

// TODO

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch8.2扩容挪数据master出现异常 的相关文章

随机推荐

  • 华为三层交换机VRRP与DHCP综合实验

    要求设计 1 公司有三个部门 为确保通信安全 每个部门都处于独立的广播域 2 Vlan40为外来人员所在的Vlan 此vlan中的主机只能访问DHCP服务器 3 每个部门的 IP地址规划为 192 168 xx 0 24 4 每个部门的主机
  • 【前端】Vue项目:旅游App-(18)TabBar:debug,非点击tabBar的路由跳转active显示问题

    文章目录 目标 过程与代码 原因与属性的添加 currentIndex的修改 效果 总代码 修改的文件 tab bar vue 本项目博客总结 前端 Vue项目 旅游App 博客总结 目标 当我们在url处实现路由跳转时 tabBar没有产
  • java程序语句_Java-语言编程

    创建节点和插入节点 很多时候我们想要在某个位置插入一个新的节点 此时我们首先需要有一个节点存在 可以通过以下几种方式创建新节点 创建节点 方法描述createElement 创建一个新的节点 需要传入节点的标签名称 返回创建的元素对象cre
  • 100天精通Python(数据分析篇)——第74天:Panda索引标签修改函数大全(参数说明+代码实战)

    文章目录 本文导读 一 添加标签前后缀 1 add prefix str 2 add suffix str 二 标签重命名 1 set axis 1 修改行标签 2 修改列标签
  • oracle统计信息详解

    收集oracle统计信息 优化器统计范围 表统计 行数 块数 行平均长度 all tables NUM ROWS BLOCKS AVG ROW LEN 列统计 列中唯一值的数量 NDV NULL值的数量 数据分布 DBA TAB COLUM
  • RGMII Delay的一点理解

    RGMII delay 如何产生的 可能是RGMII协议规定如此 因此在soc内部集成的RGMII片内外设 将时钟边沿与数据跳变在同一时刻发生 但是RGMII接收端是需要在时钟的边沿处捕获数据的 因此就需要将发送时钟移位 进而使接收端可以正
  • js 数组id去重

    可以用下面的方法来去除数组中的重复项 先将数组转换为 Set 类型 然后再转回数组 这种方法的缺点是会丢失原数组的顺序 const arr 1 2 3 3 2 1 const unique new Set arr console log u
  • C语言PTA题目:7-22 1022 利息

    输入存款金额money 存期year和年利率rate 根据下列公式计算存款到期时的利息interest 税前 输入格式 输入可能有多行 每行有3个整数 分别表示金额 存期 年 年利率 百分比数 输出格式 根据money 1 rate yea
  • 服务器怎么把自己的项目放上去,怎么把项目放到云服务器上

    怎么把项目放到云服务器上 内容精选 换一换 云服务器组是对云服务器的一种逻辑划分 云服务器组中的弹性云服务器遵从同一策略 当前仅支持反亲和性 即同一云服务器组中的弹性云服务器分散地创建在不同的主机上 提高业务的可靠性 您可以使用云服务器组将
  • 微信小程序:字体保持大小

    小程序和网页差不多 前台用wxml把内容摆好 然后用css调整样式 所以和web一样 必须要能够精确控制每一个元素的大小 在Web中 通过CSS基本达到了像素级的控制 但在小程序中 情况有所不同 下面是我通过微信提供的事件分析 把近7天访问
  • 数字化转型方法论汇总(学习笔记)

    数字化转型方法论汇总 德勤制造业数字化转型方法论 数字化转型的3大要点 1 从满足利益相关者期望出发 2 以企业价值引领业务模式创新 3 以信息作为企业神经中枢 重塑组织协同 一 关注集团利益相关者 两类利益相关者 集团外部的证监会 国资委
  • 比较2个数组是否一样

    需求 如果两个数组的类型 元素个数 元素顺序和内容是一样的我们就认为这2个数组是一模一样的 请使用方法完成 能够判断任意两个整型数组是否一样 并返回true或者false 分析 1 定义方法 接收2个整型数组 gt 是否需要参数 返回值类型
  • 《Win10——如何进入高级启动选项》

    Win10 如何进入高级启动选项 第一种方法 1 管理员命令提示符输入如下代码 自动重启并进入高级启动选项 shutdown r o f t 00 第二种方法 1 管理员命令提示符输入以下代码 开机时按下F8 进入高级启动选项 bcdedi
  • java基础总结(二十五)--访问修饰符protected

    三 protected 关键字的真正内涵 很多介绍Java语言的书籍 包括 Java编程思想 都对protected介绍的比较的简单 基本都是一句话 就是 被protected修饰的成员对于本包和其子类可见 这种说法有点太过含糊 常常会对大
  • 基于python 自写Tobii VI-T滤波器

    文章目录 官网参考文档 Gap fill in interpolation Eye selection Noise reduction Velocity calculator I VT classifier Merge adjacent f
  • react-router-dom V6

    目录 1 前言 2 变更概览 将 Switch 升级为 Routes 路由匹配组件参数 由 component 改为 element 相对路径识别 子路由不需要补全父路由的path react会自动补全 用 useNavigate 替代 u
  • web开发编码_编码和游戏开发

    web开发编码 As a game enthusiast and a beginner programmer I always wonder what it would be like to develop a game 作为游戏发烧友和初
  • 入门接口测试

    首先 什么是接口呢 接口一般来说有两种 一种是程序内部的接口 一种是系统对外的接口 系统对外的接口 比如你要从别的网站或服务器上获取资源或信息 别人肯定不会把数据库共享给你 他只能给你提供一个他们写好的方法来获取数据 你引用他提供的接口就能
  • gcc 若干安全相关选项

    1 FORTIFY SOURCE buffer over flow 防御 参考 http fedoraproject org wiki Security Features Compile Time Buffer Checks 28FORTI
  • Elasticsearch8.2扩容挪数据master出现异常

    背景 1 ES 8 2 版本集群 从10节点扩到20节点 变更 目标替换老的10个节点 先扩容新节点再下掉老节点 2 挪数据执行exclude API 排除老节点IP 设置迁移速率为800Mb s 默认40Mb s 异常 1 迁移过程中突然