Keepalived VRRP-Script抢占延迟VIP单播详解

得意犹堪夸世俗,诏黄新湿字如鸦。这篇文章主要讲述Keepalived VRRP-Script抢占延迟VIP单播详解相关的知识,希望能为你提供帮助。
keepalived利用VRRP Script 技术 调用外部的辅助脚本进行资源监控,并根据监控的结果实现优先动态调整,从而实现其它应用的高可用性功能VRRP Script 配置 定义脚本
vrrp_script:自定义资源监控脚本,vrrp实例根据脚本返回值,公共定义,可被多个实例调用,定义在vrrp实例之外的独立配置块,一般放在global_defs设置块之后。

vrrp_script < SCRIPT_NAME>
script < STRING> |< QUOTED-STRING> #此脚本返回值为非0时,会触发下面OPTIONS执行
OPTIONS


通常此脚本用于监控指定应用的状态。一旦发现应用的状态异常,则触发对MASTER节点的权重减至低于SLAVE节点,从而实现 VIP 切换到 SLAVE 节点

调用脚本
track_script:调用vrrp_script定义的脚本去监控资源,定义在VRRP实例之内,调用事先定义的vrrp_script
track_script
SCRIPT_NAME_1
SCRIPT_NAME_2

定义 VRRP script
vrrp_script < SCRIPT_NAME> #定义一个检测脚本,在global_defs 之外配置
script < STRING> |< QUOTED-STRING> #shell命令或脚本路径
interval < INTEGER> #间隔时间,单位为秒,默认1秒
timeout < INTEGER> #超时时间
weight < INTEGER:-254..254> #默认为0,如果设置此值为负数,当上面脚本返回值为非0时,会将此值与本节点权重相加可以降低本节点权重,即表示fall. 如果是正数,当脚本返回值为0,会将此值与本节点权重相加可以提高本节点权重,即表示 rise.通常使用负值
fall < INTEGER> #执行脚本连续几次都失败,则转换为失败,建议设为2以上
rise < INTEGER> #执行脚本连续几次都成功,把服务器从失败标记为成功
user USERNAME [GROUPNAME] #执行监测脚本的用户或组
init_fail #设置默认标记为失败状态,监测成功之后再转换为成功状态

调用 VRRP script
vrrp_instance VI_1

track_script
chk_down


抢占延迟模式 preempt_delay 【Keepalived VRRP-Script抢占延迟VIP单播详解】抢占延迟模式,即优先级高的主机恢复后,不会立即抢回VIP,而是延迟一段时间(默认300s)再抢回VIP
preempt_delay # #指定抢占延迟时间为#s,默认延迟300s
注意:需要各keepalived服务器state为BACKUP,并且不要启用 vrrp_strict

范例:
#ha1主机配置
vrrp_instance VI_1
state BACKUP #都为BACKUP
interface eth0
virtual_router_id 66
priority 100 #优先级高
advert_int 1
preempt_delay 60 #抢占延迟模式,默认延迟300s
#ha2主机配置
vrrp_instance VI_1
state BACKUP #都为BACKUP
interface eth0
virtual_router_id 66
priority 80 #优先级低
advert_int 1

VIP单播配置
默认keepalived主机之间利用多播相互通告消息,会造成网络拥塞,可以替换成单播,减少网络流量

#在所有节点vrrp_instance语句块中设置对方主机的IP,建议设置为专用于对应心跳线网络的地址,而非使用业务网络
unicast_src_ip < IPADDR> #指定发送单播的源IP
unicast_peer
< IPADDR> #指定接收单播的对方目标主机IP
......


    推荐阅读