Easysearch 移除 Data 节点注意事项
2025-04-23
之前介绍过 Easysearch 移除 Master 节点注意事项,感兴趣的小伙伴可以点此 查看。本篇继续介绍移除 Data 节点注意事项,帮助运维人员最大限度降低操作的影响。
潜在影响 #
基于 Easysearch 的副本分片机制,在所有索引均配置副本的前提下,直接下线一个数据节点不会导致数据丢失或读写中断。然而,该操作会触发以下连锁反应:
- 集群状态:节点直接下线,集群状态将变为 Yellow 状态,可能触发监控告警。
- 资源消耗:集群将自动分配副本分片以替换缺失的副本,使集群重回 Green 状态。此过程需占用一定网络带宽与磁盘I/O资源。
优化操作过程 #
- 选择业务低峰期
因为恢复分片要占用一定资源,可能会影响读写延时,建议选择一个业务低峰期执行该操作。
- 评估磁盘容量
下线节点的数据默认会均匀分布到剩下的数据节点上,评估剩下的数据节点是否有磁盘容纳该数据,磁盘利用率是否会到达 磁盘水位线。
- 检查集群健康状态
操作前确保集群状态为 Green(GET _cluster/health),所有主分片和副本分片均已分配。若状态为黄色或红色,需先解决分片未分配或节点故障问题。
- 迁移分片
通过 PUT _cluster/settings 设置排除要下线节点的 IP 或名称,触发分片迁移。例如:
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.exclude._ip": "192.168.1.9"
}
}
支持按 _name、_id 等属性过滤。
- 监控分片迁移进度
使用 GET _cat/tasks?v 查看相关恢复任务都已完成。
使用 GET _cat/allocation?v 查看分片分配情况,确认目标节点分片数降为 0。
- 关闭节点服务
在分片迁移完成后,停止目标节点的进程。
使用 GET _cat/nodes?v 查看节点情况进行确认。
- 清理排除配置
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.exclude._ip": null
}
}
有任何问题,欢迎加我微信沟通。