LVS-DR 群集部署

一、LVS-DR 作用与核心特点

作用

LVS-DR(Linux Virtual Server - Direct Routing,直接路由模式)是生产环境最常用 的负载均衡模式,核心作用是将客户端高并发请求均匀分发 到多台后端真实服务器(Real Server),避免单点故障提升系统并发能力降低响应延迟,保障业务高可用。

核心特点

  1. 调度器(Director Server)与真实服务器(Real Server)必须在同一物理网络

  2. 请求报文经调度器分发,响应报文直接回传给客户端,不经过调度器,性能极高。

  3. 调度器与真实服务器共用 VIP,真实服务器在 lo 接口配置 VIP。

  4. 真实服务器网关不能指向调度器

二、实验环境规划

主机角色 操作系统 IP 地址 核心服务 / 工具
LVS 调度器 openEuler 24.03 192.168.10.101(DIP) ipvsadm
Web 节点 1 openEuler 24.03 192.168.10.102(RIP) httpd、NFS 客户端
Web 节点 2 openEuler 24.03 192.168.10.103(RIP) httpd、NFS 客户端
NFS 共享存储 openEuler 24.03 192.168.10.104 NFS 服务端
集群 VIP - 192.168.10.100 虚拟 IP

三、实验部署步骤

(一)配置 LVS 调度器(Director Server)

1. 配置 VIP(虚拟 IP)
  1. 进入网卡配置目录,复制网卡配置文件

bash

复制代码
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
  1. 编辑虚接口配置文件

bash

复制代码
vim ifcfg-ens33:0

写入内容:

复制代码
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.10.100
NETMASK=255.255.255.255  # 掩码必须全1
  1. 重启网络服务并查看 VIP

bash

复制代码
systemctl restart NetworkManager
ifconfig ens33:0
2. 调整内核参数(关闭重定向)
  1. 编辑 sysctl 配置文件

bash

复制代码
vi /etc/sysctl.conf

添加以下参数:

复制代码
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
  1. 生效内核参数

bash

复制代码
sysctl -p
3. 配置 ipvsadm 负载策略
  1. 清空原有策略,添加集群服务(轮询 rr 算法)

bash

复制代码
ipvsadm -C
ipvsadm -A -t 192.168.10.100:80 -s rr
  1. 添加后端真实服务器(-g 表示 DR 模式)

bash

复制代码
ipvsadm -a -t 192.168.10.100:80 -r 192.168.10.102 -g -w 1
ipvsadm -a -t 192.168.10.100:80 -r 192.168.10.103 -g -w 1
  1. 保存策略并设置开机自启

bash

复制代码
systemctl enable ipvsadm
ipvsadm-save > /etc/sysconfig/ipvsadm

(二)配置 Real Server(Web 节点 1、节点 2,两台操作一致)

1. 配置 lo:0 虚拟 VIP
  1. 临时配置(重启失效)

bash

复制代码
vip='192.168.10.100'
ip addr add ${vip}/32 dev lo label lo:0
ip route add local ${vip}/32 dev lo
  1. 永久配置(写入开机自启)

bash

复制代码
echo "ip addr add ${vip}/32 dev lo label lo:0" >> /etc/rc.local
echo "ip route add local ${vip}/32 dev lo" >> /etc/rc.local
chmod +x /etc/rc.local
2. 调整 ARP 内核参数(禁止响应 VIP ARP)
  1. 编辑 sysctl 配置文件

    vi /etc/sysctl.conf

添加以下参数:

复制代码
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
  1. 生效内核参数

bash

复制代码
sysctl -p
3. 部署 Web 服务
  1. 安装 httpd

bash

复制代码
yum -y install httpd
  1. 挂载 NFS 共享目录(可选,统一页面)

bash

复制代码
mount 192.168.10.104:/opt/wwwroot /var/www/html
  1. 创建测试页面

bash

复制代码
echo "<h1>LVS-DR 测试 - Web 节点1</h1>" > /var/www/html/index.html
  1. 启动并自启 httpd

bash

复制代码
systemctl start httpd
systemctl enable httpd

(三)集群测试

  1. 客户端浏览器访问 VIP:http://192.168.10.100

  2. 多次刷新页面,可看到轮询访问节点 1、节点 2

  3. 调度器查看负载状态

bash

复制代码
ipvsadm -ln

显示两个 Web 节点连接数均匀,即部署成功。

四、关键原理总结

  1. 客户端请求目标 IP 为 VIP,调度器修改MAC 地址分发至 Real Server。

  2. Real Server 用 VIP 作为源 IP,直接回包给客户端,不经过调度器。

  3. ARP 参数约束:避免真实服务器抢占 VIP,保证调度器正常分发。

相关推荐
用户0328472220707 分钟前
如何搭建本地yum源(上)
运维
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz3 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
网络研究院3 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest3 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化