KEEPLIAVED权威指南

VRRP


KEEPLIAVED权威指南
image.png

KEEPLIAVED权威指南
image.png

VRRP通过224.0.0.18来实现
在VRRP中,不管谁是主,对外都是相同的MAC和IP
作为主,必须不断发送VRRP包,告诉其他备,他是存活的

keepalived:core,vrrp,check,libipfwc,libipvs
keepalived对LVS进行封装
KeepAlived配置文件分为三部分:全局配置、VRRPD配置、LVS配置


KEEPLIAVED权威指南
image.png

vrrp_sync_group 用来捆绑两个网卡,只要其中一个挂了,就一起判定为挂了
vrrp_sync_group VG_1{
group {
VI_1
VI_2
}
notify_master /path/master.sh
notify_backup /path/backup.sh
notify_fault /path/fault.sh
notify /path/notify.sh
smtp_alert
}


KEEPLIAVED权威指南
image.png

vrrp_instance VI_1 {
state MASTER
interface eth0
dont_track_primary
track_interface {
eth0
eth1
}
garp_master_delay 10
virtual_route_id 51
priority 100
advert_int 1
authentication {
auth_type pass
auth_pass 1234
}
virtual_ipaddress {
192.168.200.17/24 dev eth1
192.168.200.18/24 dev eth2 label eth2:1
}
virtual_routes {
src xx to xx via xx dev xx
xx via xx dev xx
xx dev xxx
xx via xxx
}
nopreempt
preempt_delay 300
debug
}
dont_track_primary 忽略VRRP的interface错误
track_interface 设置额外的监控,里面的任何一个网卡出问题,都会进入FAULT状态
mcast_src_ip 发送多播包的地址,如果不设置,默认使用绑定的网卡的IP
garp_master_delay 切换成MASTER后,延迟进行g'ratuitous ARP请求
MASTER的priority要至少高BACKUP50
advert_int 检测间隔
virtual_routes virtual_ipaddress
nopreempt 设置为不抢占,只能放在BACKUP里

LVS的配置
virtual_server_group 虚拟主机组,让一台realserver的某个service属于多个virtual server,并且只做一次健康检查
virtual_server vip vport {
delay_loop 3
lb_algo rr|wrr|lc|wlc|lblc|sh|dh
lb_kind NAT|DR|TUN
persistence_timeout 120 #会话保持时间
persistence_granularity #LVS的会话保持粒度
protocol TCP
ha_suspend
virtualhost
sorry_server #备用机
real_server ip port
{
weight 1
inhibit_on_failure #服务器健康检查失败时,将weight设置为0
notify_up #在检测service up后,执行的脚本
notify_down #检测service down后,执行的脚本

健康检查方式:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK

HTTP_GET|SSL_GET
{
url {
path /
status_code 200
}
connect_port 80
bindto #以此地址发送请求
connect_timeout
nb_get_retry 3 #重连次数
delay_before_retry #重连间隔
}
TCP_CHECK {
connect_port 80
bindto xxx
connect_timeout 4
}
SMTP_CHECK #和HTTP类似
MISC_CHECK{
misc_path #脚本
misc_timeout #xx


KEEPLIAVED权威指南
image.png

}
}
}