ES故障节点平替方案-2022

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
2
3
4
5
6
7
PUT _cluster/settings 
{
"persistent": {
"cluster.routing.allocation.enable": "none",
"cluster.routing.rebalance.enable": "none"
}
}

3.3、调整集群每秒传输字节

1
2
3
4
5
6
PUT /_cluster/settings
{
"persistent" : {
"indices.recovery.max_bytes_per_sec" : "80mb"
}
}

3.4、手动迁移故障节点118分片及副本到其他在线节点

参数解析:move将started(已启动)状态的分片从一个节点移动到另一个节点。move包含四个属性:index(索引名)、shard(分片编号)、from_node(节点名,从哪个节点移动)、to_node(节点名,移动到哪个节点)

  • 手动迁移命令:迁移索引分片命令.txt-5.9kB

3.5、确认故障节点分片已迁移完毕后,关停118 ES服务

3.6、新机器更换IP地址为118

提示:更换服务器IP需联系金融云张万星 电话:13391857556

3.7、拷贝118配置文件到新节点

提示:已提前完成,启动前进行核对

3.8、启动新118服务添加至集群

3.9、命令迁移原分片(保证和之前截图一致)

  • 手动回迁命令:迁移索引分片至原节点-回迁.txt-5.9kB

3.9、迁移完成后,开启集群自平衡

1
2
3
4
5
6
7
PUT _cluster/settings 
{
"persistent": {
"cluster.routing.allocation.enable": "all",
"cluster.routing.rebalance.enable": "all"
}
}
-------------本文结束感谢您的阅读-------------
LiGuanCheng wechat
如有问题,请与我微信交流或通过右下角“daovoice”与我联系~。
请我喝一杯咖啡~