lvs负载均衡自动化运维通过三类shell脚本协同实现:调度器初始化脚本配置vip、启用转发、加载ipvs规则;真实服务器脚本配置lo绑定vip及arp抑制;健康检查脚本定时探测并动态增删节点,全程无需第三方组件。

LVS 通过脚本实现负载均衡自动化运维,核心在于把人工执行的配置、状态检测、动态增删节点等操作固化为可重复、可调度的 Shell 脚本,并配合系统服务或定时任务持续运行。关键不是写一个“万能脚本”,而是分角色、分职责构建三类协同脚本:调度器初始化脚本、真实服务器就绪脚本、健康检查与自愈脚本。它们共同构成轻量但可靠的自动化闭环。
调度器端初始化脚本(如 lvs.sh)
负责 LVS 集群的“启动即就绪”:绑定 VIP、开启转发、清空旧规则、加载新调度策略。
- 必须显式配置 VIP 和 DIP,用
ifconfig eth0:0 $VIP/32 up+route add -host $VIP dev eth0:0绑定虚拟 IP - 执行
echo 1 > /proc/sys/net/ipv4/ip_forward启用内核转发(DR 模式下虽不转发数据包,但部分环境仍需开启) - 使用
ipvsadm -A -t $VIP:80 -s wrr定义集群服务,再用-a -t ... -r $RIP -g -w $weight添加后端节点(-g表示 DR 模式) - 加锁文件(如
/var/lock/subsys/ipvsadm)便于status判断运行状态
真实服务器就绪脚本(如 realserver.sh)
确保每台 RS 启动后自动完成 LVS-DR 必需的底层配置,避免人工遗漏。
- 在 lo 接口绑定相同 VIP:
ip addr add $VIP/32 dev lo - 设置 ARP 抑制参数:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore(只响应目标 IP 是本机 lo 的 ARP 请求)echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce(从匹配接口回包,避免 VIP 响应在 eth0 上暴露) - 启动业务服务(如
systemctl start httpd),并确认监听在$RIP:80(非 VIP)
健康检查与自愈脚本(如 check_lvs.sh)
这是自动化运维的“神经中枢”,决定是否剔除或恢复节点。
- 用
curl --connect-timeout 1 -s http://$RIP/health检测(建议用独立健康接口,而非首页) - 检查次数可设为 3 次(
CHKLOOP=3),失败才判定宕机,避免瞬时抖动误判 - 状态用数组
RSSTATUS缓存,仅当状态变化时执行ipvsadm -a或-d,减少内核规则频繁刷新开销 - 故障恢复后写日志(如
echo "$(date), $RIP is back" >> /var/log/ipvsmonitor.log),便于审计 - 可扩展加入“兜底逻辑”:当所有 RS 全挂时,自动将本机(DIP)加入集群提供错误页
整个流程无需第三方组件,纯 Bash + ipvsadm + curl 即可落地。只要三类脚本在对应机器上正确部署、赋予执行权限,并通过 systemctl enable lvs 或 crontab -e(例如 */2 * * * * /opt/scripts/check_lvs.sh)触发,就能实现分钟级响应的无人值守运维。










