全部博文(51)
分类: 系统运维
2017-11-09 17:57:40
上面这种是交互式的方式
time /opt/apps_install/redis-3.0.2/src/redis-trib.rb reshard --from ca83456fd8eee0500c7863f1916e215bd56efa01 --to 0f292a245be1df1222ec21dc74ce22afac7b2ce4 --slots 273 --yes 127.0.0.1:6385
上面这种是一条命令即可执行的方式
说明:
--from 使用cluster nodes获取的,从哪儿迁移slot的master id
--to 将slot迁移到集群中的某个master 的id
--slots 迁移的slot数量
--yes 确认
127.0.0.1:6385 集群中的某个master id
/opt/apps_install/redis-3.0.2/src/redis-trib.rb check 127.0.0.1:6377 #检查集群是否完整,并可以获取每个node的slot数目
/opt/apps_install/redis-3.0.2/src/redis-trib.rb fix 127.0.0.1:6377 #当集群中的某个slot不正常,可以使用这个命令修复
遇到的问题:
由于本次是将原来一个机器上占有许多内存的node,打散到其它节点,从而将数据更加分散,但由于都是在本机操作,所以由于redis内存不会回收的特性,相当于此次操作需要一倍额外的内存支撑。
也因此,在迁移slot过程中,机器发生了oom,那时候才反应过来,所以没办法了,只有重启master节点,回收内存后,再继续迁移
目标:将x.x.x.1:6395迁移至x.x.x.2:6385,6395,将x.x.x.x.3:6385,6395迁移至x.x.x.4:6385,6395
步骤:
1.将x.1和x.3的redis配置文件拷贝至x.2和x.4上,并启动redis实例。
2.查看现集群的信息,如下:
[@bx_x.1# redis-cli -p 6385 cluster nodes
6d0aa534445cbfb53cb818c5bf71747ae04d2cef x:6385 myself,master - 0 0 7 connected 12969-14335
3.登录x.1,完成主从配置,运行:
方法1: /opt/apps_install/redis-3.0.2/src/redis-trib.rb add-node --slave --master-id 6058a9d7d0ab820df3db5500d4a9815ce3b03420 10.16.39.169:6385 10.16.39.37:6385
参数解释:add-node 添加新节点
--slave 将添加的新节点作为集群中的slave节点(没有此选项就是以主节点的身份添加进去)
--master-id 指定主节点,主节点id通过上一个步骤获取
x.3:6385 添加的新节点的实例
x.9:6385 集群中任意一个节点
方法2:/opt/apps_install/redis-3.0.2/src/redis-trib.rb add-node x.3:6385 x.9:6385 以主节点身份添加新节点
redis-cli -p 6385 cluster replicate 6d0aa534445cbfb53cb818c5bf71747ae04d2cef
4.进行failover,主从切换
x.3# redis-cli -p 6395
切换过程瞬间完成,然后依次将其它从节点也切换过去
注:切换完成后,从节点能瞬间变成主节点,但是原主节点变为从节点后,由于本身一个节点的数据量较大(20多G),此时从节点会变为fail的状态,一段时间内是不能被访问的,
所以在客户端配置中,写了这节点信息的配置的,要在新节点(x.2,x.4)变为集群一部分后,修改配置文件,然后在进行主从的切换。
迁移
ec20e18ce9ce9ed0c311bbd46ea595742b085976 x:6395 master - 0 1467194698624 12 connected 511-680 2558-2728 4607-4776 6654-6823 8703-8872 10751-10921 12799-12968 14847-15016
a6605f3db1b779d529e5f1a68a80d015579ab0a5 x:6385 master - 0 1467194699637 6 connected 10922-12287
160a8d7968c10886103da310223045657844ab82 x:6385 master - 0 1467194697596 2 connected 2729-4095
d94743a85e68462af94342c81ff65c3d1535fd83 x:6395 master - 0 1467194696982 9 connected 0-169 2048-2217 4096-4265 6144-6313 8192-8362 10240-10409 12288-12457 14336-14505
981265687134b74d434cd0d6d6607aa1900cfa30 x:6385 master - 0 1467194694401 4 connected 6824-8191
64a3371815beea919ce289b52bb6e80d463da7a6 x:6385 master - 0 1467194696473 3 connected 4777-6143
6058a9d7d0ab820df3db5500d4a9815ce3b03420 x:6385 master - 0 1467194696266 8 connected 15017-16383
cfd090f606469081068c8fb8f0b7900cb17c8515 x:6385 master - 0 1467194694504 5 connected 8873-10239
0e4aca48bba68824e5b04078891d5302cdbbadfc x:6385 master - 0 1467194696582 1 connected 681-2047
3a91f2ba3352a29b55c218339a4fb60994ddb4da x:6395 master - 0 1467194694914 11 connected 340-510 2388-2557 4436-4606 6484-6653 8533-8702 10581-10750 12628-12798 14676-14846
91fd6189e09fedce3c4ffe91fcb1f888d75f9209 x:6395 master - 0 1467194697901 10 connected 170-339 2218-2387 4266-4435 6314-6483 8363-8532 10410-10580 12458-12627 14506-14675
127.0.0.1:6395> cluster failover
OK