基于keepalived的redis系统master双机热备(读数据负载均衡)设(4)

2019-03-10 14:41

} } }

keepalived的master的MISCH_CHECK监测脚本

#!/usr/bin/python import sys,commands

cmd=\info\是输入的参数,sys.argv[0]是需要执行的命令,以后才是参数。1是ip,2是端口 str=commands.getoutput(cmd) ismaster=-100

ismaster=str.count(\原来是使用index方法,但是找不到字符串时会报错 zero=0

if ismaster>zero:

sys.exit(0) #返回0在keepalived表示健康 else:

sys.exit(1) #返回1表示keepalived检测端口不健康

更多MISC_CHECK参考见http://bbs.ywlm.net/thread-845-1-1.html

redis维护脚本redis_up.sh用在检测到服务启动时

#!/usr/bin/env bash

/usr/local/bin/redis-cli -h $argv[1] -p 6379 config set appendonly no

redis设置与sentinel设置无变化

需要特别注意的配置,如果没有这个配置就会发生keepalived不转发的的问题,而且是如果redis和keepalive是同一台机器,会转发,但是如果相互间独立,则realserver收不到转发包

配置master

vim /etc/sysctl.conf,添加内容如下

net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2

执行命令

sysctl -p

ip addr add 192.168.0.7/32 dev lo ip addr add 192.168.0.8/32 dev lo

ip add list

lo环上出现了指定的ip即可

配置slave1

vim /etc/sysctl.conf,添加内容如下

net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2

执行命令

sysctl -p

ip addr add 192.168.0.7/32 dev lo ip addr add 192.168.0.8/32 dev lo

ip add list

配置slave2

vim /etc/sysctl.conf,添加内容如下

net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2

执行命令 sysctl -p

ip addr add 192.168.0.7/32 dev lo ip addr add 192.168.0.8/32 dev lo

ip add list

========================================================================================== 硬件 机器名 IP master 192.168.0.2 slave1 192.168.0.3 slave2 192.168.0.4 route1 作用 redis的master服务器 redis的slave服务器 redis的slave服务器 192.168.0.5【虚拟IP:keepalived和redis sentinel服务器,承载写redis的192.168.0.7】 VIP【虚拟ip】,做写的双机热备的主master指定 route2 192.168.0.6【虚拟IP:keepalived和redis sentinel服务器,承载读redis的192.168.0.8】 VIP,做读的负载均衡和写的双机热备的master备份路由指定

安装与配置见此文安装与配置 详细的keepalived配置,route1

[plain] view plaincopy 1. ! Configuration File for keepalived 2.

3. global_defs {

4. notification_email { 5. 邮箱 6. }

7. notification_email_from 邮箱 8. smtp_server 邮箱服务器地址 9. smtp_connect_timeout 30 10. router_id LVS_DEVEL 11. }

12. vrrp_instance VI_1 { 13. state MASTER

14. interface eth0 #eth0是要绑定的网卡

15. virtual_router_id 100 #同一个vrrp_instance中的值必须一样 16. priority 160 #master的值要高于backup的 17. advert_int 1 18. authentication { 19. auth_type PASS 20. auth_pass 1111 21. }

22. virtual_ipaddress {

23. 192.168.0.7 #用于双机热备的虚拟ip 24. } 25. 26. }

27. virtual_server 192.168.0.7 6379 { 28. delay_loop 3 29. lb_algo wrr 30. lb_kind DR

31. persistence_timeout 30 32. protocol TCP

33. real_server 192.168.0.2 6379 { 34. weight 8

35. notify_down redis服务失败后要执行的脚本的路径/脚本名 #服务失败后要执行的

脚本

36. TCP_CHECK { 37. connect_timeout 1 38. nb_get_retry 3 39. delay_before_retry 3 40. connect_port 6379 41. } 42. } 43. }

route2的配置文件 [plain] view plaincopy 1. ! Configuration File for keepalived 2.

3. global_defs {

4. notification_email { 5. 邮箱 6. }

7. notification_email_from 邮箱 8. smtp_server 邮箱服务器地址 9. smtp_connect_timeout 30 10. router_id LVS_DEVEL 11. } 12.

13. vrrp_instance VI_1 { 14. state MASTER

15. interface eth0 #eth0是要绑定的网卡

16. virtual_router_id 100 #同一个vrrp_instance中的值必须一样 17. priority 160 #master的值要高于backup的 18. advert_int 1 19. authentication { 20. auth_type PASS 21. auth_pass 1111 22. }

23. virtual_ipaddress {

24. 192.168.0.7 #用于双机热备的虚拟ip 25. }

26. notify_master \ 27. }

28. vrrp_instance VI_2 {

29. state MASTER #将此slave作为读数据的master 30. interface eth0 31. virtual_router_id 101


基于keepalived的redis系统master双机热备(读数据负载均衡)设(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:笔试题答案-南瑞

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: