概述
进入服务器192.168.1.149(主服务器)
cd/home/zhuhaiquan/
tarxvf keepalived-1.2.15.tar.gz
cdkeepalived-1.2.15
./configure
make&&makeinstall
注:若这里报错提示没有装openssl,则执行yum –y install openssl-devel安装,若还有其他的包没装,则执行yum命令进行安装 或 采用rpm安装
cp/usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp/usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir/etc/keepalived
cp/usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
ln -s /usr/local/sbin/keepalived /usr/sbin/
vi/etc/keepalived/keepalived.conf
将内容改为如下
!Configuration File for keepalived
vrrp_scriptchk_nutcracker {
script"/etc/keepalived/check_nutcracker.sh"
#script"</dev/tcp/127.0.0.1/22111" #监测nutcraker是否正常
interval 2
}
global_defs{
router_id LVS_DEVEL
}
vrrp_instanceVI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 120
advert_int 1
authentication {
auth_typePASS
auth_pass1111
}
track_script {
chk_nutcracker
}
virtual_ipaddress {
192.168.1.189
}
}
保存
vi /etc/keepalived/check_nutcracker.sh
添加内容
#!/bin/bash
#A= `ps -C haproxy --no-header |wc -l`
if[[ `ps -C nutcracker --no-header |wc -l` -eq 0 ]];
then
echo"nutcracker not runing,attempt to start up."
/usr/local/nutcracker/bin/nutcracker-c -d /usr/local/nutcracker/conf/nutcracker.yml
sleep3
if[[ `ps -C nutcracker --no-header |wc -l` -eq 0 ]];
then
/etc/init.d/keepalivedstop
echo"nutcracker start failure,stop keepalived"
else
echo"nutcracker started success"
fi
fi
进入服务器192.168.1.150(备服务器)
cd/home/zhuhaiquan/
tarxvf keepalived-1.2.15.tar.gz
cdkeepalived-1.2.15
./configure
make&&makeinstall
注:若这里报错提示没有装openssl,则执行yum –y install openssl-devel安装,若还有其他的包没装,则执行yum命令进行安装
cp/usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp/usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
ln -s /usr/local/sbin/keepalived /usr/sbin/
vi /etc/keepalived/keepalived.conf
将内容改为如下
!Configuration File for keepalived
vrrp_scriptchk_nutcracker {
script "/etc/keepalived/check_nutcracker.sh"
#script"</dev/tcp/127.0.0.1/22111" #监测nutcraker是否正常
interval 2
}
global_defs{
router_id LVS_DEVEL
}
vrrp_instanceVI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_typePASS
auth_pass1111
}
track_script {
chk_nutcracker
}
virtual_ipaddress {
192.168.1.189
}
}
保存
vi /etc/keepalived/check_nutcracker.sh
添加内容
#!/bin/bash
#A= `ps -C haproxy --no-header |wc -l`
if[[ `ps -C nutcracker --no-header |wc -l` -eq 0 ]];
then
echo"nutcracker not runing,attempt to start up."
/usr/local/nutcracker/bin/nutcracker-c -d /usr/local/nutcracker/conf/nutcracker.yml
sleep3
if[[ `ps -C nutcracker --no-header |wc -l` -eq 0 ]];
then
/etc/init.d/keepalivedstop
echo"nutcracker start failure,stop keepalived"
else
echo"nutcracker started success"
fi
fi
给检测脚本赋权:
chmoda+x /etc/keepalived/check_nutcracker.sh
Tips:
查看keepalived的切换日志: tail -f /var/log/messages
在配置keepalived时,需要将twemproxy中的listen设为0.0.0.0:port,如果设置为IP:PORT时,当keepalived挂掉时,无法进行切换。
常见问题
1、安装Redis时遇到的问题
(1)编译redis时 提示make cc Command not found
在linux系统上对redis源码进行编译时提示提示“makecc Command not found,make: *** [adlist.o] Error 127”
原因分析:由于系统没有gcc环境,需要安装gcc相关的包
2、安装Twemproxy遇到的问题
遇到问题:
报错:
[zhuhaiquan@localhost git-master]$ make&& make install
GEN perl/PM.stamp
SUBDIR perl
/usr/bin/perl Makefile.PLPREFIX='/usr/local' INSTALL_BASE='' --localedir='/usr/local/share/locale'
Can't locate ExtUtils/MakeMaker.pm in @INC(@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5/usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/usr/share/perl5 .) at Makefile.PL line 3.
BEGIN failed--compilation aborted atMakefile.PL line 3.
make[1]: *** [perl.mak] Error 2
make: *** [perl/perl.mak] Error 2
yum install perl-ExtUtils-MakeMaker package
[root@localhost rpm]# rpm -ivhperl-devel-5.10.1-136.el6.i686.rpmperl-ExtUtils-MakeMaker-6.55-136.el6.i686.rpmperl-ExtUtils-ParseXS-2.2003.0-136.el6.i686.rpmperl-Test-Harness-3.17-136.el6.i686.rpm
warning:perl-devel-5.10.1-136.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key IDfd431d51: NOKEY
Preparing... ########################################### [100%]
1:perl-ExtUtils-ParseXS ########################################### [ 25%]
2:perl-ExtUtils-MakeMaker########################################### [50%]
3:perl-devel ########################################### [ 75%]
4:perl-Test-Harness ########################################### [100%]
(这几个需同时安装,相互依赖)
3、验证连接时遇到的问题:
(1)telnet command not found
解决方法:安装telnet相关包就OK
(2)在129上连接到128时(telnet192.168.189.128 6379)报如下错误
解决方法:
在目标机器上执行:iptables -F 可解决此问题,但机器重启之后依然需执行一次,具体解决方案有待研究
4、在虚拟机上安装了twemproxy,使用的是nutcracker-0.2.2.tar。配置文件如下:
redis:
listen: 192.168.189.128:22111
hash: fnv1a_64
distribution: ketama
redis: true
auto_eject_hosts: true
server_retry_timeout: 3000
server_failure_limit: 3
servers:
-192.168.189.128:6379:1
-192.168.189.129:6379:1
两个redis都启动时,服务正常。当我把192.168.189.128:6379停掉时,该服务节点不自动摘除,执行set命令时一直有服务拒绝的命令(通过Jedis调用的时候总是连接到停掉的服务上,导致不可用)
(error) ERR Connection refused
当我把故障的redis恢复后,发现服务正常了。
解决方法:
server_retry_timeout:3000
server_failure_limit:3
Twemproxy默认的配置为server_retry_timeout: 3000,server_failure_limit: 3
第一个retry的间隔时间要拉长,不然你的nutcracker一直在重试连接,自然一直摘不掉机器;第二个容忍的错误数可以设置成0容忍,就是说有错误立马摘掉这个机器,参数值应为:
server_retry_timeout: 3000000(发现故障后,恢复连接间隔时间)
server_failure_limit: 0
修改后,再重新验证,已OK,停掉后会连接到正常的机器。
参考:
http://www.oschina.net/question/1048263_109927
http://www.oschina.net/translate/twemproxy-a-twitter-redis-proxy?p=1#rpl_4525
5、Redis设置内存大小
# maxmemory <bytes>
#达到最大内存限制时,使用何种删除算法
# volatile-lru 使用LRU算法移除带有过期标致的key
# allkeys-lru -> 使用LRU算法移除任何key
# volatile-random -> 随机移除一个带有过期标致的key
# allkeys-random -> 随机移除一个key
# volatile-ttl -> 移除最近要过期的key
# noeviction -> 不删除key,当有写请求时,返回错误
#默认设置为volatile-lru
# maxmemory-policy volatile-lru
查看Redis内存等使用情况:可以通过info查看
6、设置maxmemory 1048576 , maxmemory-policy volatile-lru ,当缓存的大小超过1048576 时,JedisDataException: OOM command not allowed when used memory >'maxmemory'.
解决方法:
原因是由于缓存的数据大于最大缓存的大小,此时需配置上lru策略,如allkeys-lru
经验证,不会出现上述错误,最终配置如下:
maxmemory 1048576
maxmemory-policy allkeys-lru
7、如何让redis只当缓存使用,而不持久化操作
(1)配置RDB的配置
save "",并注释掉默认的save相关配置
(2)AOF相关配置
appendonly no
遗留问题:
1、Redis增加、删除节点时的缓存权重问题
参考资料
twemproxy参考资料:
http://www.bubuko.com/infodetail-265209.html
http://blog.mkfree.com/posts/515bce9d975a30cc561dc360
http://sdwang.blog.51cto.com/8432181/1597901/
http://blog.chinaunix.net/uid-16728139-id-4385973.html
http://www.cnblogs.com/haoxinyue/p/redis.html
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=314622
keepalived参考资料:
http://www.tuicool.com/articles/Vz2qYj
http://www.iyunv.com/thread-39985-1-1.html
http://bbs.ywlm.net/thread-845-1-1.html
http://bbs.nanjimao.com/thread-855-1-1.html
http://www.micmiu.com/enterprise-app/server/keepalived-hot-standby/
http://bylijinnan.iteye.com/blog/2175191
最后
以上就是清秀紫菜为你收集整理的Redis集群+twemproxy+keepalived的安装指南(3)-keepalived的安装常见问题参考资料的全部内容,希望文章能够帮你解决Redis集群+twemproxy+keepalived的安装指南(3)-keepalived的安装常见问题参考资料所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复