codis3安装测试

环境

机器: cld-tmp-ops-06 
集群方式: 伪集群 
依赖: java(zk)、go

codis-dashboard:192.168.233.135:11080 
codis-fe:192.168.233.135:18090 
codis-proxy:192.168.233.135:19000,192.168.233.138:19000,192.168.233.139:19000
redis:192.168.233.135:6379 (maxmemory 2G) 
   192.168.233.135:6380(maxmemory 2G)

redis:192.168.233.138:6379 (maxmemory 2G) 
   192.168.233.138:6380 (maxmemory 2G)

redis:192.168.233.139:6379 (maxmemory 2G) 
   192.168.233.139:6380 (maxmemory 2G)

sentimel:192.168.233.135:26379 ,192.168.233.138:26379 ,192.168.233.139:26379

下载应用

wget http://golangtc.com/static/go/1.8/go1.8.linux-amd64.tar.gz 
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz 
wget https://github.com/CodisLabs/codis/archive/3.1.5.tar.gz

安装依赖

export JAVA_HOME=/usr/local/java
CLASSPATH=/usr/local/java/lib/dt.jar:/usr/local/java/lib/tools.jar
PATH=/usr/local/java/bin:$PATH
export PATH JAVA_HOME CLASSPATH

export GOROOT=/usr/local/go
export GOPATH=/usr/local/gopkg
export PATH=$GOROOT/bin:$PATH

source /etc/profile即可

安装Zookeeper

解压到/home/service

zoo.cfg

# egrep -v "(^$|^#)" /usr/local/zookeeper-3.4.10/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/export/zookeeper/data
dataLogDir=/export/zookeeper/log
clientPort=2181
server.135=192.168.233.135:2888:3888
server.138=192.168.233.138:2888:3888
server.139=192.168.233.139:2888:3888

#clientPort:客户端连接 Zookeeper 服务器的端口
#server.N=YYY:A:B         其中N表示服务器编号就是myid的编号,YYY表示服务器的IP地址,A为LF通信端口,表示该服务器与集群中的leader交换的信息的端口。B为选举端口,表示选举新leader时服务器间相互通信的端口

配置myid

echo "135" > /export/zookeeper/data/myid
echo "138" > /export/zookeeper/data/myid
echo "139" > /export/zookeeper/data/myid

启动zk

/usr/local/zookeeper-3.4.10/bin/zkServer.sh start
/usr/local/zookeeper-3.4.10/bin/zkServer.sh status
/usr/local/zookeeper-3.4.10/bin/zkCli.sh -server 192.168.233.138:2181

安装codis

创建编译目录

mkdir -pv /usr/local/gopkg/src/github.com/CodisLabs

编译

mv codis.xxx coids &&cd codis&&make

之后生成一个bin目录  将目录copy到codis启动目录下我的目录是 /export/codis/

安装dashboard

  1. 生成dashboard配置文件
/export/codis/bin/codis-dashboard --default-config |tee /export/codis/conf/dashboard.conf  

# egrep -v "^$|^#" /export/codis/conf/dashboard.conf
coordinator_name = "zookeeper"
coordinator_addr = "192.168.233.135:2181,192.168.233.138:2181,192.168.233.139:2181"
product_name = "codis-test"
product_auth = "xukq"
admin_addr = "0.0.0.0:18080"
migration_method = "semi-async"
migration_parallel_slots = 100
migration_async_maxbulks = 200
migration_async_maxbytes = "32mb"
migration_async_numkeys = 500
migration_timeout = "30s"
sentinel_quorum = 2
sentinel_parallel_syncs = 1
sentinel_down_after = "30s"
sentinel_failover_timeout = "5m"
sentinel_notification_script = ""
sentinel_client_reconfig_script = ""

启动dashboard

 nohup /export/codis/bin/codis-dashboard --ncpu=2 --config=/export/codis/conf/dashboard.conf --log=/export/codis/log/dashboard.log --log-level=WARN &

关闭命令

/export/codis/bin/codis-admin --dashboard=192.168.233.135:18080 --shutdown

安装codis-fe

生成配置文件

# /export/codis/bin/codis-admin --dashboard-list --zookeeper=192.168.233.138:2181|tee /export/codis/conf/codis-fe.json                                                

[
    {
        "name": "codis-test",
        "dashboard": "192.168.233.135:18080"
    }
]

启动FE

 nohup /export/codis/bin/codis-fe --ncpu=2 --log=/export/codis/log/codis-fe.log --log-level=WARN  --dashboard-list=/export/codis/conf/codis-fe.json --listen=0.0.0.0:18090 &

安装codis-proxy

生成配置文件(其他两台的配置相同,一起启动即可)

 /export/codis/bin/codis-proxy  --default-config|tee /export/codis/conf/codis-proxy.conf   

# egrep -v "(^$|^#)" /export/codis/conf/codis-proxy.conf
product_name = "codis-test"
product_auth = "xukq"
session_auth = ""
admin_addr = "0.0.0.0:11080"
proto_type = "tcp4"
proxy_addr = "0.0.0.0:19000"
jodis_name = "zookeeper"
jodis_addr = "192.168.233.135:2181,192.168.233.138:2181,192.168.233.139:2181"
jodis_timeout = "20s"
jodis_compatible = false
proxy_datacenter = ""
proxy_max_clients = 1000
proxy_max_offheap_size = "1024mb"
proxy_heap_placeholder = "256mb"
backend_ping_period = "5s"
backend_recv_bufsize = "128kb"
backend_recv_timeout = "30s"
backend_send_bufsize = "128kb"
backend_send_timeout = "30s"
backend_max_pipeline = 1024
backend_primary_only = false
backend_primary_parallel = 1
backend_replica_parallel = 1
backend_keepalive_period = "75s"
backend_number_databases = 16
session_recv_bufsize = "128kb"
session_recv_timeout = "30m"
session_send_bufsize = "64kb"
session_send_timeout = "30s"
session_max_pipeline = 10000
session_keepalive_period = "75s"
session_break_on_failure = false
metrics_report_server = ""
metrics_report_period = "1s"
metrics_report_influxdb_server = ""
metrics_report_influxdb_period = "1s"
metrics_report_influxdb_username = ""
metrics_report_influxdb_password = ""
metrics_report_influxdb_database = ""
metrics_report_statsd_server = ""
metrics_report_statsd_period = "1s"
metrics_report_statsd_prefix = ""

启动

 nohup /export/codis/bin/codis-proxy --ncpu=2 --config=/export/codis/conf/codis-proxy.conf --log=/export/codis/log/codis-proxy.log --log-level=WARN &

关闭命令

/export/codis/bin/codis-admin --proxy=192.168.233.135:11080 --auth=‘xukq‘ --shutdown     

安装codis-server

生成配置文件

# cat /export/codis/conf/redis6379.conf
daemonize yes
pidfile "/usr/local/codis/run/redis6379.pid"
port 6379
timeout 86400
tcp-keepalive 60
loglevel notice
logfile "/export/codis/log/redis6379.log"
databases 16
save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error no
rdbcompression yes
dbfilename "dump6379.rdb"
dir "/export/codis/redis_data_6379"
masterauth "xukq"
slave-serve-stale-data yes
repl-disable-tcp-nodelay no
slave-priority 100
requirepass "xukq"
maxmemory 2gb
maxmemory-policy allkeys-lru
appendonly no
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 0 0 0
client-output-buffer-limit pubsub 0 0 0
hz 10
aof-rewrite-incremental-fsync yes
repl-backlog-size 32mb
# Generated by CONFIG REWRITE

6380同6379配置

启动

/export/codis/bin/codis-server /export/codis/conf/redis6379.conf  

6380 以及其他机器同样这样启动

启动sentinel

 cp /usr/local/gopkg/src/github.com/CodisLabs/codis/extern/redis-3.2.8/src/redis-sentinel /export/codis/bin
 nohuo /export/codis/bin/redis-sentinel /export/codis/conf/sentinel.conf &

# cat /export/codis/conf/sentinel.conf
bind 0.0.0.0
protected-mode no
port 26379
dir "/tmp"

这里不需要指定节点信息
 nohuo /export/codis/bin/redis-sentinel /export/codis/conf/sentinel.conf &

查看进程

# ps -ef |grep codis
root      29475      1  0 5月14 ?       00:01:48 /export/codis/bin/codis-fe --ncpu=2 --log=/export/codis/log/codis-fe.log --log-level=WARN --dashboard-list=/export/codis/conf/codis-fe.json --listen=0.0.0.0:18090
root      31454      1  0 5月14 ?       00:09:03 /export/codis/bin/codis-server *:6379
root      31503      1  0 5月14 ?       00:14:15 /export/codis/bin/codis-server *:6380
root      91651      1  1 5月14 ?       00:36:33 /export/codis/bin/codis-dashboard --ncpu=2 --config=/export/codis/conf/dashboard.conf --log=/export/codis/log/dashboard.log --log-level=WARN
root      93306      1  0 5月14 ?       00:07:15 /export/codis/bin/codis-proxy --ncpu=2 --config=/export/codis/conf/codis-proxy.conf --log=/export/codis/log/codis-proxy.log --log-level=WARN
root     105017      1  0 5月14 ?       00:11:43 /export/codis/bin/redis-sentinel 0.0.0.0:26379 [sentinel]
root     127452 117312  0 11:55 pts/1    00:00:00 grep --color=auto codis

Fe管理界面配置

http://192.168.233.135:18090/打开web即可

codis可用性测试:

一下内容为其他测试集群测试

目前redis-port不支持从twemproxy 读取,因此只能将redis作为数据源进行数据同步。

原理: 
简单的来说就是静态解析rdb到redis。

官方介绍有四个功能:

DECODE dumped payload to human readable format (hex-encoding) 
RESTORE rdb file to target redis 
DUMP rdb file from master redis 
SYNC data from master to slave

线下导入测试

先查看codis数据量 

进行导入:

  1. # cat daoruredis.sh
  2. #!/bin/bash
  3. for port in {6379,6380}; do
  4. /home/service/redis-port/redis-port sync -n 1 --parallel=10 -f 192.168.233.140:${port} --password="91eb221c" -t 192.168.233.138:19000 >${port}.log 2>&1 &
  5. sleep 5
  6. done
  7. 2017/05/15 15:00:25 main.go:189: [INFO] set ncpu = 1, parallel = 10
  8. 2017/05/15 15:00:25 sync.go:56: [INFO] sync from ‘192.168.233.140:6379‘ to ‘192.168.233.138:19000‘
  9. 2017/05/15 15:00:26 sync.go:73: [INFO] rdb file = 7154338
  10. 2017/05/15 15:00:27 sync.go:235: [INFO] total=7154338 - 20700 [ 0%] entry=627
  11. 2017/05/15 15:00:28 sync.go:235: [INFO] total=7154338 - 46112 [ 0%] entry=1794
  12. 2017/05/15 15:00:29 sync.go:235: [INFO] total=7154338 - 103262 [ 1%] entry=4417
  13. 2017/05/15 15:00:30 sync.go:235: [INFO] total=7154338 - 165345 [ 2%] entry=7271
  14. 2017/05/15 15:00:31 sync.go:235: [INFO] total=7154338 - 207198 [ 2%] entry=9193
  15. 2017/05/15 15:00:32 sync.go:235: [INFO] total=7154338 - 249386 [ 3%] entry=11132
  16. 2017/05/15 15:00:33 sync.go:235: [INFO] total=7154338 - 294590 [ 4%] entry=13209
  17. 2017/05/15 15:00:34 sync.go:235: [INFO] total=7154338 - 339400 [ 4%] entry=15267
  18. 2017/05/15 15:00:35 sync.go:235: [INFO] total=7154338 - 372815 [ 5%] entry=16804
  19. 2017/05/15 15:00:36 sync.go:235: [INFO] total=7154338 - 411493 [ 5%] entry=18582
  20. 2017/05/15 15:00:37 sync.go:235: [INFO] total=7154338 - 453199 [ 6%] entry=20498
  21. 2017/05/15 15:00:38 sync.go:235: [INFO] total=7154338 - 494151 [ 6%] entry=22379
  22. 2017/05/15 15:00:39 sync.go:235: [INFO] total=7154338 - 540217 [ 7%] entry=24497
  23. 2017/05/15 15:00:40 sync.go:235: [INFO] total=7154338 - 583806 [ 8%] entry=26499
  24. ...
  25. ...
  26. 2017/05/15 15:32:32 sync.go:291: [INFO] sync: +forward=0 +nbypass=0 +nbytes=0
  27. 2017/05/15 15:32:33 sync.go:291: [INFO] sync: +forward=1 +nbypass=0 +nbytes=14
  28. 2017/05/15 15:32:34 sync.go:291: [INFO] sync: +forward=0 +nbypass=0 +nbytes=0

再次查看codis key

从图上看key,已经进行导入。

注(源端可以边写边导入,尽可能的减少key损失)

主从切换&&数据导入测试

从目前来看我们就一个组一个实例单点, 
下面我们添加节点,并进行数据迁移以及主机故障测试

可以看到 在复制过程中如果数据没有复制完成会丢失。

下面启动20002的redis进程,并将20002提升为主

查看在同步过程中将某一台下线,其中同步的key将永久丢失。

时间: 2024-11-06 19:04:33

codis3安装测试的相关文章

微软桌面虚拟化vdi 安装测试体验

最近同事在讨论桌面虚拟化,说目前很多企业都准备上桌面虚拟化,结合众多的解决方案,觉得微软的桌面虚拟化方案不错,相对与citrix的xendesktop,vmware view 有一定的价格优势,心里想,微软是大公司,桌面虚拟化技术即使没有citrix和vmware的好,但一定也不会差,所以我们采用性价比高的. 本次的测试环境是2台Dell R720服务器(据说该服务器是全世界销量最好的,不知道真假),服务器操作系统安装windows server 2012 R2,虚拟桌面端安装windows 7

安装测试知识(待更新)

1.    安装测试 1.1定义 安装测试是指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步的操作完成安装的过程所进行的测试. 1.2安装测试的分类 安装测试可以分为: (1)全新安装,待安装的软件包是完整的,包含了所有的文件. (2)升级版本安装,部分文件构成的软件包.升级安装也可以分为两种,一种是完全替换原来版本,另外一种就是保持多种版本共存. (3)补丁式安装,很小的改动或很少文件的更新. (4)软件版本不变 系统运行环境改变,

Centos 6.7 Tomcat基本安装测试

Tomcat基本安装测试 /==============================基本安装使用=========================================>/ Tomcat A 设置 安装jdk http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html下载JDK 1.1安装jdk ~]# rpm -ivh jdk-7u67-linux-x64.rpm Preparing.

php管理工具composer安装&测试

我把它放在系统的PATH目录中,这样就能在全局访问它. curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer 此命令只检查少量的PHP配置,然后下载 composer.phar 文件到你的工作目录,此文件就是Composer执行文件,它是一个PHAR(PHP归档文件,里面可以包含任何文件,并且可以在PHP命令行执行). 测试是否安装成功 composer -V Compo

centos7主要特性 ---docker安装测试

红帽日前正式发布了企业版Linux 7,满足企业当前对数据中心的需求和对下一代的云服务.Containers.大数据的需求,为用户提供军用级安全以及稳定.易用.高效的管理.社区发行版CentOS 7也已经发布出来了,抢先体验docker1.0. rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 安装docker      yum install docker-io 启动服务    

Redis集群方案,Codis安装测试

1,关于豌豆荚开源的Codis Codis是豌豆荚使用Go和C语言开发.以代理的方式实现的一个Redis分布式集群解决方案,且完全兼容Twemproxy.Twemproxy对于上一层的应用来说, 连接Codis Proxy(Redis代理服务)和连接原生的Redis服务器没有明显的区别,上一层应用能够像使用单机的 Redis一样对待.Codis底层会处理请求的转发.不停机的数据迁移等工作, 所有底层的一切处理, 对于客户端来说是透明的.总之,可以简单的认为后台连接的是一个内存无限大的Redis服

node.js 安装 测试

2014年5月1日 18:48:01 安装: 系统是centos,里边的python版本是2.4,但是node.js 源码tar包安装要求是 2.6 或者 2.7 下载python 2.7编译安装,注意,可以不卸载原有系统中的python,编译安装2.7时,默认安装,不要在配置时指定安装路径 默认安装的时候,2.7会自动改写软连接将/usr/local/bin/python 指向2.7 这样安装node.js的时候就会使用python2.7的程序了 ------------------- 测试:

Mysql 5.6.27 双主模型&&主备模型安装测试

http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.27-1.el6.x86_64.rpm-bundle.tar 测试环境:    两台服务器          MYSQL-1:10.11.22.78          MYSQL-2:10.11.22.248    测试系统          Centos 6.5_64    Mysql版本          MySQL-5.6.27    Keepalived版本          k

drdb安装测试

一.环境准备 系统环境 CentOS release 6.3 (Final) 内核信息 2.6.32-279.el6.x86_64 ip地址 vip 192.168.64.120 master 192.168.64.132  心跳线:10.0.0.1    主机名:DBmaster.test slave 192.168.64.135   心跳线:10.0.0.2    主机名:DBbak.test 镜像磁盘 master /dev/sdc slave /dev/sdc fdisk -l 安装依赖