CacheCloud 1.2-迁移工具使用说明

这里首先要感谢一下唯品会的申政同学开发出这么优秀的Redis开源迁移工具redis-migrate-tool,cachecloud迁移工具是基于它实现的,欢迎大家去star。

在使用CacheCloud数据迁移工具之前有大家必要对redis-migrate-tool有一些了解。

一、CacheCloud数据迁移工具能做什么?

1. 功能介绍

数据迁移工具可以完成如下功能:

  • 支持在RDB文件、Redis Standalone、Redis Sentinel、Redis Cluster之间进行数据迁移(也可以直接是CacheCloud的应用,也就是appId),如下图所示支持任意两种类型的source和target进行数据迁移。
  • 数据迁移能够保证实时性,所以如果合理使用可以基本保证一致性。(原理可以参考第二小节)
  • 迁移过程可视化完成流程的控制。(操作界面流程监控等等)

二、CacheCloud数据迁移工具是如何实现的?

CacheCloud数据迁移工具底层使用的是唯品会公司开源的redis-migrate-tool,所以这里有必要对redis-migrate-tool进行简单说明:

redis-migrate-tool是用c语言开发的Redis数据迁移工具,可以做到在stadalone、sentinel、cluster、rdb(目前不支持做为target)彼此迁移数据,服务与唯品会公司数千个Redis节点,无论从数据迁移的准确性、稳定性、高效性等方面都能满足的生产环境的需求,所以CacheCloud选择它作为数据迁移的基础组件,CacheCloud通过可视化的方式完成节点数据迁移、进度查询、日志查询、配置查询、历史记录等等功能。

1
所以使用cachecloud这个迁移工具之前首先要对redis-migrate-tool有一定了解。

redis-migrate-tool是基于复制的原理,所以是实时迁移的,这点比起redis自带的redis-trib.rb的import功能要方便很多。

三、CacheCloud数据迁移工具如何部署和使用

3.1 准备迁移工具所有的机器:

  • 初始化机器(和普通机器初始化没有区别),请参考相关文档
  • 添加机器时候,选择机器类型时候,选择迁移工具类型。(这里建议单独使用一台机器做迁移用)

3.2 安装部署redis-migrate-tool:

将redis-migrate-tool安装在/opt/cachecloud目录下,如果想修改,请在系统配置中进行修改:

安装方法可以参考redis-migrate-tool主页或者按照如下安装:

1
2
3
4
5
6
7
8
9
10
11
$ cd /opt/cachecloud/
$ wget https://github.com/vipshop/redis-migrate-tool/archive/master.zip
$ mv master master.zip
$ unzip master.zip
$ mv redis-migrate-tool-master redis-migrate-tool
$ cd redis-migrate-tool
$ mkdir data
$ autoreconf -fvi
$ ./configure
$ make
$ src/redis-migrate-tool -h

最为重要的一步是, 注意这里的cachecloud-open是ssh的用户名

1
$ chown -R ${cachecloud-ssh-username}.${cachecloud-ssh-username} /opt/cachecloud/redis-migrate-tool

3.3 添加迁移任务:

管理员点击自己的名字就可以看到迁移工具的连接.

就可以进入迁移列表,这里记录这所有迁移任务的记录,可以做一些管理工作

点击添加新的迁移按钮

这个表单的作用非常明了,填写source和target的信息,点击验证按钮,按照通过后就开启了一个迁移的任务,然后将会再次回到迁移列表,就可以观察迁移日志、关闭迁移任务、迁移状态查询

迁移状态日志(就是redis-migrate-tool的日志)

迁移状态查询(详见redis-migrate-tool主页)

四、客户端怎么迁移

1.当迁移工作基本完成后,我们就需要迁移客户端了,为了方便演示我们假设只有两个客户端。

2.迁移第一个客户端,观察客户端是否出现异常

3.迁移第二个客户端,继续观察

4.检查source是否还有调用

5.下线source和迁移工具

五、一些建议和坑

  • 安装redis-migrate-tool的目录必须使用chown修改(详见3.2)
  • 尽可能单独找一台机器作为迁移机器,因为迁移的过程可能会占用机器的很多资源。
  • redis-migrate-tool很具体的原理问题和细节可以到cachecloud群里找作者提问,因为唯品会已经在线上大量使用了,应该在这方面积累了很多经验和技巧。
  • 迁移工具页面还有很多要优化的地方,后期会听取大家意见逐渐改善。