【LVS入门宝典】LVS核心原理与实战:Real Server(后端服务器)高可用配置指南
目录
引言
1 LVS架构回顾与Real Server角色解析
1.1 LVS三大核心组件
1.2 Real Server的核心职责
1.3 LVS工作模式与Real Server配置关系
2 Real Server基础环境准备
2.1 系统要求与建议
2.2 网络基础配置
2.3 防火墙与SELinux配置
3 LVS-DR模式Real Server详细配置
3.1 虚拟IP(VIP)配置
3.2 ARP抑制机制详解
3.3 健康检查配置
4 高可用性与监控配置
5 常见问题排查指南
6 总结
1引言
Linux Virtual Server(LVS)作为一款成熟高效的负载均衡解决方案,通过将客户端请求智能分发到多台后端服务器(Real Server),实现了横向扩展和故障转移。虽然LVS的调度器(Director)常被视为系统的"大脑",但Real Server才是真正处理请求、承载业务的"肌肉"。
1 LVS架构回顾与Real Server角色解析
1.1 LVS三大核心组件
在深入Real Server配置之前,让我们先简要回顾LVS的整体架构:
- 负载调度器(Director Server):整个集群系统的前端机,负责将客户端请求按照某种算法转发到Real Server
- 服务器池(Server Pool):由多台Real Server组成,实际处理业务请求的后端服务器集群
- 共享存储(Shared Storage):为服务器池提供共享数据存储,保证数据一致性
1.2 Real Server的核心职责
Real Server在LVS架构中承担着以下关键角色:
- 请求处理器:接收并处理Director转发的客户端请求
- 健康状态报告器:通过健康检查机制向Director报告自身状态
- 业务逻辑执行器:运行实际的应用服务(Web、API、数据库等)
1.3 LVS工作模式与Real Server配置关系
- L支持三种主要工作模式,每种模式对Real Server的配置要求不同:

2 Real Server基础环境准备
2.1 系统要求与建议
在配置Real Server之前,确保系统满足以下要求:
- 操作系统:Linux内核2.4+(CentOS 7)
- 网络配置:至少两个网络接口(生产环境建议千兆以太网卡)
- 系统资源:根据实际应用需求分配CPU、内存和存储资源
2.2 网络基础配置
- 每台Real Server需要正确配置网络参数,以下是在CentOS 7上的配置示例:
# 查看网络接口信息
ip addr show# 配置静态IP(编辑网卡配置文件)
vi /etc/sysconfig/network-scripts/ifcfg-eth0# 文件内容示例:
TYPE=Ethernet
BOOTPROTO=static
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.10.31
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=8.8.8.8
2.3 防火墙与SELinux配置
- 根据安全策略适当调整防火墙和SELinux设置:
# 禁用防火墙(生产环境建议配置精确规则)
systemctl stop firewalld
systemctl disable firewalld# 或配置防火墙规则允许必要端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload# 禁用SELinux或设置为宽松模式
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
3 LVS-DR模式Real Server详细配置
3.1 虚拟IP(VIP)配置
- 在DR模式下,Real Server需要在loopback接口上配置VIP,但不应响应ARP请求:
# 创建配置脚本
vi /etc/init.d/realserver# 脚本内容如下:
#!/bin/bash
# LVS script for Real Server
VIP=192.168.1.100 # 虚拟IP地址case "$1" in
start)# 在lo接口添加VIP/sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP up# 添加路由记录/sbin/route add -host $VIP dev lo:0# 抑制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_announcesysctl -p >/dev/null 2>&1echo "Real Server Started";;
stop)/sbin/ifconfig lo:0 down/sbin/route del $VIP >/dev/null 2>&1echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" > /proc/sys/net/ipv4/conf/lo/arp_announceecho "0" > /proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" > /proc/sys/net/ipv4/conf/all/arp_announceecho "Real Server Stopped";;
*)echo "Usage: $0 {start|stop}"exit 1
esac
exit 0
- 使脚本可执行并设置开机自启:
chmod +x /etc/init.d/realserver
chkconfig --add realserver
chkconfig realserver on
3.2 ARP抑制机制详解
- 在DR模式下,ARP抑制是确保LVS正常工作的关键技术,其原理如下:

ARP相关内核参数说明:
- arp_ignore=1:只响应目的IP为本地接口IP的ARP请求
- arp_announce=2:始终使用最佳本地地址作为ARP源地址
3.3 健康检查配置
- Real Server需要提供健康检查接口,供Director监控服务状态:
# 安装Web服务用于健康检查
yum install -y nginx# 创建健康检查页面
vi /usr/share/nginx/html/healthcheck.html# 内容简单即可
echo "OK" > /usr/share/nginx/html/healthcheck.html# 启动Nginx
systemctl start nginx
systemctl enable nginx
4 高可用性与监控配置
- 实现Real Server高可用:确保单台Real Server故障不影响整体服务
# 安装并配置keepalived实现Real Server高可用
yum install -y keepalived# 配置keepalived
vi /etc/keepalived/keepalived.conf# 配置文件内容:
vrrp_instance VI_1 {state BACKUP # 初始状态interface eth0 # 监控网卡virtual_router_id 51 # 虚拟路由IDpriority 100 # 优先级(0-254)advert_int 1 # 检查间隔authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.200/24 # 应用的VIP}# 服务检查脚本track_script {chk_nginx}
}# 服务检查脚本定义
vrrp_script chk_nginx {script "/usr/bin/killall -0 nginx" # 检查nginx进程是否存在interval 2 # 检查频率weight 2 # 权重
}
5 常见问题排查指南
- 问题一:Real Server无法接收请求
# 检查网络连通性
ping -c 4 <director_ip># 检查VIP配置
ip addr show lo:0# 检查路由配置
route -n# 检查ARP设置
sysctl -a | grep arp_ignore
sysctl -a | grep arp_announce
- 问题二:会话保持失效
# 检查应用日志
tail -f /var/log/nginx/lvs-access.log# 验证会话存储
redis-cli keys '*session*'
- 问题三:性能瓶颈
# 监控系统资源
top
htop# 检查网络流量
iftop -i eth0# 检查连接状态
ss -s
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
6 总结
Real Server作为LVS集群中实际处理请求的工作节点,其正确配置对整个系统的稳定性、性能和可靠性至关重要。记住,一个优秀的集群系统不仅需要智能的负载调度器,更需要精心配置和优化的后端服务器集群。