VRRP实例(instance)配置参数说明及示例
参数说明
state: state指定instance(Initial)的初始状态,就是说在配置好后,这台服务器的初始状态就是这里指定的,但这里指定的不算,还是得要通过竞选通过优先级来确定,里如果这里设置为master,但如若他的优先级不及另外一台,那么这台在发送通告时,会发送自己的优先级,另外一台发现优先级不如自己的高,那么他会就回抢占为master
interface: 实例绑定的网卡,因为在配置虚拟IP的时候必须是在已有的网卡上添加的
dont track primary: 忽略VRRP的interface错误
track interface: 跟踪接口,设置额外的监控,里面任意一块网卡出现问题,都会进入故障(FAULT)状态,例如,用nginx做均衡器的时候,内网必须正常工作,如果内网出问题了,这个均衡器也就无法运作了,所以必须对内外网同时做健康检查
mcast src ip: 发送多播数据包时的源IP地址,这里注意了,这里实际上就是在那个地址上发送VRRP通告,这个非常重要,一定要选择稳定的网卡端口来发送,这里相当于heartbeat的心跳端口,如果没有设置那么就用默认的绑定的网卡的IP,也就是interface指定的IP地址
garp master delay: 在切换到master状态后,延迟进行免费的ARP(gratuitous ARP)请求
virtual router id: 这里设置VRID,这里非常重要,相同的VRID为一个组,他将决定多播的MAC地址
priority 100: 设置本节点的优先级,优先级高的为master
advert int: 检查间隔,默认为1秒
virtual ipaddress: 这里设置的就是VIP,也就是虚拟IP地址,他随着state的变化而增加删除,当state为master的时候就添加,当state为backup的时候删除,这里主要是有优先级来决定的,和state设置的值没有多大关系,这里可以设置多个IP地址
virtual routes: 原理和virtual ipaddress一样,只不过这里是增加和删除路由
lvs sync daemon interface:lvs syncd绑定的网卡
authentication: 这里设置认证
auth type: 认证方式,可以是PASS或AH两种认证方式
auth pass: 认证密码
nopreempt: 设置不抢占,这里只能设置在state为backup的节点上,而且这个节点的优先级必须别另外的高
preempt delay: 抢占延迟
debug: debug级别
notify master: 和sync group这里设置的含义一样,可以单独设置,例如不同的实例通知不同的管理人员,http实例发给网站管理员,mysql的就发邮件给DBA
配置示例
! Configuration File for keepalived
#全局配置
global_defs {
router_id haproxy_one #机器标识
}
#健康检查VRRP脚本相关
vrrp_script chk_haproxy {
script "/etc/keepalived/haproxy_pid.sh" #健康检查脚本
interval 2 #脚本执行间隔
weight 2 #脚本结果导致的优先级变更:10表示优先级+10;-10则表示优先级-10
}
#VRRPD子进程,VRRPD子进程就是来实现VRRP协议的
vrrp_instance neiwang {
state BACKUP #主备状态
interface eth0 #监听网卡
virtual_router_id 56 #虚拟路由id
priority 100 #权重
advert_int 1 #检查间隔,默认为1秒
smtp_alert #表示切换时给global defs中定义的邮件地址发送邮件通知
preempt_delay 1 #抢占延迟
authentication { #认证配置
auth_type PASS #认证方式,可以是PASS或AH两种认证方式
auth_pass 1111 #认证密码
}
virtual_ipaddress { #虚拟IP
10.89.2.11
}
track_script { #引用健康检查脚本函数
chk_haproxy
}
}