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