LVS/DR + keepalived配置

http://www.rfyy.net/archives/1466.html,在这篇文章中,实现了前端单台LVS/DR,后端两台服务器的架构。
但是这个架构是有问题的,前端LVS服务器有问题的话,就会造成访问不了后端服务器。还有后端服务器DOWN机的话,前端LVS还是会把请求转发到后端的服务器上,没有健康状态检测机制。有没有软件能解决上面的两个问题呢,当然有,KEEPALIVED当初就是为解决LVS的这些问题而生的。

keepalived原理图

yuli

keepalived可以实现服务的高可用或热备,用来防止单点故障的问题;而Keepalived的核心VRRP协议,VRRP协议主要实现了在路由器或三层交换机处的冗余;Keepalived就是使用VRRP协议来实现高可用的。

Keepalived启动后会有三个进程:
父进程:内存管理,子进程管理
子进程:VRRP子进程
子进程:healthchecker子进程
由上图可知:
两个子进程都被系统WatchDog看管,两个子进程各自复杂自己的事,healthchecker子进程复杂检查各自服务器的健康程度,例如HTTP,LVS等,如果healthchecker子进程检查到MASTER上服务不可用了,就会通知本机上的VRRP子进程,让它删除通告,并且去掉虚拟IP,转换为BACKUP状态。

注意:前面虽然我们已经配置过一些操作,但是下面我们使用keepaliave操作和之前的操作是有些冲突的,所以若是之前配置过DR,请首先做如下操作:dr上执行:

$ipv -C 清除LVS的配置
ifconfig eth0:0 down 把配置的VIP清除

前面的lvs虽然已经配置成功也实现了负载均衡,但是我们测试的时候发现,当某台real server把httpd进程停掉,那么director照样会把请求转发过去,这样就造成了某些请求不正常。所以需要有一种机制用来检测real server的状态,这就是keepalived。它的作用除了可以检测rs状态外,还可以检测备用director的状态,也就是说keepalived可以实现ha集群的功能,当然了也需要一台备用director.
备用director也需要安装一下keepalived软件
yum install -y keepalived
安装好后,编辑配置文件
vim /etc/keepalived/keepalived.conf //加入如下:
vrrp_instance VI_1 {
state MASTER #备用服务器上为 BACKUP
interface eth0
virtual_router_id 51 #主备上要一样
priority 100 #备用服务器上为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.44.77 #(VIP地址)
}
}
virtual_server 192.168.44.77 80 { #(VIP地址)
delay_loop 6 #(每隔10秒查询realserver状态)
lb_algo wlc #(lvs 算法)
lb_kind DR #(Direct Route)
persistence_timeout 60 #(同一IP的连接60秒内被分配到同一台realserver)
protocol TCP #(用TCP协议检查realserver状态)

real_server 192.168.44.209 80 {
weight 100 #(权重)
TCP_CHECK {
connect_timeout 10 #(10秒无响应超时)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.44.210 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}

以上为主director的配置文件,从director的配置文件只需要修改
state MASTER -> state BACKUP
priority 100 -> priority 90
配置完keepalived后,需要开启端口转发(主从都要做):
echo 1 > /proc/sys/net/ipv4/ip_forward
两台Real server上的配置就按上篇博客的配置。
最后,两个director上启动keepalived服务(先主后从):
/etc/init.d/keepalived start

验证:
主从KEEPALIVE的IP分别为:192.168.44.212和192.168.44.211
在主上
vip1
在从上
vip2
可以看到下正常状态下,VIP 192.168.44.77在主上192.168.44.212

下面把主192.168.44.212的KEEPALIVED停了,再看两处IP变化
vip3
vip4
可以看到VIP到从节点上了。