ES故障节点平替方案-2022
1、事件背景
2022年8月11日早间7:26分微信告警,集群出现
没有分配一个或多个复制分片
,状态为YELLOW状态,随后全面排查服务器相关节点日志后,发现10.32.58.118的系统MESSAGE日志出现磁盘错误(EXT4-fs (vdb1): Delayed block allocation failed for inode 3932853 at logical offset 77824 with max blocks 2048 with error 5),经金融云技术人员分析服务磁盘很可能已经出现逻辑坏道,需要执行fsck文件系统修复,此修复必须要重启机器执行。需在保证业务连续性的情况下,平替节点(不更换ES节点IP)。
2、集群信息汇总
平台 | IP | 用途 | ES版本 | 磁盘容量 | 资源配置 | 类型 |
---|---|---|---|---|---|---|
CentOS 7.4.1708 | 10.32.58.117 | ES | 7.3.2 | 1TB | 32C/64G | 生产 |
CentOS 7.4.1708 | 10.32.58.118 | ES | 7.3.2 | 1TB | 32C/64G | 生产(fault) |
CentOS 7.4.1708 | 10.32.58.119 | ES | 7.3.2 | 1TB | 32C/64G | 生产 |
CentOS 7.4.1708 | 10.32.58.145 | ES | 7.3.2 | 1TB | 32C/64G | 生产 |
CentOS 7.4.1708 | 10.32.58.146 | ES | 7.3.2 | 1TB | 32C/64G | 生产 |
CentOS 7.4.1708 | 10.32.58.170 | ES | 7.3.2 | 1TB | 32C/64G | 生产(new) |
3、节点平替方案
3.1、确认集群磁盘容量策略及当前可用容量
- 查看集群磁盘容量策略:
GET _cluster/settings?include_defaults&flat_settings
1
2
3"cluster.routing.allocation.disk.watermark.high" : "90%",
"cluster.routing.allocation.disk.watermark.low" : "85%",
"cluster.routing.allocation.enable" : "all",
提示:注意目标节点的空间是否充足,满足磁盘分片创建的水位线。
3.2、关闭现有集群自平衡机制
- 集群设置信息查看:
GET _cluster/settings?include_defaults&flat_settings
1 | PUT _cluster/settings |
3.3、调整集群每秒传输字节
1 | PUT /_cluster/settings |
3.4、手动迁移故障节点118分片及副本到其他在线节点
参数解析:
move
将started(已启动)状态的分片从一个节点移动到另一个节点。move包含四个属性:index(索引名)、shard(分片编号)、from_node(节点名,从哪个节点移动)、to_node(节点名,移动到哪个节点)
- 手动迁移命令:
3.5、确认故障节点分片已迁移完毕后,关停118 ES服务
3.6、新机器更换IP地址为118
提示:更换服务器IP需联系金融云张万星 电话:13391857556
3.7、拷贝118配置文件到新节点
提示:已提前完成,启动前进行核对
3.8、启动新118服务添加至集群
3.9、命令迁移原分片(保证和之前截图一致)
- 手动回迁命令:
3.9、迁移完成后,开启集群自平衡
1 | PUT _cluster/settings |