我们通常所说的双机热备,不同于普通意义的负载均衡,两者都可以有两台机器在运行,但前者不是同时使用两台服务器提供服务,后者是两台服务器同时提供服务。双机热备是其中一台机器宕机或者应用出现异常会切换到备机,负载均衡不会存在切换的问题。
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
}
8.测试keepalived的可用性
分别在主备两台机器上部署tomcat,并启动keepalived服务,通过虚拟ip访问192.168.83.120的8080端口,可以正常访问则说明配置成功,停止master机器,看是否可以切换到backup机器。
本文只介绍keepalived双机热备的方案,如果想应用到应用服务上面,需要使用脚本对应用的状态进行监测,再次不再赘述,需要的小伙伴可以留言,在后续文档进行介绍。