Redis-22Redis-集群管理

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis-22Redis-集群管理

概述

redis-trib.rb

redis-trib.rb是redis官方提供的集群管理工具,由ruby开发实现。通过该工具可以实现集群的创建、增加节点、删除节点、分片迁移等等功能。


使用帮助

redis-trib.rb通过调用redis的接口来实现管理维护功能,需要使用redis的ruby接口库,假设都已经安装完成,如果没有集群环境请参考上篇博文

Redis-21Redis集群模式-Centos6.5上3台主机3主3从的配置及通过代码访问集群

执行redis-trib.rb,查看帮助信息

[root@artisan bin]# ./redis-trib.rb 
Usage: redis-trib <command> <options> <arguments ...>
  create          host1:port1 ... hostN:portN
                  --replicas <arg>
  check           host:port
  info            host:port
  fix             host:port
                  --timeout <arg>
  reshard         host:port
                  --from <arg>
                  --to <arg>
                  --slots <arg>
                  --yes
                  --timeout <arg>
                  --pipeline <arg>
  rebalance       host:port
                  --weight <arg>
                  --auto-weights
                  --use-empty-masters
                  --timeout <arg>
                  --simulate
                  --pipeline <arg>
                  --threshold <arg>
  add-node        new_host:new_port existing_host:existing_port
                  --slave
                  --master-id <arg>
  del-node        host:port node_id
  set-timeout     host:port milliseconds
  call            host:port command arg arg .. arg
  import          host:port
                  --from <arg>
                  --copy
                  --replace
  help            (show this help)
For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster.
[root@artisan bin]# 

使用命令时参数顺序必须按照要求:  

有个全局参数--password ,当缓存集群设置密码授权(requirepass)时,使用redis-trib.rb工具时需要使用该参数。


创建集群(create)

功能

将传入的各redis节点构建成redis集群:连接各redis节点,并为它们分配各自的数据分片,协调建立master-slave关系,协调完成各redis节点间的握手认证,最终建立好redis集群。


参数

<command>:  create   

创建集群的命令

<options>: --replicas <arg

replicas为副本个数选项,副本数通过arg传入。该选项不设置时,默认为无副,即设置每个master节点的slave节点个数。

<arguments>:host1:port1 ... hostN:portN

组成redis集群的各redis节点信息


示例

[root@artisan bin]# ./redis-trib.rb create --replicas 1 192.168.31.66:7000  192.168.31.66:7001   192.168.31.56:7002  192.168.31.56:7003 192.168.31.176:7004  192.168.31.176:7005
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.31.66:7000
192.168.31.56:7002
192.168.31.176:7004
Adding replica 192.168.31.56:7003 to 192.168.31.66:7000
Adding replica 192.168.31.176:7005 to 192.168.31.56:7002
Adding replica 192.168.31.66:7001 to 192.168.31.176:7004
M: e22926a5b6707d0c6279f51efeb397d6e312e756 192.168.31.66:7000
   slots:0-5460 (5461 slots) master
S: e00e923a523c3ca446b756de98dc8ab03b3cbbd1 192.168.31.66:7001
   replicates cee4aa629375ccc3417a37d8df7f454f93947510
M: 504d010ead65a4a0b628725be47b717ff26806fa 192.168.31.56:7002
   slots:5461-10922 (5462 slots) master
S: e0dfd0e65710ca487452d3b6e893267439d03f3a 192.168.31.56:7003
   replicates e22926a5b6707d0c6279f51efeb397d6e312e756
M: cee4aa629375ccc3417a37d8df7f454f93947510 192.168.31.176:7004
   slots:10923-16383 (5461 slots) master
S: 75c4cedc4822e64c45cedec8f5190de77fa3858c 192.168.31.176:7005
   replicates 504d010ead65a4a0b628725be47b717ff26806fa
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join...
>>> Performing Cluster Check (using node 192.168.31.66:7000)
M: e22926a5b6707d0c6279f51efeb397d6e312e756 192.168.31.66:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: cee4aa629375ccc3417a37d8df7f454f93947510 192.168.31.176:7004
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: e0dfd0e65710ca487452d3b6e893267439d03f3a 192.168.31.56:7003
   slots: (0 slots) slave
   replicates e22926a5b6707d0c6279f51efeb397d6e312e756
S: e00e923a523c3ca446b756de98dc8ab03b3cbbd1 192.168.31.66:7001
   slots: (0 slots) slave
   replicates cee4aa629375ccc3417a37d8df7f454f93947510
M: 504d010ead65a4a0b628725be47b717ff26806fa 192.168.31.56:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 75c4cedc4822e64c45cedec8f5190de77fa3858c 192.168.31.176:7005
   slots: (0 slots) slave
   replicates 504d010ead65a4a0b628725be47b717ff26806fa
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@artisan bin]#

创建完毕,使用redis-cli连接到集群中的某个节点,使用cluster nodes命令可以查看到集群各节点的运行情况。


注意事项

  • 各redis节点必须运行在集群模式下(cluster-enabled yes)
  • 各redis节点需要已经启动完毕
  • 各redis节点不能存在于其他redis集群中
  • 各redis节点中不能存在数据
  • master节点个数不能小于3 。[ master节点数 = 输入的节点总数 / (replicas + 1) ]

因为redis集群是通过选举机制来判断节点可用性,需要有半数以上master节点投票才有效。如果master个数小于3,那么将无法有效认定节点的可用性,当某个节点故障时,redis集群也就无法在master故障时自动进行主从切换。


增加节点(add-node)

功能

将传入的redis节点加入到redis集群:通过集群中的某个节点获取到集群信息,并协调集群中的节点与新增节点进行握手认证,将新节点加入到该集群中。如果是新增slave节点,那还会协调新增节点主动与master建立主从联系。


参数

add-node        new_host:new_port existing_host:existing_port
                  --slave
                  --master-id <arg>
<command>:  add-node

集群增加节点的命令名字

<options>: --slave --master-id <arg>

slave为新增slave节点选项。增加该选项,则新增的节点会被设置成集群中某个master的的slave.

master-id为slave节点的主节点标识,通过arg传入。该选项在–slave选项存在时有效,表明新增加的节点作为该master节点的slave存在。

【使用了--slave选项,而没有使用--master-id 选项时,工具会自动选择一个slave节点数最少的master节点】

<arguments>:new_host:new_port existing_host:existing_port

new_host:new_port 为新增加节点的信息

existing_host:existing_port 是集群中的某个节点信息


示例

[root@artisan bin]# ./redis-cli -c -h 192.168.31.66 -p 7000
192.168.31.66:7000> CLUSTER NODES
e22926a5b6707d0c6279f51efeb397d6e312e756 192.168.31.66:7000@17000 myself,master - 0 1540073866000 1 connected 0-5460
e0dfd0e65710ca487452d3b6e893267439d03f3a 192.168.31.56:7003@17003 slave e22926a5b6707d0c6279f51efeb397d6e312e756 0 1540073872037 4 connected
75c4cedc4822e64c45cedec8f5190de77fa3858c 192.168.31.176:7005@17005 slave 504d010ead65a4a0b628725be47b717ff26806fa 0 1540073874056 9 connected
cee4aa629375ccc3417a37d8df7f454f93947510 192.168.31.176:7004@17004 slave e00e923a523c3ca446b756de98dc8ab03b3cbbd1 0 1540073873045 8 connected
e00e923a523c3ca446b756de98dc8ab03b3cbbd1 192.168.31.66:7001@17001 master - 0 1540073872036 8 connected 10923-16383
504d010ead65a4a0b628725be47b717ff26806fa 192.168.31.56:7002@17002 master - 0 1540073873552 9 connected 5461-10922
192.168.31.66:7000> exit

部署端口为7006 redis节点,这里我们从7001目录下cp个redis.conf到新建的7006端口目录下,然后将7001批量替换为7006

[root@artisan 7006]# ll
total 60
-rw-r--r--. 1 root root 58779 Oct 21 06:50 redis.conf
[root@artisan 7006]# 
[root@artisan 7006]# sed -i s/7001/7006/g redis.conf 
[root@artisan 7006]# 
[root@artisan 7006]# grep 7006 redis.conf 
port 7006
pidfile /var/run/redis_7006.pid
dbfilename dump_7006.rdb
appendfilename "appendonly_7006.aof"
cluster-config-file nodes-7006.conf
[root@artisan 7006]#

启动并查看

[root@artisan redis-cluster]# /usr/local/redis-4.0.11/bin/redis-server /usr/local/redis-cluster/7006/redis.conf
5222:C 21 Oct 06:55:22.544 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
5222:C 21 Oct 06:55:22.544 # Redis version=4.0.11, bits=64, commit=00000000, modified=0, pid=5222, just started
5222:C 21 Oct 06:55:22.544 # Configuration loaded
[root@artisan redis-cluster]# 
[root@artisan redis-cluster]# ps -ef|grep redis-server |grep -v grep
root       2213      1  0 Oct20 ?        00:08:41 /usr/local/redis-4.0.11/bin/redis-server 192.168.31.66:7000 [cluster]            
root       2215      1  0 Oct20 ?        00:08:42 /usr/local/redis-4.0.11/bin/redis-server 192.168.31.66:7001 [cluster]            
root       5223      1  0 06:55 ?        00:00:00 /usr/local/redis-4.0.11/bin/redis-server 192.168.31.66:7006 [cluster]            
[root@artisan redis-cluster]# 

添加节点

[root@artisan bin]# pwd
/usr/local/redis-4.0.11/bin
[root@artisan bin]# ls
mkreleasehdr.sh  redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server  redis-trib.rb
[root@artisan bin]# ./redis-trib.rb add-node 192.168.31.66:7006 192.168.31.66:7000
>>> Adding node 192.168.31.66:7006 to cluster 192.168.31.66:7000
>>> Performing Cluster Check (using node 192.168.31.66:7000)
M: e22926a5b6707d0c6279f51efeb397d6e312e756 192.168.31.66:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: e0dfd0e65710ca487452d3b6e893267439d03f3a 192.168.31.56:7003
   slots: (0 slots) slave
   replicates e22926a5b6707d0c6279f51efeb397d6e312e756
S: 75c4cedc4822e64c45cedec8f5190de77fa3858c 192.168.31.176:7005
   slots: (0 slots) slave
   replicates 504d010ead65a4a0b628725be47b717ff26806fa
S: cee4aa629375ccc3417a37d8df7f454f93947510 192.168.31.176:7004
   slots: (0 slots) slave
   replicates e00e923a523c3ca446b756de98dc8ab03b3cbbd1
M: e00e923a523c3ca446b756de98dc8ab03b3cbbd1 192.168.31.66:7001
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
M: 504d010ead65a4a0b628725be47b717ff26806fa 192.168.31.56:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 192.168.31.66:7006 to make it join the cluster.
[OK] New node added correctly.
[root@artisan bin]# 

增加完毕,使用redis-cli连接到集群中的某个节点,使用cluster nodes命令可以查看到新的redis节点已经增加到集群节点中。

[root@artisan bin]# ./redis-cli -c -h 192.168.31.66 -p 7000
192.168.31.66:7000> CLUSTER NODES
a6270f192bb155442269fcee107f330490cc99b3 192.168.31.66:7006@17006 master - 0 1540076493722 0 connected
e22926a5b6707d0c6279f51efeb397d6e312e756 192.168.31.66:7000@17000 myself,master - 0 1540076494000 1 connected 0-5460
e0dfd0e65710ca487452d3b6e893267439d03f3a 192.168.31.56:7003@17003 slave e22926a5b6707d0c6279f51efeb397d6e312e756 0 1540076493521 4 connected
75c4cedc4822e64c45cedec8f5190de77fa3858c 192.168.31.176:7005@17005 slave 504d010ead65a4a0b628725be47b717ff26806fa 0 1540076493215 9 connected
cee4aa629375ccc3417a37d8df7f454f93947510 192.168.31.176:7004@17004 slave e00e923a523c3ca446b756de98dc8ab03b3cbbd1 0 1540076494729 8 connected
e00e923a523c3ca446b756de98dc8ab03b3cbbd1 192.168.31.66:7001@17001 master - 0 1540076494528 8 connected 10923-16383
504d010ead65a4a0b628725be47b717ff26806fa 192.168.31.56:7002@17002 master - 0 1540076494729 9 connected 5461-10922
192.168.31.66:7000> 

注意事项

  • 新增redis节点必须运行在集群模式下(cluster-enabled yes)
  • 新增redis节点以及redis集群需要已经启动完毕
  • 新增redis节点不能已经存在于其他redis集群中
  • 新增redis节点中不能存在数据
  • 新增的master节点并不承担数据分片,需要再使用分片迁移来为其划分数据分片

删除节点(del-node)

功能

将指定个数的分片由原节点迁移到目标节点中:通过集群中的某个节点获取到集群信息,从原节点中自动选取指定个数的分片,并协调完成这些分片由原节点迁移到目标节点。


参数

del-node        host:port node_id
<command>:  del-node

集群删除节点的命令名字

<arguments>:host:port node-id

host:port 为集群中的某个节点信息

node-id 为待删除节点标识


示例

我们把刚才添加的7006 删除掉

[root@artisan bin]# ./redis-trib.rb del-node 192.168.31.66:7006 a6270f192bb155442269fcee107f330490cc99b3
>>> Removing node a6270f192bb155442269fcee107f330490cc99b3 from cluster 192.168.31.66:7006
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.
[root@artisan bin]# 

删除完毕,使用redis-cli连接到集群中的某个节点,使用cluster nodes命令可以查看到指定删除的redis节点已经不在集群节点中

重新查看节点信息

注意事项

  • Redis集群中各节点已经启动完毕
  • 待删除的redis节点并不承担数据分片,删除带有数据分片的节点报错如下:

分片迁移(reshard)

功能

将指定个数的分片由原节点迁移到目标节点中:通过集群中的某个节点获取到集群信息,从原节点中自动选取指定个数的分片,并协调完成这些分片由原节点迁移到目标节点。


参数

reshard         host:port
                  --from <arg>
                  --to <arg>
                  --slots <arg>
                  --yes
                  --timeout <arg>
                  --pipeline <arg>
<command>:  reshard

集群分片迁移的命令名字

<options>: --slots <arg> --to <arg> --yes --from <arg> --pipeline <arg>

slots为要迁移的分片个数(此处为个数,具体迁移哪些分片,由工具自动选取)

to 为分片要迁移到的目标节点标识。

from 为分片要迁出的来源节点标识列表(列表分隔符为逗号,如果从所有节点中迁出部分节点,那么可以设置为–from all)

yes 为无需人工确认,直接进行分片迁移(不设置时,需要人工确认是否继续执行)

pipeline 为批量迁移键的数量,默认取值为10。

<arguments>:host:port

host:port 为集群中的某个节点信息


示例

启动7006,添加到集群

[root@artisan redis-cluster]# /usr/local/redis-4.0.11/bin/redis-server /usr/local/redis-cluster/7006/redis.conf
5288:C 21 Oct 07:16:49.599 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
5288:C 21 Oct 07:16:49.599 # Redis version=4.0.11, bits=64, commit=00000000, modified=0, pid=5288, just started
5288:C 21 Oct 07:16:49.599 # Configuration loaded
[root@artisan redis-cluster]# 
[root@artisan redis-cluster]# 
[root@artisan redis-cluster]# ps -ef|grep redis-server |grep -v grep
root       2213      1  0 Oct20 ?        00:08:46 /usr/local/redis-4.0.11/bin/redis-server 192.168.31.66:7000 [cluster]            
root       2215      1  0 Oct20 ?        00:08:47 /usr/local/redis-4.0.11/bin/redis-server 192.168.31.66:7001 [cluster]            
root       5289      1  0 07:16 ?        00:00:00 /usr/local/redis-4.0.11/bin/redis-server 192.168.31.66:7006 [cluster]            
[root@artisan redis-cluster]# 
[root@artisan bin]# ./redis-trib.rb add-node 192.168.31.66:7006 192.168.31.66:7000
>>> Adding node 192.168.31.66:7006 to cluster 192.168.31.66:7000
>>> Performing Cluster Check (using node 192.168.31.66:7000)
M: e22926a5b6707d0c6279f51efeb397d6e312e756 192.168.31.66:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: e0dfd0e65710ca487452d3b6e893267439d03f3a 192.168.31.56:7003
   slots: (0 slots) slave
   replicates e22926a5b6707d0c6279f51efeb397d6e312e756
S: 75c4cedc4822e64c45cedec8f5190de77fa3858c 192.168.31.176:7005
   slots: (0 slots) slave
   replicates 504d010ead65a4a0b628725be47b717ff26806fa
S: cee4aa629375ccc3417a37d8df7f454f93947510 192.168.31.176:7004
   slots: (0 slots) slave
   replicates e00e923a523c3ca446b756de98dc8ab03b3cbbd1
M: e00e923a523c3ca446b756de98dc8ab03b3cbbd1 192.168.31.66:7001
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
M: 504d010ead65a4a0b628725be47b717ff26806fa 192.168.31.56:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 192.168.31.66:7006 to make it join the cluster.
[OK] New node added correctly.
[root@artisan bin]# 

reshard

[root@artisan bin]# ./redis-trib.rb reshard --slots 300 --to 91bc7b99ec9ca647f9f9f3fbdff6c9f12cae9ec1 --from all --yes 192.168.31.66:7006
>>> Performing Cluster Check (using node 192.168.31.66:7006)
M: 91bc7b99ec9ca647f9f9f3fbdff6c9f12cae9ec1 192.168.31.66:7006
   slots: (0 slots) master
   0 additional replica(s)
S: 75c4cedc4822e64c45cedec8f5190de77fa3858c 192.168.31.176:7005
   slots: (0 slots) slave
   replicates 504d010ead65a4a0b628725be47b717ff26806fa
M: 504d010ead65a4a0b628725be47b717ff26806fa 192.168.31.56:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
M: e22926a5b6707d0c6279f51efeb397d6e312e756 192.168.31.66:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: cee4aa629375ccc3417a37d8df7f454f93947510 192.168.31.176:7004
   slots: (0 slots) slave
   replicates e00e923a523c3ca446b756de98dc8ab03b3cbbd1
S: e0dfd0e65710ca487452d3b6e893267439d03f3a 192.168.31.56:7003
   slots: (0 slots) slave
   replicates e22926a5b6707d0c6279f51efeb397d6e312e756
M: e00e923a523c3ca446b756de98dc8ab03b3cbbd1 192.168.31.66:7001
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
Ready to move 300 slots.
  Source nodes:
    M: 504d010ead65a4a0b628725be47b717ff26806fa 192.168.31.56:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
    M: e22926a5b6707d0c6279f51efeb397d6e312e756 192.168.31.66:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
    M: e00e923a523c3ca446b756de98dc8ab03b3cbbd1 192.168.31.66:7001
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
  Destination node:
    M: 91bc7b99ec9ca647f9f9f3fbdff6c9f12cae9ec1 192.168.31.66:7006
   slots: (0 slots) master
   0 additional replica(s)
  Resharding plan:
    Moving slot 5461 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5462 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5463 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5464 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5465 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5466 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5467 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5468 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5469 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5470 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5471 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5472 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5473 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5474 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5475 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5476 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5477 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5478 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5479 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5480 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5481 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5482 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5483 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5484 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5485 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5486 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5487 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5488 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5489 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5490 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5491 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5492 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5493 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5494 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5495 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5496 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5497 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5498 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5499 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5500 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5501 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5502 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5503 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5504 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5505 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5506 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5507 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5508 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5509 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5510 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5511 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5512 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5513 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5514 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5515 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5516 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5517 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5518 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5519 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5520 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5521 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5522 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5523 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5524 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5525 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5526 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5527 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5528 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5529 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5530 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5531 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5532 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5533 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5534 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5535 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5536 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5537 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5538 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5539 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5540 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5541 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5542 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5543 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5544 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5545 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5546 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5547 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5548 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5549 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5550 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5551 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5552 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5553 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5554 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5555 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5556 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5557 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5558 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5559 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5560 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 5561 from 504d010ead65a4a0b628725be47b717ff26806fa
    Moving slot 0 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 1 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 2 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 3 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 4 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 5 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 6 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 7 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 8 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 9 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 10 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 11 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 12 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 13 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 14 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 15 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 16 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 17 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 18 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 19 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 20 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 21 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 22 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 23 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 24 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 25 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 26 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 27 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 28 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 29 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 30 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 31 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 32 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 33 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 34 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 35 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 36 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 37 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 38 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 39 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 40 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 41 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 42 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 43 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 44 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 45 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 46 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 47 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 48 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 49 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 50 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 51 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 52 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 53 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 54 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 55 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 56 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 57 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 58 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 59 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 60 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 61 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 62 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 63 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 64 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 65 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 66 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 67 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 68 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 69 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 70 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 71 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 72 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 73 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 74 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 75 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 76 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 77 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 78 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 79 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 80 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 81 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 82 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 83 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 84 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 85 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 86 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 87 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 88 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 89 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 90 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 91 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 92 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 93 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 94 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 95 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 96 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 97 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 98 from e22926a5b6707d0c6279f51efeb397d6e312e756
    Moving slot 10923 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10924 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10925 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10926 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10927 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10928 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10929 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10930 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10931 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10932 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10933 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10934 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10935 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10936 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10937 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10938 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10939 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10940 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10941 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10942 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10943 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10944 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10945 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10946 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10947 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10948 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10949 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10950 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10951 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10952 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10953 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10954 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10955 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10956 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10957 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10958 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10959 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10960 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10961 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10962 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10963 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10964 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10965 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10966 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10967 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10968 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10969 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10970 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10971 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10972 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10973 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10974 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10975 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10976 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10977 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10978 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10979 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10980 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10981 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10982 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10983 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10984 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10985 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10986 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10987 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10988 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10989 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10990 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10991 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10992 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10993 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10994 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10995 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10996 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10997 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10998 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 10999 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11000 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11001 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11002 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11003 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11004 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11005 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11006 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11007 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11008 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11009 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11010 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11011 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11012 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11013 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11014 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11015 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11016 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11017 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11018 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11019 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11020 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
    Moving slot 11021 from e00e923a523c3ca446b756de98dc8ab03b3cbbd1
Moving slot 5461 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5462 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5463 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5464 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5465 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5466 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5467 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5468 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5469 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5470 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5471 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5472 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5473 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5474 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5475 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5476 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5477 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5478 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5479 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5480 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5481 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5482 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5483 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5484 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5485 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5486 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5487 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5488 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5489 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5490 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5491 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5492 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5493 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5494 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5495 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5496 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5497 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5498 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5499 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5500 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5501 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5502 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5503 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5504 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5505 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5506 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5507 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5508 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5509 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5510 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5511 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5512 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5513 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5514 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5515 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5516 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5517 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5518 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5519 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5520 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5521 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5522 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5523 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5524 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5525 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5526 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5527 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5528 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5529 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5530 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5531 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5532 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5533 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5534 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5535 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5536 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5537 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5538 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5539 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5540 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5541 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5542 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5543 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5544 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5545 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5546 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5547 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5548 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5549 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5550 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5551 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5552 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5553 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5554 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5555 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5556 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5557 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5558 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5559 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5560 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 5561 from 192.168.31.56:7002 to 192.168.31.66:7006: 
Moving slot 0 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 1 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 2 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 3 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 4 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 5 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 6 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 7 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 8 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 9 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 10 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 11 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 12 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 13 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 14 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 15 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 16 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 17 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 18 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 19 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 20 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 21 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 22 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 23 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 24 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 25 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 26 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 27 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 28 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 29 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 30 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 31 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 32 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 33 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 34 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 35 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 36 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 37 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 38 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 39 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 40 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 41 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 42 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 43 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 44 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 45 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 46 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 47 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 48 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 49 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 50 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 51 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 52 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 53 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 54 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 55 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 56 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 57 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 58 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 59 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 60 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 61 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 62 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 63 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 64 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 65 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 66 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 67 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 68 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 69 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 70 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 71 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 72 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 73 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 74 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 75 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 76 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 77 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 78 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 79 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 80 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 81 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 82 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 83 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 84 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 85 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 86 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 87 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 88 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 89 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 90 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 91 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 92 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 93 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 94 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 95 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 96 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 97 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 98 from 192.168.31.66:7000 to 192.168.31.66:7006: 
Moving slot 10923 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10924 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10925 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10926 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10927 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10928 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10929 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10930 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10931 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10932 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10933 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10934 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10935 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10936 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10937 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10938 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10939 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10940 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10941 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10942 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10943 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10944 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10945 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10946 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10947 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10948 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10949 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10950 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10951 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10952 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10953 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10954 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10955 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10956 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10957 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10958 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10959 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10960 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10961 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10962 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10963 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10964 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10965 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10966 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10967 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10968 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10969 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10970 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10971 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10972 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10973 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10974 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10975 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10976 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10977 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10978 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10979 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10980 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10981 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10982 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10983 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10984 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10985 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10986 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10987 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10988 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10989 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10990 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10991 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10992 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10993 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10994 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10995 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10996 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10997 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10998 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 10999 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11000 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11001 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11002 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11003 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11004 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11005 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11006 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11007 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11008 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11009 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11010 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11011 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11012 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11013 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11014 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11015 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11016 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11017 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11018 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11019 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11020 from 192.168.31.66:7001 to 192.168.31.66:7006: 
Moving slot 11021 from 192.168.31.66:7001 to 192.168.31.66:7006: 
[root@artisan bin]# 

分片迁移完毕,使用redis-cli连接到集群中的某个节点,使用cluster nodes或者clusterslots命令都可以查看到集群中各节点拥有的数据分片信息

clusterslots也可以查看

192.168.31.66:7000> CLUSTER SLOTS
1) 1) (integer) 99
   2) (integer) 5460
   3) 1) "192.168.31.66"
      2) (integer) 7000
      3) "e22926a5b6707d0c6279f51efeb397d6e312e756"
   4) 1) "192.168.31.56"
      2) (integer) 7003
      3) "e0dfd0e65710ca487452d3b6e893267439d03f3a"
2) 1) (integer) 0
   2) (integer) 98
   3) 1) "192.168.31.66"
      2) (integer) 7006
      3) "91bc7b99ec9ca647f9f9f3fbdff6c9f12cae9ec1"
3) 1) (integer) 5461
   2) (integer) 5561
   3) 1) "192.168.31.66"
      2) (integer) 7006
      3) "91bc7b99ec9ca647f9f9f3fbdff6c9f12cae9ec1"
4) 1) (integer) 10923
   2) (integer) 11021
   3) 1) "192.168.31.66"
      2) (integer) 7006
      3) "91bc7b99ec9ca647f9f9f3fbdff6c9f12cae9ec1"
5) 1) (integer) 11022
   2) (integer) 16383
   3) 1) "192.168.31.66"
      2) (integer) 7001
      3) "e00e923a523c3ca446b756de98dc8ab03b3cbbd1"
   4) 1) "192.168.31.176"
      2) (integer) 7004
      3) "cee4aa629375ccc3417a37d8df7f454f93947510"
6) 1) (integer) 5562
   2) (integer) 10922
   3) 1) "192.168.31.56"
      2) (integer) 7002
      3) "504d010ead65a4a0b628725be47b717ff26806fa"
   4) 1) "192.168.31.176"
      2) (integer) 7005
      3) "75c4cedc4822e64c45cedec8f5190de77fa3858c"
192.168.31.66:7000> 

注意事项:

  • redis集群中各节点已经启动完毕
  • 分片迁移个数范围: 1~16384

数据导入(import)

功能

将非集群redis节点数据导入redis集群中:通过集群中的某个节点获取到集群信息,遍历非集群redis节点中的数据,并协调其将遍历的数据导入到redis集群对应的节点中。


参数

import          host:port
                  --from <arg>
                  --copy
                  --replace
<command>:  import

集群数据导入的命令名字

<options>: --from <arg>

from 为非集群redis节点信息(arg为redis节点的IP:PORT)

<arguments>:host:port

host:port 为集群中的某个节点信息


示例

[root@artisan bin]# ./redis-trib.rb import --from 192.168.31.66:6379 192.168.31.66:7000
>>> Importing data from 192.168.31.66:6379 to cluster 
>>> Performing Cluster Check (using node 192.168.31.66:7000)
M: e22926a5b6707d0c6279f51efeb397d6e312e756 192.168.31.66:7000
   slots:99-5460 (5362 slots) master
   1 additional replica(s)
S: e0dfd0e65710ca487452d3b6e893267439d03f3a 192.168.31.56:7003
   slots: (0 slots) slave
   replicates e22926a5b6707d0c6279f51efeb397d6e312e756
M: 91bc7b99ec9ca647f9f9f3fbdff6c9f12cae9ec1 192.168.31.66:7006
   slots:0-98,5461-5561,10923-11021 (299 slots) master
   0 additional replica(s)
S: 75c4cedc4822e64c45cedec8f5190de77fa3858c 192.168.31.176:7005
   slots: (0 slots) slave
   replicates 504d010ead65a4a0b628725be47b717ff26806fa
S: cee4aa629375ccc3417a37d8df7f454f93947510 192.168.31.176:7004
   slots: (0 slots) slave
   replicates e00e923a523c3ca446b756de98dc8ab03b3cbbd1
M: e00e923a523c3ca446b756de98dc8ab03b3cbbd1 192.168.31.66:7001
   slots:11022-16383 (5362 slots) master
   1 additional replica(s)
M: 504d010ead65a4a0b628725be47b717ff26806fa 192.168.31.56:7002
   slots:5562-10922 (5361 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Connecting to the source Redis instance
*** Importing 2 keys from DB 0
Migrating name to 192.168.31.56:7002: OK
Migrating test_key to 192.168.31.66:7001: OK
[root@artisan bin]# 

错误

Migrating name to 192.168.31.56:7002: ERR Syntax error, try CLIENT (LIST | KILL | GETNAME | SETNAME | PAUSE | REPLY)
Migrating test_key to 192.168.31.66:7001: ERR Syntax error, try CLIENT (LIST | KILL | GETNAME | SETNAME | PAUSE | REPLY)

参考 : https://github.com/antirez/redis/issues/4272

数据导入完毕,使用redis-cli连接到集群中的某个节点,使用get命令等可以查看到对应的key已经导入到集群中

注意

  • 待导出数据的redis节点和redis集群中各节点已经启动完毕
  • 待导出数据的redis节点运行为非集群模式
  • 导入到redis集群中的数据,同时会把数据从原节点中删除

分片检查(check)

功能

检查redis集群的分片有效性:通过集群中的某个节点获取到集群信息,检查各集群节点存储的分片信息是否一致,检查是否存在未完成的分片迁移,检查各节点分配的分片总数是否为16384。


参数

check           host:port
<command>:  check

集群分片检查的命令名字

<arguments>:host:port

host:port 为集群中的某个节点信息

示例

[root@artisan bin]# ./redis-trib.rb check 192.168.31.66:7000
>>> Performing Cluster Check (using node 192.168.31.66:7000)
M: e22926a5b6707d0c6279f51efeb397d6e312e756 192.168.31.66:7000
   slots:99-5460 (5362 slots) master
   1 additional replica(s)
S: e0dfd0e65710ca487452d3b6e893267439d03f3a 192.168.31.56:7003
   slots: (0 slots) slave
   replicates e22926a5b6707d0c6279f51efeb397d6e312e756
M: 91bc7b99ec9ca647f9f9f3fbdff6c9f12cae9ec1 192.168.31.66:7006
   slots:0-98,5461-5561,10923-11021 (299 slots) master
   0 additional replica(s)
S: 75c4cedc4822e64c45cedec8f5190de77fa3858c 192.168.31.176:7005
   slots: (0 slots) slave
   replicates 504d010ead65a4a0b628725be47b717ff26806fa
S: cee4aa629375ccc3417a37d8df7f454f93947510 192.168.31.176:7004
   slots: (0 slots) slave
   replicates e00e923a523c3ca446b756de98dc8ab03b3cbbd1
M: e00e923a523c3ca446b756de98dc8ab03b3cbbd1 192.168.31.66:7001
   slots:11022-16383 (5362 slots) master
   1 additional replica(s)
M: 504d010ead65a4a0b628725be47b717ff26806fa 192.168.31.56:7002
   slots:5562-10922 (5361 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@artisan bin]# 

集群分片检查可以发现异常分片情况,对于发现的问题,可以用接下来的分片修复(fix)命令进行处理


分片修复(fix)

功能

修复发现redis集群的分片问题:通过集群中的某个节点获取到集群信息,检查各集群节点存储的分片信息是否一致,检查是否存在未完成的分片迁移,检查各节点分配的分片总数是否为16384; 并能自动修复完成分片迁移工作,或者增加集群中未承载的分片到某些集群节点。

参数

fix             host:port
                  --timeout <arg>
<command>:  fix

集群分片修复的命令名字

<arguments>:host:port

host:port 为集群中的某个节点信息


示例

[root@artisan bin]# ./redis-trib.rb fix  192.168.31.66:7000
>>> Performing Cluster Check (using node 192.168.31.66:7000)
M: e22926a5b6707d0c6279f51efeb397d6e312e756 192.168.31.66:7000
   slots:99-5460 (5362 slots) master
   1 additional replica(s)
S: e0dfd0e65710ca487452d3b6e893267439d03f3a 192.168.31.56:7003
   slots: (0 slots) slave
   replicates e22926a5b6707d0c6279f51efeb397d6e312e756
M: 91bc7b99ec9ca647f9f9f3fbdff6c9f12cae9ec1 192.168.31.66:7006
   slots:0-98,5461-5561,10923-11021 (299 slots) master
   0 additional replica(s)
S: 75c4cedc4822e64c45cedec8f5190de77fa3858c 192.168.31.176:7005
   slots: (0 slots) slave
   replicates 504d010ead65a4a0b628725be47b717ff26806fa
S: cee4aa629375ccc3417a37d8df7f454f93947510 192.168.31.176:7004
   slots: (0 slots) slave
   replicates e00e923a523c3ca446b756de98dc8ab03b3cbbd1
M: e00e923a523c3ca446b756de98dc8ab03b3cbbd1 192.168.31.66:7001
   slots:11022-16383 (5362 slots) master
   1 additional replica(s)
M: 504d010ead65a4a0b628725be47b717ff26806fa 192.168.31.56:7002
   slots:5562-10922 (5361 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@artisan bin]# 
  • 当分片迁移中断时,通过fix命令可以检查到异常中断的迁移分片,并继续未完成的操作,最终迁移成功,恢复集群分片信息到正常状态;
  • 对于集群未承载的分片,通过fix命令可以检查出来,并根据一定策略将该分片指定给集群中的某个节点承载,最终使集群承载所有数据分片。

修改节点超时时长(set-timeout)

功能

修改集群节点超时时长:通过集群中的某个节点获取到集群信息,分别连接到各个节点上设置节点超时时间参数,并重写节点的配置文件。


参数

set-timeout     host:port milliseconds
<command>:  set-timeout

集群设置节点超时的命令名字

<arguments>:host:port milliseconds

host:port 为集群中的某个节点信息

milliseconds 为超时时长(单位为毫秒:ms)


示例

[root@artisan bin]# ./redis-trib.rb set-timeout  192.168.31.66:7000   8000
>>> Reconfiguring node timeout in every cluster node...
*** New timeout set for 192.168.31.66:7000
*** New timeout set for 192.168.31.56:7003
*** New timeout set for 192.168.31.66:7006
*** New timeout set for 192.168.31.176:7005
*** New timeout set for 192.168.31.176:7004
*** New timeout set for 192.168.31.66:7001
*** New timeout set for 192.168.31.56:7002
>>> New node timeout set. 7 OK, 0 ERR.
[root@artisan bin]# 

超时时长不能小于100毫秒


调用节点命令(call)

功能

在集群中各个节点上执行命令:通过集群中的某个节点获取到集群信息,将节点命令发送至所有集群节点上执行,并显示命令执行结果。


参数

call            host:port command arg arg .. arg
<command>:  call

集群调用节点命令的命令名字

<arguments>:host:port command arg arg .. arg

host:port 为集群中的某个节点信息

command arg arg…arg 为redis节点支持的命令及参数


示例

[root@artisan bin]# ./redis-trib.rb call 192.168.31.56:7003 get name
>>> Calling GET name
192.168.31.56:7003: MOVED 5798 192.168.31.56:7002
192.168.31.66:7006: MOVED 5798 192.168.31.56:7002
192.168.31.176:7005: MOVED 5798 192.168.31.56:7002
192.168.31.56:7002: artisan_new
192.168.31.176:7004: MOVED 5798 192.168.31.56:7002
192.168.31.66:7001: MOVED 5798 192.168.31.56:7002
192.168.31.66:7000: MOVED 5798 192.168.31.56:7002
[root@artisan bin]# ./redis-trib.rb call 192.168.31.56:7003 get artisan
>>> Calling GET artisan
192.168.31.56:7003: MOVED 4009 192.168.31.66:7000
192.168.31.66:7006: MOVED 4009 192.168.31.66:7000
192.168.31.176:7005: MOVED 4009 192.168.31.66:7000
192.168.31.56:7002: MOVED 4009 192.168.31.66:7000
192.168.31.176:7004: MOVED 4009 192.168.31.66:7000
192.168.31.66:7001: MOVED 4009 192.168.31.66:7000
192.168.31.66:7000: com.artisan.redis.cluster.SpringRedisCluster$Artisan@188715b5
[root@artisan bin]# 

注意

命令会被分发到集群中的所有redis节点上执行


集群信息查询 (info)

功能

查看集群中各节点slot分布信息:通过查询各节点slot数、键值数,来汇总整个集群的slot信息。【通过该命令可以了解集群的数据分布情况,为rebalance提供依据】


参数

info            host:port
<command>:  info

集群信息查询的命令名字

<arguments>:host:port

host:port 为集群中的某个节点信息


示例

[root@artisan bin]# ./redis-trib.rb info 192.168.31.176:7005
192.168.31.66:7000 (e22926a5...) -> 2 keys | 5362 slots | 1 slaves.
192.168.31.56:7002 (504d010e...) -> 3 keys | 5361 slots | 1 slaves.
192.168.31.66:7006 (91bc7b99...) -> 0 keys | 299 slots | 0 slaves.
192.168.31.66:7001 (e00e923a...) -> 4 keys | 5362 slots | 1 slaves.
[OK] 9 keys in 4 masters.
0.00 keys per slot on average.
[root@artisan bin]# 

自动分片平衡(rebalance)

功能

根据节点负载比重平衡各节点的slot数:根据设置的各节点slot负载比重,来检查各节点目前实际的slot比重是否一致,当不一致时进行slot重分片处理,调度相关节点进行slot的分片迁移处理,使各节点比重达到预期设置值。


参数

rebalance       host:port
                  --weight <arg>
                  --auto-weights
                  --use-empty-masters
                  --timeout <arg>
                  --simulate
                  --pipeline <arg>
                  --threshold <arg>
<command>:  rebalance

集群分片迁移的命令名字

<options>: --weight <arg> --threshold <arg> --use-empty-masters --simulate --pipeline <arg>

weight为节点的比重,默认各节点的比重都为1(当要改变多个节点的比重时,需要分别设置不通的–weight)。格式为:节点名=比重值 (其中节点名可以只取前几位,只要能唯一匹配到该节点即可)

threshold 为各节点slot数变化阈值,默认为2。(只有当根据节点比重计算后,存在某个节点slot变化比例超过改值时,才会真正进行分片平衡处理)

use-empty-masters 无slot负载的主节点是否参与自动平衡处理,不设置时表示不参与

simulate 使用该参数表示仅进行自动平衡效果预演,并不真正进行平衡处理。

pipeline 为批量迁移键的数量,默认取值为10。

<arguments>:host:port

host:port 为集群中的某个节点信息


示例

[root@artisan bin]# ./redis-trib.rb rebalance --weight e22926a5=0.5 --weight 91bc7b99=1.2 --weight 504d010e=0.5 192.168.31.66:7000
>>> Performing Cluster Check (using node 192.168.31.66:7000)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Rebalancing across 4 nodes. Total weight = 3.2
Moving 2802 slots from 192.168.31.66:7000 to 192.168.31.66:7006
##################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
Moving 2801 slots from 192.168.31.56:7002 to 192.168.31.66:7006
#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
Moving 242 slots from 192.168.31.66:7001 to 192.168.31.66:7006
##################################################################################################################################################################################################################################################
[root@artisan bin]# 

重新查看

[root@artisan bin]# ./redis-trib.rb info 192.168.31.66:7000
192.168.31.66:7000 (e22926a5...) -> 1 keys | 2560 slots | 1 slaves.
192.168.31.66:7006 (91bc7b99...) -> 3 keys | 6144 slots | 0 slaves.
192.168.31.66:7001 (e00e923a...) -> 4 keys | 5120 slots | 1 slaves.
192.168.31.56:7002 (504d010e...) -> 1 keys | 2560 slots | 1 slaves.
[OK] 9 keys in 4 masters.
0.00 keys per slot on average.
[root@artisan bin]# 

第一步设置的比例为 0.5:1.2 : 1 : 0.5

正好是 2560:6144:5120:2560 ,符合 0.5:1.2 : 1 : 0.5



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
存储 负载均衡 监控
redis 集群模式(redis cluster)介绍
redis 集群模式(redis cluster)介绍
|
6月前
|
监控 NoSQL Redis
|
6月前
|
存储 NoSQL 算法
【Redis】Redis 集群
【Redis】Redis 集群
79 0
【Redis】Redis 集群
|
NoSQL Redis 数据库
【Redis】单机安装Redis
【Redis】单机安装Redis
77 0
|
负载均衡 NoSQL Redis
Redis-集群
Redis Cluster是Redis的分布式解决方案,在3.0版本正式推出前,有效地解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以采用Cluster架构方案达到负载均衡的目的。
|
存储 NoSQL 调度
Redis-22Redis-集群管理(下)
Redis-22Redis-集群管理(下)
62 0
|
缓存 NoSQL Redis
Redis-22Redis-集群管理(上)
Redis-22Redis-集群管理
39 0
|
存储 缓存 NoSQL
redis 集群
redis 使用的数据库
217 0
redis  集群
|
存储 缓存 NoSQL
Redis——集群
Redis集群是Redis提供的分布式数据库方案,集群通过分片(sharding)进行数据共享。
616 0
Redis——集群