我们可以设置集群的平衡参数来暂时禁用掉平衡, 具体步骤如下:
1. 如果可能的话, 先暂停掉数据新增和更新操作, 这样会提高集群恢复的时间;
2. 禁用集群分片平衡操作, 直到告诉集群可以恢复平衡操作为止, 禁用配置方式:
- PUT /_cluster/settings
- {
- "transient" : {
- "cluster.routing.allocation.enable" : "none"
- }
- }
注意: put 操作的时候, 如果不是在集群节点上, 需要加上完成的路径, 如:
- curl - XPUT http: //192.168.1.2:9200/_cluster/settings -d'
- {
- "transient": {
- "cluster.routing.allocation.enable": "none"
- }
- }
- ''
3. 关掉需要维护的节点;
4. 执行维护 / 升级;
5. 重启该节点, 保证该节点顺利加入到集群中;
6. 重启平衡参数配置操作, 修改配置方式:
- PUT /_cluster/settings
- {
- "transient" : {
- "cluster.routing.allocation.enable" : "all"
- }
- }
注意: 节点重启完成后, 数据的平衡可能需要一段时间, 需要等到到集群状态为绿色为止, 在进行其他节点的操作;
7. 重复步骤 2-6 完成其他节点的维护操作;
8. 如果之前停掉了更新索引的操作, 这个时候就可以恢复了. 不过要等集群状态健康后, 这样能使集群快速恢复健康;
来源: http://www.bubuko.com/infodetail-2775236.html