16boke - 一路博客

Centos搭建Codis集群完整版

一、环境

1、centos的内核必须是2.6.32及以上不然安装codis失败

2、两台机器【192.168.1.56(主)、192.168.1.59(从)】,每台有8个redis实例,其中主上部署的有dashboard

3、zookeeper采用已有的集群环境:192.168.1.100:2181,192.168.1.101:2181,192.168.1.102:2181


二、安装go

go1.4.2.linux-amd64.tar.gz下载地址为:http://golangtc.com/download

tar zxvf go1.4.2.linux-amd64.tar.gz

mv go /usr/local/

配置环境变量

vi /etc/profile

在最后添加:

export GOROOT=/usr/local/go

export PATH=$PATH:$GOROOT/bin

保存,执行:

source /etc/profile

判断go是否安装成功,运行go version

[root@centos6 local]# go version

go version go1.4.2 linux/amd64


三、安装git

yum -y install git


四、安装codis

1、直接解压到/usr/lib/codis

2、建立日志和数据文件目录:mkdir /data/redis/logs /data/redis/dumps

3、如果让其它用户也可以启动codis,需要修改/data/redis目录的权限,以及/usr/lib/codis目录的权限

4、检查/usr/lib/codis/conf/目录下的各个文件,看是否需要修改

5、修改/etc/hosts文件,添加当前主机名,同时在113.56(主)的/etc/hosts文件中也要添加113.59(从)的主机名对应的IP地址,因为codis的dashboard获取每个proxy的状态是访问http://主机名:11001的,所以需要将主机名与IP地址做个映射,添加到/etc/hosts中。


五、启动

先保证zookeeper已经启动了

1、192.168.1.56(主)的启动顺序

因为dashboard部署在1.56上,进入:/usr/lib/codis/conf

(1)、./start_dashboard.sh,执行完后执行:ps -ef|grep codis,看是否有/usr/lib/codis/bin/codis-config -c /usr/lib/codis/conf/config_1.ini -L /usr/lib/codis/logs/dashboard.log dashboard --addr=:18087 --http-log=/usr/lib/codis/logs/requests.log。如果有就说明dashboard启动正常,否则检查/data/redis/log/dashboard.log文件。

(2)、./start_redis.sh

(3)、./add_group.sh 【只用第一次运行的时候执行一次】

(4)、./initslot.sh 【只用第一次运行的时候执行一次,注意:必须要将1024个slot全部分配完,不然在启动代理的时候会报“有slot处于off状态,无法启动”

(5)、./start_proxy.sh

(6)、./start_proxy_artemis.sh 【这个根据实际情况判断是否要启动】

(6)、./startCodisHA.sh

执行ps -ef|grep codis,有8个redis实例、dashboard、两个proxy、codis-ha

2、192.168.1.59(从)的启动顺序

(1)、./start_redis.sh

(2)、./start_proxy.sh

(3)、./set_proxy_online.sh

(4)、./startCodisHA.sh

执行ps -ef|grep codis,有8个实例,proxy、codis-ha


六、监控

为了防止codis-proxy挂掉之后导致程序无法使用的问题,需要给这两台机器都添加监控脚本,脚本通过crontab每隔一分钟判断是否有codis-proxy进程,如果没有就说明proxy没有起来,就自动执行start_proxy.sh同时调用发邮件程序向指定人员发送通知邮件。

执行:crontab -e

输入:*/1 * * * * /usr/lib/codis/conf/monitor.sh >> /usr/lib/codis/conf/log &