Keepalived的作用是检测服务器状态,如果LVS1挂了之后会自动切换到LVS2。后端的WEB服务器如果有故障,将被移除集群,直到恢复之后Keepalived将自动把WEB服务器加入集群中。
不过这样有点浪费,如果LVS1正常的话,LVS2将处于空闲状态。我们可以使用双主双备,使用两个虚拟IP。
#
安装
[root@localhost ~]# yum install keepalived
配置文件/etc/keepalived/keepalived.conf,以下是一简单示例。
vrrp_instance vip1 {
state MASTER
interface eth0
virtual_router_id 51 #vrrp组id
priority 99 #对应备用节点值应该比此值小
advert_int 1 #心跳间隔s
authentication {
auth_type PASS #验证方式
auth_pass 1111 #验证密码
}
virtual_ipaddress {
192.168.1.100 #虚拟IP地址
}
}
在Keepalived调用LVS
virtual_server 192.168.0.200 80 {
delay_loop 6 #每隔6秒查询realserver状态
lb_algo rr #算法
lb_kind DR #运行模式
# persistence_timeout 5 #5s内连接同一web
protocol TCP
real_server 192.168.1.104 80 {
weight 3 #权重
TCP_CHECK {
connect_timeout 3 #连接超时时间
nb_get_retry 3 #失败重试次数
delay_before_retry 3 #失败重试时间
connect_port 80
}
}
real_server 192.168.0.105 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
Keepalived健康检查
HTTP_GET {
url {
path /testurl/index.html
digest 640205b7b0fc66c1ea91c463fac6334d #md5值
#status_code 200 http返回码
}
以上md5生成方法如下
genhash -s 192.168.1.104 -p 80 -u /index.html
你也可以用自己的脚本进行检查
MISC_CHECK {
misc_path "/data/web_check.sh"
misc_timeout 30
misc_dynamic #失败后权重自动减去返回码
}