在高并发业务场景中,单一服务器的性能瓶颈和单点故障风险是系统稳定性的最大威胁。LVS + Keepalived 高可用集群搭建的核心价值在于:通过LVS实现多台服务器的负载均衡,结合Keepalived的VRRP协议实现负载调度器的主备切换,构建“负载均衡+故障自动转移”的双层高可用架构,使系统可用性从99.9%提升至99.99%,每年减少近9小时的故障停机时间。本文将从集群架构、环境部署、配置实战到故障演练,全面解析LVS+Keepalived的搭建过程,正如鳄鱼java在《Linux集群架构实战》中强调的:“高可用集群不是简单的组件堆砌,而是通过精密协作实现的业务连续性保障机制。”
集群架构解析:LVS与Keepalived的协同机制

LVS(Linux Virtual Server)负责流量分发,Keepalived负责高可用切换,两者协同工作形成完整的负载均衡高可用解决方案:
1. LVS负载均衡原理
LVS通过IP负载均衡技术将客户端请求分发到后端真实服务器(Real Server),核心模式包括: - DR模式(Direct Routing):直接路由模式,LVS仅处理请求分发,响应数据由Real Server直接返回客户端,性能最高(转发效率达10Gbps级) - NAT模式(Network Address Translation):通过地址转换实现转发,支持后端服务器跨网段,但性能较低(适合100Mbps以下场景) - TUN模式(IP Tunneling):通过IP隧道转发请求,适合跨地域集群,但配置复杂
鳄鱼java技术实验室测试显示,DR模式在并发10万连接时,转发延迟仅0.3ms,是生产环境的首选模式。
2. Keepalived高可用机制
Keepalived基于VRRP(虚拟路由冗余协议)实现主备调度器的故障切换: - 主备角色:主调度器(Master)处理流量,备调度器(Backup)实时监控主节点状态 - VRRP心跳:主节点每秒发送VRRP广播报文,备节点若3秒内未收到则触发切换 - VIP漂移:虚拟IP(VIP)在主节点故障时自动漂移到备节点,确保业务不中断
环境准备:服务器规划与网络配置
1. 硬件与系统要求
推荐配置(生产环境): - 负载调度器(2台):2核4G内存,双网卡(公网/内网) - Real Server(至少2台):4核8G内存,部署业务服务(如Nginx、Tomcat) - 操作系统:CentOS 7/8,内核版本≥3.10(支持LVS DR模式)
2. 网络拓扑与IP规划
| 节点角色 | 公网IP | 内网IP | VIP(虚拟IP) |
|---|---|---|---|
| Master LVS | 103.xx.xx.101 | 192.168.1.10 | 103.xx.xx.200(漂移IP) |
| Backup LVS | 103.xx.xx.102 | 192.168.1.11 | |
| Real Server 1 | - | 192.168.1.20 | - |
| Real Server 2 | - | 192.168.1.21 | - |
关键网络要求: - VIP需与主备调度器公网IP在同一网段 - Real Server与调度器内网互通,关闭防火墙或开放相关端口
软件安装:LVS与Keepalived部署步骤
1. 安装LVS管理工具
在主备调度器节点安装ipvsadm(LVS管理工具):
# 安装依赖 yum install -y kernel-devel openssl-devel popt-devel安装ipvsadm
yum install -y ipvsadm
验证安装
ipvsadm -v # 显示版本信息即安装成功
2. 安装Keepalived
在主备调度器节点安装Keepalived:
# 安装Keepalived yum install -y keepalived设置开机自启
systemctl enable keepalived && systemctl start keepalived
验证状态
systemctl status keepalived # 显示active (running)即正常
3. 配置Real Server
在Real Server节点配置DR模式必需的内核参数(抑制ARP响应):
# 临时配置(立即生效) echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce为回环网卡配置VIP(与调度器VIP一致):永久配置(重启生效)
cat >> /etc/sysctl.conf << EOF net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 EOF sysctl -p
ifconfig lo:0 103.xx.xx.200 netmask 255.255.255.255 broadcast 103.xx.xx.200 up route add -host 103.xx.xx.200 dev lo:0
核心配置:LVS + Keepalived协同工作
1. 主调度器Keepalived配置
编辑主节点配置文件/etc/keepalived/keepalived.conf:
! Configuration File for keepalived
global_defs {
router_id LVS_MASTER # 唯一标识,备节点需修改为LVS_BACKUP
}
vrrp_instance VI_1 {
state MASTER # 主节点为MASTER,备节点为BACKUP
interface eth0 # 公网网卡
virtual_router_id 51 # 虚拟路由ID(主备节点需一致)
priority 100 # 优先级(主节点高于备节点,如备节点设为90)
advert_int 1 # VRRP心跳间隔1秒
authentication {
auth_type PASS
auth_pass 1111 # 认证密码(主备节点需一致)
}
virtual_ipaddress {
103.xx.xx.200/24 # VIP及子网掩码
}
}
LVS配置
virtual_server 103.xx.xx.200 80 { # VIP和端口
delay_loop 6 # 健康检查间隔6秒
lb_algo rr # 调度算法:rr(轮询)、wrr(加权轮询)、lc(最小连接)
lb_kind DR # LVS模式:DR
persistence_timeout 0 # 会话保持时间(0表示不保持)
protocol TCP # 协议
real_server
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。





