Keepalived实现双机热备

      我们通常所说的双机热备,不同于普通意义的负载均衡,两者都可以有两台机器在运行,但前者不是同时使用两台服务器提供服务,后者是两台服务器同时提供服务。双机热备是其中一台机器宕机或者应用出现异常会切换到备机,负载均衡不会存在切换的问题。

      keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议。
在VRRP中有两组重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器。
VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念。一组VRRP路由器协同工作,共同构成一台虚拟路由器。 Vrrp中存在着一种选举机制,用以选出提供服务的路由即主控路由,其他的则成了备份路由。当主控路由失效后,备份路由中会重新选举出一个主控路由,来继续工作,来保障不间断服务。

      下面介绍Keepalived的安装和测试

测试环境

OS:CentOS 6.5

主机:192.168.83.132

备机:192.168.83.133

虚拟IP:192.168.83.120

1.下载Keepalived-1.2.7.tar.gz或其他稳定版本,下载地址:http://www.keepalived.org/download.html

2.安装依赖

yum install -y pcre-devel openssl-devel popt-devel gcc

3.安装Keepalived-1.2.7

tar -zxvf keepalived-1.2.7.tar.gz -C /opt/

./configure --prefix=/usr/local/keepalived 

make && make install

4.配置Keepalived为系统服务

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

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

mkdir /etc/keepalived/

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

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

5.修改配置文件

Master配置

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
  notification_email {
    [email protected]
    [email protected]
    [email protected]
  }
  notification_email_from [email protected]
  smtp_server 192.168.200.1
  smtp_connect_timeout 30
  router_id LVS_DEVEL
}

vrrp_instance VI_1 {

   state MASTER

   interface eth0   #需要监听的ip所在网卡名称

   virtual_router_id 51

   priority 100    #绑定虚拟ip的优先级

   nopreempt    #不主动抢占资源

   advert_int 1

   authentication {

       auth_type PASS

       auth_pass 1111

   }

   virtual_ipaddress {

       192.168.83.120/24

   }

}

 

Backup配置和Master配置一样,只需要修改如下配置即可

 

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90 # 这里改为90,master优先级是100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.83.120/24
    }

}
6.管理命令
启动
/etc/init.d/keepalived start
停止
/etc/init.d/keepalived stop
重新加载
/etc/init.d/keepalived reload
7.修改keepalived日志路径
配置keepalived时候所有的日志都是写入到/var/log/message下的,因此需要把keepalived的日志单独设置。
[root@master ~]# vim /etc/sysconfig/keepalived
KEEPALIVED_OPTIONS="-D -d -S 0" 
[root@master ~]# vim /etc/rsyslog.conf在文件最后添加:
#keepalived -S 0
local0.*/var/log/keepalived.log
重新启动日志
[root@master ~]# /etc/init.d/rsyslog restart
最后使用以下命令进行验证
[root@master ~]# /etc/init.d/keepalived restart
[root@master ~]# tail -f /var/log/keepalived.log

8.测试keepalived的可用性

       分别在主备两台机器上部署tomcat,并启动keepalived服务,通过虚拟ip访问192.168.83.120的8080端口,可以正常访问则说明配置成功,停止master机器,看是否可以切换到backup机器。

        本文只介绍keepalived双机热备的方案,如果想应用到应用服务上面,需要使用脚本对应用的状态进行监测,再次不再赘述,需要的小伙伴可以留言,在后续文档进行介绍。

 

 

猜你喜欢

转载自chy0919.iteye.com/blog/2377090