keepalived+Mysql切换

前言:由于keepalived是以广播形式发送信息,因此主从服务器必须在同一网段!!!

由于本人在配置前并不知晓,所以服务器地址有错误,因此并不能真正实现vip的浮动。但此文在虚拟机同一网段运行通过


1.下载keepalived 安装包/home/目录

cd /home

wget -c http://www.keepalived.org/software/keepalived-1.1.20.tar.gz

chmod +x keepalived-1.1.20.tar.gz  赋予操作权限

2. 查看服务器是否安装过kernel

cd /usr/src/kernels

ls 

如果执行结果为空则需要安装kernel

yum install kernel-devel

再次查看是否安装成功并记住kernel版本号


3. 解压并安装

[root@localhost home]# tar -zxvf keepalived-1.1.20.tar.gz 

[root@localhost home]# cd keepalived-1.1.20

[root@localhost keepalived-1.1.20]# ln -s /usr/src/kernels/2.6.9-78.EL-i686 /usr/src//linux

[root@localhost keepalived-1.1.20]# ./configure 

错误解决办法:

yum -y install gcc   安装gcc组件

./configure

--------------------------------------------------------------------------------------------------------------------


yum install -y openssl-devel   重新编译

./configure

--------------------------------------------------------------------------------------------------------------------


yum install popt-devel   ,重新编译

./configure

--------------------------------------------------------------------------------------------------------------------

红色方框内都为yes代表安装成功。否则安装失败。(可能还需要某些组件,把为no的百度一下安装即可,然后再重新./configure



4.编译以及编译安装

[root@localhost keepalived-1.1.20]# make && make install

5.修改配置文件及路径

 [root@localhostkeepalived-1.1.20]#

cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

 [root@localhostkeepalived-1.1.20]# 

cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

[root@localhost keepalived-1.1.20]# mkdir /etc/keepalived

[root@localhostkeepalived-1.1.20]#

cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/                           

[root@localhost keepalived-1.1.20]# cp /usr/local/sbin/keepalived /usr/sbin/

6.设置为服务,开机启动

[root@localhost keepalived-1.1.20]# vi /etc/rc.local 


7.关闭selinux

 vi /etc/sysconfig/selinux

修改

SELINUX=disabled

SELINUXTYPE=disabled

8.关闭防火墙

service iptables stop


9.修改IPV4配置

echo "1">/proc/sys/net/ipv4/ip_forward

10.在/etc/sysctl.conf中配置内核参数

net.ipv4.ip_forward=1


11.开机默认启动ip_vs模块

 vi /etc/rc.d/rc.sysinit

在底部添加

 #load LVS IPVS modules

modprobe ip_vs

配置后需要重启,如本次不重启直接在命令行里输入

modprobe ip_vs 启动该模块


12.配置MATER  keepalived.conf   vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived  

global_defs {    

    router_id LVS_MASTER  #机器标识

}

vrrp_instance VI_1 {  

    state BACKUP   #state指定instance的初始状态,但这里指定的不算,还是得通过优先级竞选来确定。两台配置此处均是BACKUP。

    interface em1  #实例绑定的网卡,因为在配置虚拟IP的时候必须是在已有的网卡上添加的,可用ip a 查看当前ip地址是绑在那个网卡上的

    virtual_router_id 51  #这里设置VRID,这里非常重要,相同的VRID为一个组,他将决定多播的MAC地址,需要和Slave一致

    priority 100   #设置本节点的优先级,优先级高的为master,如另外一个节点配置为90,那此节点就是master

    advert_int 1  #检查间隔,默认为1秒

    nopreempt   #不抢占,只在优先级高的机器上设置即可,优先级低的机器不设置

    authentication {  

        auth_type PASS  

        auth_pass 1111  

    }  

    virtual_ipaddress {  

        192.168.200.33    #这里设置的就是VIP,也就是虚拟IP地址

    }  

}  

  

virtual_server 192.168.200.33 3306 {  #vip配置

    delay_loop 2  #每2秒检查一次real_server状态

    lb_algo wrr   

    lb_kind DR  

    persistence_timeout 60  #会话保持时间

    protocol TCP  

    real_server 192.168.200.32 3306 {  #本机地址

        weight :3

        notify_down /etc/keepalived/MySQL.sh   #检测到服务down后执行的脚本

        TCP_CHECK {  

            connect_timeout 10   #连接超时时间

            nb_get_retry 3    #重连次数

            delay_before_retry 3  #重连间隔时间

        connect_port 3306   #健康检查端口

        }  

    }  

   } 


配置SLAVE keepalived.conf

! Configuration File for keepalived  

global_defs {    

    router_id LVS_MASTER  #机器标识

}

vrrp_instance VI_1 {  

    state BACKUP   #state指定instance的初始状态,但这里指定的不算,还是得通过优先级竞选来确定。两台配置此处均是BACKUP。

    interface em1  #实例绑定的网卡,因为在配置虚拟IP的时候必须是在已有的网卡上添加的,可用ip a 查看当前ip地址是绑在那个网卡上的

    virtual_router_id 51  #这里设置VRID,这里非常重要,相同的VRID为一个组,他将决定多播的MAC地址,需要和Slave一致

    priority 90   #设置本节点的优先级,优先级高的为master,如另外一个节点配置为90,那此节点就是master

    advert_int 1  #检查间隔,默认为1秒

    nopreempt   #不抢占,只在优先级高的机器上设置即可,优先级低的机器不设置

    authentication {  

        auth_type PASS  

        auth_pass 1111  

    }  

    virtual_ipaddress {  

        192.168.200.33    #这里设置的就是VIP,也就是虚拟IP地址

    }  

}  

  

virtual_server 192.168.200.33 3306 {  #vip配置

    delay_loop 2  #每2秒检查一次real_server状态

    lb_algo wrr   

    lb_kind DR  

    persistence_timeout 60  #会话保持时间

    protocol TCP  

    real_server 192.168.201.173 3306 {  #本机地址

        weight :3

        notify_down /etc/keepalived/MySQL.sh   #检测到服务down后执行的脚本

        TCP_CHECK {  

            connect_timeout 10   #连接超时时间

            nb_get_retry 3    #重连次数

            delay_before_retry 3  #重连间隔时间

        connect_port 3306   #健康检查端口

        }  

    }  

   } 


13.Mysql服务停止执行脚本

vi /etc/keepalived/MySQL.sh


hmod +x /etc/keepalived/MySQL.sh

当mysql停止服务时停止keepalived服务,并发出预警邮件给指定用户

 

14.安装sendMail

yum install sendmail sendmail-cf

service sendmail start


15.在两台服务器上分别启动keepalivedmysql服务(先主后从)

service mysql start   #注意要先启动mysql,因为keepalived会检查mysql服务状态。

service keepalived start

ip a

会发现vip已经挂在主服务器上了,而从服务器是没有的


16.测试

主服务器运行

service mysql stop

service keepalived status

查看当mysql服务停止时是否keepalived服务也一样停止了


在从服务器上运行

ip a

看vip时候浮动到从服务器上了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值