停机维护时操作步骤
1、关闭分片分配
此操作会停止所有的分片动作,以及分片的数据移动。

PUT _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.enable": "none"
  }
}

2、执行同步刷新

POST _flush/synced

3、关闭自动平衡(重要)
这一项很重要,如果配置了关闭分片分配,没有关闭自平衡,也会在打开分片分配之后出现集群自平衡

PUT /_cluster/settings?pretty
{
  "transient" : {
    "cluster.routing.rebalance.enable" : "none"
  }
}
# 设置以后需要手动验证一下
curl http://{host}:9200/_cluster/settings?pretty
4、延迟副本分片的分配
PUT /_all/_settings
{
  "settings": {
    "index.unassigned.node_left.delayed_timeout": "5m"
  }
}

上面的步骤都做完了,集群自平衡关闭了,分片功能关闭了,就可以停机维护服务

5、重启之后
打开分片分配,就会把分片上数据不一致的进行同步,不会出现再平衡

PUT _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.enable": "all"
  }
}

curl -X PUT "192.168.10.20:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
  "persistent": {
    "cluster.routing.allocation.enable": "primaries"
  }
}
'
curl -X POST "192.168.10.20:9200/_flush/synced?pretty"

[root@confluence_elk-es ~]# curl 'http://192.168.10.20:9200/_cat/nodes?v'
ip             heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.1.10           86          98  35    1.55    1.85     2.57 mdi       *      server4
192.168.1.20           75          99  36    0.86    0.98     1.28 mdi       -      server2
192.168.1.30            55          99   2    0.00    0.12     0.35 mdi       -      server3
192.168.1.40          70          95  11    0.81    1.20     1.80 mdi       -      server5
192.168.1.50             77          97  36    0.96    1.56     2.61 mdi       -      server1

curl -XPUT -H 'Content-Type:application/json' http://192.168.10.20:9200/_cluster/settings -d '
{
    "transient" : {
        "cluster.routing.allocation.enable" : "all"
    }
}'

这一步加快分片同步速度。把线程修改为10,最大传输根据实际情况而定。

curl -X PUT "192.168.10.20:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
    "persistent": {
        "cluster.routing.allocation.node_concurrent_recoveries": 10,
        "indices.recovery.max_bytes_per_sec": "40mb"
    }
}
'

如下四步:

curl -X PUT "192.168.1.20:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
"transient": {
"cluster.routing.allocation.enable": "none"
}
}
'

curl -X POST "192.168.1.20:9200/_flush/synced?pretty"

curl -XPUT -H 'Content-Type:application/json'  http://192.168.1.20:9200/_cluster/settings -d '
{
"transient" : {
"cluster.routing.rebalance.enable" : "none"
}
}'

curl -XPUT -H 'Content-Type:application/json'  http://192.168.1.20:9200/_cluster/settings -d '
{
    "transient" : {
        "cluster.routing.allocation.enable" : "all"
    }
}'
最后修改日期: 2022年5月27日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。