ELK-03-ES数据迁移

0. 环境信息

0.1 主机信息

CPUMemDISK
48c500GB32TB

该集群为9节点集群,6台数据节点主机是上面配置,3台master节点大概是12c、48g、200GB(和其他服务混用主机了)

0.2 集群节点信息

#  curl -X GET "xx.xx.xx.xx:10004/_cat/nodes?v"
ip          heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
xx.xx.x.87           65          99   5    3.98    2.93     2.35 d         -      es-newdata4
xx.xx.x.22           23          99  10    2.13    1.83     1.48 mi        -      es-master1
xx.xx.x.85           54          99   5    1.68    1.16     1.07 d         -      es-newdata2
xx.xx.x.88           58          98   5    1.49    2.66     2.64 d         -      es-newdata5
xx.xx.x.84           72          99   5    1.65    2.19     2.05 d         -      es-newdata1
xx.xx.x.23           17          99   7    0.86    0.89     1.05 mi        *      es-master2
xx.xx.x.24           43          99   7    1.61    1.33     1.24 mi        -      es-master3
xx.xx.x.89           63          99   5    0.51    0.95     0.96 d         -      es-newdata6
xx.xx.x.86           66          99   4    0.86    1.51     1.64 d         -      es-newdata3

0.3 索引数据信息

es集群数据信息:
9 nodes----1218 indices----64450 shards----26968596160 docs----16.98TB
 
#  curl -s "xx.xx.x.22:10004/_cat/shards"  | grep es-newdata1 | wc -l
11956

每台数据节点大概1w+的分片数据

1. 迁移需求

  1. 集群数据节点全部使用的是物理机,newdata3节点物理机节点坏了一根内存,不过由于机器内存很大,好的内存不影响主机使用
  2. 准备将newdata3迁移到其他节点后,停止newdata3节点es服务,停止主机
  3. 更换内存
  4. 启动newdata3节点主机,启动newdata3节点es服务,重新分片数据

2. 实际动作

1.禁止节点分配数据
curl -H "Content-Type: application/json" -XPUT xx.xx.x.22:10004/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.exclude._name" : "es-newdata3" } }'
观察发现分片数据迁移很慢

2.查看集群分片恢复个数和节点传输最大带宽
curl -H "Content-Type: application/json" -XGET xx.xx.x.22:10004/_cluster/settings
发现集群分片恢复个数是默认的2个

3.调整集群分片恢复个数和节点传输最大带宽
curl -H "Content-Type: application/json" -XPUT xx.xx.x.22:10004/_cluster/settings -d '{"persistent": { "cluster.routing.allocation.node_concurrent_recoveries": "40", "indices.recovery.max_bytes_per_sec": "80mb" }}'
数值可以根据自己机器进行调整

cluster.routing.allocation.node_concurrent_recoveries属性集群中每个节点上分片并发恢复的个数,
默认为2。可根据老数据节点的 CPU 核数 * 4来确定具体的值,但不要超过50。例如,老数据节点为4核16G,则建
议该值设置为16;老数据节点为16核64G,则建议该值设置为50。如果发现调大了该值后集群的稳定性受到影响,可
适当减小该值。
indices.recovery.max_bytes_per_sec属性表示节点之间数据传输的最大带宽限制,默认为40mb。该值不宜
设置的过高,否则会破坏集群的稳定性。客户可以5mb为步长,逐步调整该限制值,并持续观察集群的稳定性,最终
选择一个相对平衡的值。

4.机器更换好内存后,解除禁止节点分配数据动作
curl -H "Content-Type: application/json" -XPUT xx.xx.x.22:10004/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.exclude._name" : "" } }'

3. 问题总结

1.关机前,数据迁移了大概5个小时
2.机器恢复后,数据重新分片速度特别慢,修改集群分片恢复个数和节点传输最大带宽没有作用,始终只修改2个索引,es也没有日志报错(还未理解为什么),但不影响业务使用
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值