VRRP协议实战

一、基本概念


keepalived进程

keepalived启动后会有三个进程

父进程内存管理子进程管理等等

子进程VRRP子进程

子进程healthchecker子进程

二、主备切换

切换前:

关闭主节点:

在mater节点执行命令reboot
备升主

可以发现发现备节点多了一个虚拟ip(vip)

keepalived配置文件说明

bash 复制代码
local_address_group laddr_g1 {
    172.31.1.23
}
vrrp_script chk_lvs
{
    script "/etc/keepalived/lvs_check.sh 192.168.79.253"
    interval 2
    timeout 150
    fall 10
    rise 5
}
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 5
    priority 150
    nopreempt
    advert_int 1
    dont_track_primary

    virtual_ipaddress {
        192.168.79.253 dev eth1 label eth1:1
    }

    track_script {
        chk_lvs
    }
    notify_master "/etc/keepalived/exclusive_role_change.sh master"
    notify_backup "/etc/keepalived/exclusive_role_change.sh backup"
    notify_fault "/etc/keepalived/exclusive_role_change.sh fault"

    garp_master_refresh 30
}
bash 复制代码
这段配置文件是一个 keepalived 的配置示例,描述了一个 VRRP 实例(VI_1),用于在两台服务器之间实现高可用性。具体来说,这个配置文件中定义了以下内容:

local_address_group 定义了本地地址组,其中包含一个 IP 地址(172.31.1.23)。

vrrp_script 定义了一个 VRRP 脚本(chk_lvs),用于检查 LVS 的状态。脚本的路径为 "/etc/keepalived/lvs_check.sh 192.168.79.253",检查间隔为 2 秒,超时时间为 150 秒,连续失败 10 次后切换到备用状态,连续成功 5 次后切换回主用状态。

vrrp_instance 定义了一个 VRRP 实例(VI_1),其中包括了以下内容:

state BACKUP 表示当前实例的状态为备用状态。
interface eth0 指定了 VRRP 实例使用的网络接口。
virtual_router_id 5 定义了虚拟路由器的 ID。
priority 150 设置了当前节点的优先级为 150。
nopreempt 表示不允许其他节点抢占主用状态。
advert_int 1 设置了 VRRP 广播间隔为 1 秒。
dont_track_primary 表示不跟踪主用节点。
virtual_ipaddress 定义了虚拟 IP 地址(192.168.79.253),并指定了使用的网络接口和标签。
track_script 指定了需要跟踪的脚本(chk_lvs)。
notify_master、notify_backup 和 notify_fault 分别定义了在节点角色变化时需要执行的通知脚本。
garp_master_refresh 30 设置了主用节点发送 GARP 包的刷新间隔为 30 秒。
这个配置文件的作用是在两台服务器之间实现高可用性,通过 VRRP 实现了虚拟 IP 地址的故障切换,同时通过跟踪脚本检测 LVS 的状态来实现故障检测和自动切换。

如何判断是否会进行切换

bash 复制代码
vrrp_script 里的script返回值为0时认为检测成功,其它值都会当成检测失败;
weight 为正时,脚本检测成功时此weight会加到priority上,检测失败时不加;
	主失败:主 priority < 从 priority + weight 时会切换。
	主成功:主 priority + weight > 从 priority + weight 时,主依然为主
weight 为负时,脚本检测成功时此weight不影响priority,检测失败时priority -- abs(weight)
	主失败:主 priority -- abs(weight) < 从priority 时会切换主从
	主成功:主 priority > 从priority 主依然为主
相关推荐
XH-hui3 分钟前
【打靶日记】群内靶机Alluser
linux·网络安全
2345VOR8 分钟前
【创龙RK3576开发板与电脑直连网络配置指南】
网络·电脑
qqssss121dfd20 分钟前
计算机网络(第8版,谢希仁)第二章习题解答
服务器·网络·计算机网络
4t4run21 分钟前
21、Linux常用命令-进程内存CPU相关命令
linux·运维·服务器
是店小二呀23 分钟前
本地 Websocket 调试总碰壁?cpolar一招让远程访问变简单
网络·websocket·网络协议
楼田莉子34 分钟前
Linux学习:基础IO相关学习
linux·开发语言·c++·后端·学习
小陈phd38 分钟前
langgraph从入门到精通(一)——langgraph概念解析
linux·运维·数据库
阿巴~阿巴~42 分钟前
解锁HTTP方法奥秘:GET与POST的深度探索与实战演示
服务器·网络·网络协议·http·get·post·请求方法
小许学java44 分钟前
网络编程套接字
java·网络·udp·socket·tcp·套接字
inquisiter1 小时前
cove-salus-tellus测试程序时序逻辑
linux·服务器·网络·riscv