已存在Redis接入CacheCloud

这个导入只做了下面几件事儿:

1. 验证输入内容。
2. 保存应用信息、实例信息,应用与实例关系信息。
3. 开启统计功能。(每分钟执行一次info命令)

所以对现有的Redis不会有什么性能影响,而且可以使用CacheCloud绝大部分功能:监控、报警、报表、元信息管理查询、客户端等等(有关不能使用的功能请见第3节)

1.说明:

CacheCloud作为Redis私有云运维平台,实现多种类型(Redis Standalone、Redis Sentinel、Redis Cluster)自动部署,对于Redis部署十分的方便,但是开源后一直有朋友问,如何将已经存在Redis接入到CacheCloud,这个确实是CacheCloud存在的一个问题(因为在我们的项目组CacheCloud是先开发出来,期间用的Redis),为此我们开发了已存在Redis接入界面,支持一键将已有的Redis接入到Cachecloud,有关操作请看第2节,有关注意事项请看3节。

2.操作说明:

2.1. 功能界面
声明:此功能只有管理员可以使用,正式操作之前请看第3节注意事项

管理员登录后,可以点击右侧下拉菜单中的导入应用(下图1)就可以进入导入应用界面(下图2)


(图1)



(图2)

2.2. 具体选项说明
  • 应用名称:中英文都可以,但是不要与现存的cachecloud应用名重复,否则会提示重复。
  • 应用描述:不为空即可
  • 存储种类: 导入的Redis类型
  • 项目负责人: 中文名
  • 测试:该应用是否为测试
  • 报警阀值: 正整数,超过100就不报警了
  • 实例详情: 导入Redis实例详情

    1. 说明如图:
    2. 单点: ip:端口:maxmemory大小(要以M为单位),例如127.0.0.1:6379:1024

      1
      10.10.1.1:6379:1024
    3. sentinel:

      数据节点=>ip:端口:maxmeory大小(要以M为单位),例如127.0.0.1:6379:1024(不分主从)<br/>
      sentinel节点=>ip:端口:masterName,例如127.0.0.1:26379:myMasterName
      

      例如:

      1
      2
      3
      4
      5
      10.10.1.1:8000:1024
      10.10.1.2:8001:1024
      10.10.1.4:26379:myMasterName
      10.10.1.5:26380:myMasterName
      10.10.1.6:26381:myMasterName
    4. cluster: 每行都是数据节点,不分主从,例如:

      1
      2
      3
      4
      5
      6
      10.10.1.1:6379:1024
      10.10.1.2:6380:1024
      10.10.1.3:6381:1024
      10.10.1.4:6382:1024
      10.10.1.5:6383:1024
      10.10.1.6:6384:1024
2.3. 操作说明
2.3.1. 格式验证

填写完相关字段后,点击检查按钮,如果检查无误,那么会提示检查成功,此时开始导入按钮就变成可点击。如果提示错误,那么说明格式有问题,那么导入按钮不可以点击,常见错误如下:

  • 重复的应用名:说明你填写的应用名已经在cachecloud中存在。
  • 关于实例详细的格式错误:格式有问题,请参考2.2。
  • 机器ip不存在:说明实例详情中,有些机器信息并没有添加到cachecloud。
  • 节点不存活:说明有些ip:port对应的Redis ping不通。
  • ip:port已经在instance_info表中存在,说明实例已经在cachecloud中。
  • sentinel相关错误: 填写的masterName为空或者与真实masterName不符。
2.3.2. 开始导入

格式验证成功后,点击开始导入功能,就可以将填写的Redis实例导入到cachecloud中,包括应用信息,实例信息,应用和实例的各种统计信息的收集就会生效,报表就可以展示出来,并且相关报警也会自动启动。

3.注意事项

  • 已存在的Redis的配置中必须有maxmemory,否则会展示不出来应用内存的进度条。
  • 已存在的Redis所在机器必须添加userName和password,这个要和后台系统配置管理中的ssh用户名和密码一致。

    1
    2
    useradd userName
    passwd userName
  • 已存在的Redis不要设置密码,否则节点信息会收集失败,但是不影响应用与实例的元信息导入。

  • 已存在的Redis所在机器不要用cachecloud-init.sh初始化,否则会和已知环境冲突。
  • 不要在已存在的Redis所在机器使用如下功能(cachecloud运维界面):
    (1)添加slave
    (2)修复slot
    (3)开启应用
    (4)水平扩容添加节点
    (5)启动节点
    因为上述功能都会添加新的节点,所以不用使用cachecloud在这些机器上执行开启节点的相关操作。

4.相关视频

详见百度网盘:http://pan.baidu.com/s/1c2mET5e
1
2
3
4
5
6
7
8
9
10
11
12
13
6.1.已存在Redis接入Cachecloud-说明
6.2.已存在Redis接入Cachecloud-问题说明
6.3.已存在Redis接入Cachecloud-使用说明
6.4.已经存在Redis接入Cachecloud-standalone
6.5.已经存在Redis接入Cachecloud-sentinel
6.6.已经存在Redis接入Cachecloud-cluster
6.7.已存在-相关注意和后续
6.7.0.后续思路
6.7.1.导入老的sentinel集群
6.7.2.更换成cachecloud节点方法
6.7.3.1 迁移老的sentinel操作-1
6.7.3.2 迁移老的sentinel操作-2
6.7.3.3 迁移老的sentinel操作-3

5. 迁移后续

建议迁移后续,可以利用redis的相关failover特性,把之前的Redis节点全都替换成cachecloud节点。