天堂1111 发表于 2018-10-2 11:16:43

keepalived+mysql

【操作系统版本】CentOS 5.4(64位)
【Keepalived版本】1.1.19
1.2.0以上在此系统上有问题,所以选择较低版本。
使用keepadlived ,在数据库主机和备用机上同时开启该程序,通过虚拟VIP地址对外提供数据库访问接口。并抢占VIP地址,正常情况下数据库主机VIP地址具有优先权,并提供数据库访问服务。在数据库主机数据库无法访问时,keep自动关闭程序注销VIP地址,同时备用机抢占VIP地址,数据库备用机将自动接管并顶替主机数据库。
  【编译】
  


[*]#./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-x86_64/
  

  【安装】
  
  


[*]#make && make install
[*]
[*]#cp /usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig
[*]
[*]#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived/etc/rc.d/keepalived
[*]
[*]#vi /usr/local/MySQL/bin/MySQL.sh
[*] #!/bin/sh
[*] service keepalived stop
[*]
[*]#chmod +x /usr/local/MySQL/bin/MySQL.sh
[*]
[*]#mkdir /etc/keepalived/
[*]
[*]#vi /etc/keepalived.conf
  

  ##AB机均按以上步骤安装。
  

  【主机A配置】
  
  


[*]! Configuration File for keepalived
[*]
[*]global_defs {
[*]
[*]   notification_email {
[*]
[*]   xikder@foxmail.com
[*]
[*]   }
[*]
[*]   notification_email_from xikder@foxmail.com
[*]
[*]   smtp_server 127.0.0.1
[*]
[*]   smtp_connect_timeout 30
[*]
[*]   router_id MySQL-ha
[*]
[*]   }
[*]
[*]vrrp_instance VI_1 {
[*]
[*]   state MASTER   #两台配置此处均是BACKUP
[*]
[*]   interface eth0
[*]
[*]   virtual_router_id 51
[*]
[*]   priority 100   #优先级,另一台改为90
[*]
[*]   advert_int 1
[*]
[*]   nopreempt#不抢占,只在优先级高的机器上设置即可,优先级低的机器不设置
[*]
[*]   authentication {
[*]
[*]   auth_type PASS
[*]
[*]   auth_pass 1111
[*]
[*]   }
[*]
[*]   virtual_ipaddress {
[*]
[*]   192.168.0.250
[*]
[*]   }
[*]
[*]   }
[*]
[*]virtual_server 192.168.0.250 3306 {
[*]
[*]   delay_loop 2   #每个2秒检查一次real_server状态
[*]
[*]   lb_algo wrr   #LVS算法
[*]
[*]   lb_kind DR    #LVS模式
[*]
[*]   persistence_timeout 60   #会话保持时间
[*]
[*]   protocol TCP
[*]
[*]   real_server 192.168.0.245 3306 {
[*]
[*]   weight 3
[*]
[*]   notify_down "/usr/local/MySQL/bin/MySQL.sh"#检测到服务down后执行的脚本
[*]
[*]   TCP_CHECK {
[*]
[*]   connect_timeout 10    #连接超时时间
[*]
[*]   nb_get_retry 3       #重连次数
[*]
[*]   delay_before_retry 3   #重连间隔时间
[*]
[*]   connect_port 3306   #健康检查端口
[*]
[*]   }
[*]
[*]   }
  

  【主机B 配置】
  


[*]! Configuration File for keepalived
[*]
[*]global_defs {
[*]
[*]   notification_email {
[*]
[*]   xikder@foxmail.com
[*]
[*]   }
[*]
[*]   notification_email_from xikder@foxmail.com
[*]
[*]   smtp_server 127.0.0.1
[*]
[*]   smtp_connect_timeout 30
[*]
[*]   router_id MySQL-ha
[*]
[*]   }
[*]
[*]vrrp_instance VI_1 {
[*]
[*]   state BACKUP
[*]
[*]   interface eth0
[*]
[*]   virtual_router_id 51
[*]
[*]   priority 90
[*]
[*]   advert_int 1
[*]
[*]   authentication {
[*]
[*]   auth_type PASS
[*]
[*]   auth_pass 1111
[*]
[*]   }
[*]
[*]   virtual_ipaddress {
[*]
[*]   192.168.0.250
[*]
[*]   }
[*]
[*]   }
[*]
[*]virtual_server 192.168.0.250 3306 {
[*]
[*]   delay_loop 2
[*]
[*]   lb_algo wrr
[*]
[*]   lb_kind DR
[*]
[*]   persistence_timeout 60
[*]
[*]   protocol TCP
[*]
[*]   real_server 192.168.0.246 3306 {
[*]
[*]   weight 3
[*]
[*]   notify_down /usr/local/MySQL/bin/MySQL.sh
[*]
[*]   TCP_CHECK {
[*]
[*]   connect_timeout 10
[*]
[*]   nb_get_retry 3
[*]
[*]   delay_before_retry 3
[*]
[*]   connect_port 3306
[*]
[*]   }
[*]
[*]   }
  

  【开启服务】
  


[*]/usr/local/keepalived/sbin/keepalived -D
  

  


页: [1]
查看完整版本: keepalived+mysql