目录
[1 LVS架构回顾与Real Server角色解析](#1 LVS架构回顾与Real Server角色解析)
[1.1 LVS三大核心组件](#1.1 LVS三大核心组件)
[1.2 Real Server的核心职责](#1.2 Real Server的核心职责)
[1.3 LVS工作模式与Real Server配置关系](#1.3 LVS工作模式与Real Server配置关系)
[2 Real Server基础环境准备](#2 Real Server基础环境准备)
[2.1 系统要求与建议](#2.1 系统要求与建议)
[2.2 网络基础配置](#2.2 网络基础配置)
[2.3 防火墙与SELinux配置](#2.3 防火墙与SELinux配置)
[3 LVS-DR模式Real Server详细配置](#3 LVS-DR模式Real Server详细配置)
[3.1 虚拟IP(VIP)配置](#3.1 虚拟IP(VIP)配置)
[3.2 ARP抑制机制详解](#3.2 ARP抑制机制详解)
[3.3 健康检查配置](#3.3 健康检查配置)
[4 高可用性与监控配置](#4 高可用性与监控配置)
[5 常见问题排查指南](#5 常见问题排查指南)
[6 总结](#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_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
sysctl -p >/dev/null 2>&1
echo "Real Server Started"
;;
stop)
/sbin/ifconfig lo:0 down
/sbin/route del VIP >/dev/null 2>&1 echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce echo "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 # 虚拟路由ID
priority 100 # 优先级(0-254)
advert_int 1 # 检查间隔authentication { auth_type PASS auth_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集群中实际处理请求的工作节点,其正确配置对整个系统的稳定性、性能和可靠性至关重要。记住,一个优秀的集群系统不仅需要智能的负载调度器,更需要精心配置和优化的后端服务器集群。