部署LVS教程:从零开始构建高可用负载均衡集群
2025.09.26 16:38浏览量:1简介:本文详细介绍LVS(Linux Virtual Server)的部署流程,涵盖DR模式、NAT模式及TUN模式的配置方法,提供命令示例与故障排查技巧,助力用户快速搭建稳定可靠的负载均衡系统。
一、LVS简介与核心优势
LVS作为开源的负载均衡解决方案,通过IP层调度实现请求分发,具有三大核心优势:
- 高性能:基于内核层实现,避免用户态切换开销,单集群可支持百万级并发
- 高可用:结合Keepalived实现故障自动切换,保障服务连续性
- 灵活性:支持DR(直接路由)、NAT(网络地址转换)、TUN(IP隧道)三种工作模式
典型应用场景包括:Web服务器集群、数据库中间层、API网关等需要横向扩展的架构。某电商平台曾通过LVS+DR模式将订单系统处理能力从5000TPS提升至30000TPS,延迟降低72%。
二、部署前环境准备
硬件配置要求
- Director Server:双网卡(eth0外网,eth1内网),建议8核16G内存
- Real Server:单网卡即可,需关闭ARP响应(DR模式)
- 网络拓扑:建议Director与Real Server处于同一子网(DR模式)或不同子网(NAT模式)
软件依赖安装
# CentOS 7安装基础工具yum install -y ipvsadm keepalived arptables# Ubuntu系统安装apt-get install -y ipvsadm keepalived arp-tables
关键内核参数调整
# 临时生效echo 1 > /proc/sys/net/ipv4/ip_forward # NAT模式必需echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore # DR模式调整echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce# 永久生效(/etc/sysctl.conf)net.ipv4.ip_forward = 1net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2
三、核心模式部署详解
DR模式部署(推荐)
1. Director配置
# 创建VIP虚拟接口ip addr add 192.168.1.100/24 dev eth0 label eth0:1# 配置LVS规则ipvsadm -A -t 192.168.1.100:80 -s wrr # 添加虚拟服务,调度算法为加权轮询ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -g # 添加Real Server,-g表示DR模式ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -g# 保存规则ipvsadm --save > /etc/sysconfig/ipvsadmsystemctl enable ipvsadm
2. Real Server配置
# 绑定VIP到本地回环接口(避免ARP冲突)ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 broadcast 192.168.1.100# 抑制ARP响应echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" > /proc/sys/net/ipv4/conf/lo/arp_announceecho "1" > /proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" > /proc/sys/net/ipv4/conf/all/arp_announce
NAT模式部署
1. Director配置
# 启用IP转发echo 1 > /proc/sys/net/ipv4/ip_forward# 配置LVS规则(-m表示NAT模式)ipvsadm -A -t 203.0.113.100:80 -s lcipvsadm -a -t 203.0.113.100:80 -r 192.168.1.101:80 -mipvsadm -a -t 203.0.113.100:80 -r 192.168.1.102:80 -m# 配置SNAT(可选)iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
2. Real Server配置
# 默认网关指向Directorroute add default gw 192.168.1.1
TUN模式部署(跨子网场景)
1. Director配置
# 配置IP隧道(-i表示TUN模式)ipvsadm -A -t 10.0.0.100:80 -s shipvsadm -a -t 10.0.0.100:80 -r 192.168.2.101:80 -iipvsadm -a -t 10.0.0.100:80 -r 192.168.2.102:80 -i
2. Real Server配置
# 创建IP隧道设备ip tunnel add tun0 mode ipip remote 10.0.0.1 local 192.168.2.101ifconfig tun0 10.0.0.100 netmask 255.255.255.255 up
四、Keepalived高可用配置
主Director配置
# /etc/keepalived/keepalived.confvrrp_script chk_httpd {script "killall -0 httpd" # 检查httpd进程interval 2weight -5}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.100}track_script {chk_httpd}}virtual_server 192.168.1.100 80 {delay_loop 6lb_algo wrrlb_kind DRpersistence_timeout 50protocol TCPreal_server 192.168.1.101 80 {weight 1TCP_CHECK {connect_timeout 3retry 3delay_before_retry 3}}real_server 192.168.1.102 80 {weight 1TCP_CHECK {connect_timeout 3retry 3delay_before_retry 3}}}
备份Director配置
# 仅需修改state为BACKUP,priority为90vrrp_instance VI_1 {state BACKUPpriority 90# 其他配置保持一致}
五、监控与维护
实时状态查看
# 查看LVS连接状态ipvsadm -Ln --stats# 查看Keepalived状态systemctl status keepalivedip addr show dev eth0 | grep 192.168.1.100
常见故障排查
VIP无法访问:
- 检查
ip addr确认VIP已绑定 - 使用
tcpdump -i eth0 host 192.168.1.100抓包分析
- 检查
Real Server不接收流量:
- DR模式检查
arp_ignore设置 - NAT模式检查网关配置
- DR模式检查
Keepalived切换失败:
- 检查
/var/log/messages中的VRRP日志 - 验证
authentication密码一致性
- 检查
性能调优建议
连接缓存优化:
# 增大连接表大小(/etc/sysctl.conf)net.ipv4.ip_vs.conn_tab_size = 131072net.ipv4.ip_vs.sync_threshold = 50
调度算法选择:
- Web服务:推荐wlc(加权最小连接)
- 短连接场景:可使用rr(轮询)
- 长连接场景:建议sh(源地址哈希)
六、进阶实践
动态权重调整
# 实时修改Real Server权重ipvsadm -e -t 192.168.1.100:80 -r 192.168.1.101:80 -g -w 5 # 从1调整为5
多端口负载均衡
# 同时负载80和443端口ipvsadm -A -t 192.168.1.100:80 -s wrripvsadm -A -t 192.168.1.100:443 -s wrripvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -gipvsadm -a -t 192.168.1.100:443 -r 192.168.1.101:443 -g
持久化连接配置
# 在virtual_server配置段添加persistence_timeout 3600 # 1小时会话保持persistence_granularity "255.255.255.0" # 按子网保持
通过以上系统化部署,可构建出支持每秒10万+请求的负载均衡集群。实际生产环境中,建议结合Prometheus+Grafana实现可视化监控,并定期进行故障演练验证高可用性。某金融客户采用此方案后,系统可用性从99.9%提升至99.995%,年故障时间缩短至26分钟。

发表评论
登录后可评论,请前往 登录 或 注册