MySQL主从复制与lvs+keepalived单点写入读负载均衡高可用实验_第1页
MySQL主从复制与lvs+keepalived单点写入读负载均衡高可用实验_第2页
MySQL主从复制与lvs+keepalived单点写入读负载均衡高可用实验_第3页
MySQL主从复制与lvs+keepalived单点写入读负载均衡高可用实验_第4页
MySQL主从复制与lvs+keepalived单点写入读负载均衡高可用实验_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、环境Master(主机A):192.168.1.1Slave(主机B) :192.168.1.2  W-VIP(写入)  :192.168.1.3 R-VIP(读取)  :192.168.1.4 Client(测试) :192.168.1.100操作系统版本:CentOS release 6.4MySQL数据库版本:5.6.14keepalived版本:1.2.7LVS版本:1.26所有环境均为虚拟机二、设计思路1. 服务器A和B,通过mysql的slave进程同步数据。2. 通过keepalived启用两个虚IP:W-VIP/R-VIP,

2、一个负责写入,一个负责读取,实现读写分离。3. A和B都存在时,W-VIP下将请求转发至主机A,R-VIP将请求转发给A和B,实现负载均衡。4. 当主机A异常时,B接管服务,W-VIP/R-VIP此时漂到了主机B上,此时这两个虚IP下都是主机B,实现高可用5. 当主机B异常时,R-VIP会将B踢出,其他不变三、架构图四、软件安装主从两个主机都要装以下软件:1. MySQL的安装(略)2. keepalived安装yum install keepalived2. LVS安装yum install ipvsadm五、配置1. 配置MySQL的主从复制(略)2. 配置keepalivedMaster

3、上的配置vi /etc/keepalived/keepalived.confplain view plaincopy1. ! Configuration File for keepalived  2.   3. global_defs   4.      router_id MySQL-ha  5.   6.   7. vrrp_instance 

4、VI_1   8.      state BACKUP  9.      interface eth1  10.      virtual_router_id 90  11.      priority 100  12.   &#

5、160;  advert_int 1  13.      notify_master "/usr/local/mysql/bin/remove_slave.sh"  14.      nopreempt  15.      authentication   16.    

6、;  auth_type PASS  17.      auth_pass 1111  18.        19.      virtual_ipaddress   20.      192.168.1.3 label eth1:1 &#

7、160;21.      192.168.1.4 label eth1:2  22.        23.   24.   25. virtual_server 192.168.1.3 6603     26.      delay_loop 2  

8、27.      lb_algo wrr  28.      lb_kind DR  29.      persistence_timeout 60  30.      protocol TCP  31.      real_se

9、rver 192.168.1.1 6603   32.      weight 3  33.      notify_down /usr/local/mysql/bin/mysql.sh  34.      TCP_CHECK   35.      conne

10、ct_timeout 10  36.      nb_get_retry 3  37.      delay_before_retry 3  38.      connect_port 6603  39.        40.   

11、0;    41.   42.   43. virtual_server 192.168.1.4 6603   44.      delay_loop 2  45.      lb_algo wrr  46.      lb_kind DR 

12、; 47.      persistence_timeout 60  48.      protocol TCP  49.      real_server 192.168.1.1 6603   50.      weight 1  51. 

13、0;    notify_down /usr/local/mysql/bin/mysql.sh  52.      TCP_CHECK   53.      connect_timeout 10  54.      nb_get_retry 3  55.    

14、;  delay_before_retry 3  56.      connect_port 6603  57.        58.        59.      real_server 192.168.1.2 6603   

15、60.      weight 3  61.      TCP_CHECK   62.      connect_timeout 10  63.      nb_get_retry 3  64.      delay_before

16、_retry 3  65.      connect_port 6603  66.        67.        68.   keepalived配置成服务并开机启动plain view plaincopy1. cp /usr/local/keepalived/etc/rc.d/init.d/keepa

17、lived /etc/rc.d/init.d/  2. cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/  3. cp /usr/local/keepalived/sbin/keepalived /usr/sbin/  4. chkconfig -add keepalived   5. chkconfig -level 345 

18、;keepalived on  vi /usr/local/mysql/bin/remove_slave.shplain view plaincopy1. #!/bin/bash  2. user=u1  3. password=12345  4. log=/usr/local/mysql/log/remove_slave.log  5. echo "date" >> $log  6. /usr

19、/local/mysql/bin/mysql -u$user -p$password -e "set global read_only=OFF;reset master;stop slave;change master to master_host='localhost'" >> $log  7. /bin/sed -i 's#read-only#read-only#&#

20、39; /etc/f  vi /usr/local/mysql/bin/mysql.shplain view plaincopy1. #!/bin/bash  2. /etc/init.d/keepalived stop  Slave上的配置vi /etc/keepalived/keepalived.confplain view plaincopy1. ! Configuration File for keepalived  2. &#

21、160; 3. global_defs   4.      router_id MySQL-ha  5.   6.   7. vrrp_instance VI_1   8.      state BACKUP  9.      interface eth1&#

22、160; 10.      virtual_router_id 90  11.      priority 99  12.      advert_int 1  13.      notify_master "/usr/local/mysql/bin/remove_slave.s

23、h"  14.      authentication   15.      auth_type PASS  16.      auth_pass 1111  17.        18.      virtu

24、al_ipaddress   19.      192.168.1.3 label eth1:1  20.      192.168.1.4 label eth1:2  21.        22.   23.   24. virtual_server 192.168.

25、1.3 6603   25.      delay_loop 2  26.      lb_algo wrr  27.      lb_kind DR  28.      persistence_timeout 60  29.  

26、    protocol TCP  30.      real_server 192.168.1.2 6603   31.      weight 3  32.      notify_down /usr/local/mysql/bin/mysql.sh  33. &#

27、160;    TCP_CHECK   34.      connect_timeout 10  35.      nb_get_retry 3  36.      delay_before_retry 3  37.      connec

28、t_port 6603  38.        39.        40.   41.   42. virtual_server 192.168.1.4 6603   43.      delay_loop 2  44.    

29、  lb_algo wrr  45.      lb_kind DR  46.      persistence_timeout 60  47.      protocol TCP  48.      real_server 192.168.1.2&

30、#160;6603   49.      weight 3  50.      notify_down /usr/local/mysql/bin/mysql.sh  51.      TCP_CHECK   52.      connect_timeout 10

31、0; 53.      nb_get_retry 3  54.      delay_before_retry 3  55.      connect_port 6603  56.        57.       &#

32、160;58.   keepalived配置成服务并开机启动plain view plaincopy1. cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/  2. cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/  3. cp /usr/local/keepalived/sbin/keepalived

33、60;/usr/sbin/  4. chkconfig -add keepalived   5. chkconfig -level 345 keepalived on  vi /usr/local/mysql/bin/remove_slave.shplain view plaincopy1. #!/bin/bash  2. user=u1  3. password=12345  4. log=/u

34、sr/local/mysql/log/remove_slave.log  5. echo "date" >> $log  6. /usr/local/mysql/bin/mysql -u$user -p$password -e "set global read_only=OFF;reset master;stop slave;change master to master_h

35、ost='localhost'" >> $log  7. /bin/sed -i 's#read-only#read-only#' /etc/f  vi /usr/local/mysql/bin/mysql.shplain view plaincopy1. #!/bin/bash  2. /etc/init.d/keepalived stop  3. 配置LVSMaster与Slave上的配置

36、相同:vi /usr/local/bin/lvs_real.shplain view plaincopy1. #!/bin/bash  2. # description: Config realserver lo and apply noarp  3.    4. SNS_VIP=192.168.1.3  5. SNS_VIP2=192.168.1.4  6. source /etc/rc.d/i

37、nit.d/functions  7. case "$1" in  8.    9. start)  10.        ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP  11.     

38、60;  ifconfig lo:1 $SNS_VIP2 netmask 255.255.255.255 broadcast $SNS_VIP2  12.        /sbin/route add -host $SNS_VIP dev lo:0  13.        /sbin/ro

39、ute add -host $SNS_VIP2 dev lo:1  14.        echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore  15.        echo "2" >/proc/sys/net/ipv4/conf/

40、lo/arp_announce  16.        echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore  17.        echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce  18.  

41、60;     sysctl -p >/dev/null 2>&1  19.        echo "RealServer Start OK"  20.          21.    22. stop) &

42、#160;23.        ifconfig lo:0 down  24.        ifconfig lo:1 down  25.        route del $SNS_VIP >/dev/null 2>&1  2

43、6.        route del $SNS_VIP2 >/dev/null 2>&1  27.        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore  28.        echo

44、 "0" >/proc/sys/net/ipv4/conf/lo/arp_announce  29.        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore  30.        echo "0" >/proc/sys/ne

45、t/ipv4/conf/all/arp_announce  31.        echo "RealServer Stoped"  32.          33.    34. *)  35.    36.      

46、0; echo "Usage: $0 start|stop"  37.        exit 1  38. esac  39. exit 0  plain view plaincopy1. chmod 755 /usr/local/bin/lvs_real.sh  2. echo "/usr/local/bi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论