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,保证调度器正常分发。

相关推荐
初学者,亦行者14 分钟前
计算机网络必考:一文吃透 TCP/IP 体系结构(附高清思维导图)
网络·tcp/ip
段一凡-华北理工大学22 分钟前
【高炉炼铁领域炉温监测、预警、调控智能体设计与应用】~系列文章10:实时预警机制:跑在问题前面!
网络·人工智能·python·知识图谱·高炉炼铁·工业智能体
zhangfeng113329 分钟前
部署到服务器上 宝塔系统 使用宝塔在线编辑器 FTP 批量上传 Git 部署 打包上传 codebudyy 编程程序开发
服务器·git·编辑器
WJ.Polar1 小时前
Scapy基本应用
linux·运维·网络·python
lljss20201 小时前
1. NameServer 域名服务器---NS
linux·服务器·前端
@insist1231 小时前
信息安全工程师-入侵检测核心技术、APT 应对与工程实践
网络·安全·软考·信息安全工程师·软件水平考试
CDN3602 小时前
[硬核] 你的DNS正在“裸奔”?用Python手撕DNS劫持与隧道检测逻辑
开发语言·网络·python
数智顾问2 小时前
(123页PPT)华为流程管理体系精髓提炼(附下载方式)
运维·华为
凯瑟琳.奥古斯特2 小时前
DNS解析全流程详解
网络·网络协议
Yupureki3 小时前
《Linux网络编程》5.HTTPS协议
linux·网络·https