当前位置: 首页 > news >正文

LVS-DR负载均衡群集深度实践:高性能架构设计与排障指南

目录

一、核心原理与理论

二、背景与架构设计

三、全流程部署步骤

1. NFS共享存储配置(192.168.7.100)

 2. Real Server节点配置(四台服务器)

3. Director服务器配置

四、常见问题解决方案

五、生产环境总结

拓扑示意图:


一、核心原理与理论

LVS-DR(Direct Routing)模式通过MAC地址改写实现高效转发:

  • 数据流向

  • LVS-DR(Direct Routing)工作流程

    • 请求处理

      • 客户端访问VIP(172.16.16.172)

      • Director接收请求,通过调度算法选择Real Server

      • 修改目标MAC地址(不改变IP)转发至Real Server

      • Real Server通过lo:0接口直接响应客户端

    • 关键技术

      • ARP抑制:Real Server隐藏VIP(arp_ignore=1, arp_announce=2

      • 直接路由:响应流量不经过Director

      • 双网卡隔离:公网(ens33)处理客户端请求,内网(ens37)连接存储


二、背景与架构设计

网络规划

设备ens33 (公网)ens37 (存储内网)
Director172.16.16.171192.168.7.171
Real Server×4172.16.16.131-134192.168.7.131-134
NFS Server-192.168.7.100
VIP172.16.16.172-

核心优势

  • 吞吐量提升:响应流量直返客户端,避免Director瓶颈

  • 安全隔离:存储网络独立于公网

  • 数据一致性:NFS共享Web根目录

场景需求

  • 公网访问VIP:172.16.16.0/24(ens33)

  • 存储内网通信:192.168.7.0/24(ens37)

  • 共享存储:NFS服务器发布/var/www/html

架构优势

  • 解耦网络流量:公网/内网物理隔离

  • 数据一致性:NFS共享Web根目录

  • 高性能:DR模式避免Director带宽瓶颈


三、全流程部署步骤

1. NFS共享存储配置(192.168.7.100)

# 安装NFS服务
yum install -y nfs-utils rpcbind# 创建共享目录
mkdir -p /var/www/html
chmod 777 /var/www/html# 配置访问权限(/etc/exports)
echo "/var/www/html 172.16.16.0/24(rw,sync,no_root_squash)" >> /etc/exports
echo "/var/www/html 192.168.7.0/24(rw,sync,no_root_squash)" >> /etc/exports# 启动服务
systemctl enable --now rpcbind nfs-server
firewall-cmd --add-service=nfs --permanent
firewall-cmd --reload

 2. Real Server节点配置(四台服务器)

# 挂载NFS存储
yum install -y nfs-utils
mkdir -p /var/www/html
mount -t nfs 192.168.7.100:/var/www/html /var/www/html
echo "192.168.7.100:/var/www/html /var/www/html nfs defaults 0 0" >> /etc/fstab# 配置VIP到lo:0
echo "DEVICE=lo:0" > /etc/sysconfig/network-scripts/ifcfg-lo:0
echo "IPADDR=172.16.16.172" >> /etc/sysconfig/network-scripts/ifcfg-lo:0
echo "NETMASK=255.255.255.255" >> /etc/sysconfig/network-scripts/ifcfg-lo:0
ifup lo:0# 添加永久路由
echo "route add -host 172.16.16.172 dev lo:0" >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
route add -host 172.16.16.172 dev lo:0# 配置ARP抑制
echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf
echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf
sysctl -p# 安装Web服务(以Nginx为例)
yum install -y nginx
systemctl enable --now nginx

3. Director服务器配置

# 配置VIP到ens33:0
echo "DEVICE=ens33:0" > /etc/sysconfig/network-scripts/ifcfg-ens33:0
echo "IPADDR=172.16.16.172" >> /etc/sysconfig/network-scripts/ifcfg-ens33:0
echo "NETMASK=255.255.255.255" >> /etc/sysconfig/network-scripts/ifcfg-ens33:0
ifup ens33:0# 禁用ICMP重定向
echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.ens33.send_redirects = 0" >> /etc/sysctl.conf
sysctl -p# 加载IP_VS模块
modprobe ip_vs# 安装管理工具
yum install -y ipvsadm# 配置LVS规则
ipvsadm -C
ipvsadm -A -t 172.16.16.172:80 -s rr
ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.131:80 -g -w 1
ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.132:80 -g -w 1
ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.133:80 -g -w 1
ipvsadm -a -t 172.16.16.172:80 -r 172.16.16.134:80 -g -w 1# 保存配置
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl enable ipvsadm

 4. 验证配置

# 在客户端访问测试
curl http://172.16.16.172# 查看连接分发
ipvsadm -Ln --stats# 检查Real ServerARP抑制
sysctl -a | grep arp_ignore# 测试NFS写入
touch /var/www/html/testfile

 


 

四、常见问题解决方案

故障现象诊断方法解决方案
VIP无法访问ipvsadm -Ln查看规则状态检查Director的VIP配置和路由
所有请求分配到同一节点检查调度算法(-s参数)确认使用rr轮询而非sh等哈希算法
NFS写入权限被拒绝showmount -e 192.168.7.100检查exports的no_root_squash配置
节点服务器无法响应VIP请求tcpdump -i lo host 172.16.16.172验证ARP抑制参数是否生效
存储网络延迟高ping -s 8972 192.168.7.100调整MTU:ip link set ens37 mtu 9000

五、生产环境总结

性能优化建议

  1. 网卡调优

    # 启用巨帧(存储网络)
    ip link set ens37 mtu 9000
    ethtool -G ens37 rx 4096 tx 4096
  2. 内核参数优化

    # Director防止端口耗尽
    echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf# Real Server连接复用
    echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
  3. 会话保持方案

    # 启用源IP哈希调度
    ipvsadm -E -t 172.16.16.172:80 -s sh
    ​​​​​​​

容灾设计

  • 使用Keepalived实现Director双机热备

  • 存储网络配置bonding冗余

  • 实时监控:watch -n 1 "ipvsadm -Ln --stats"

 经验总结:在双网卡架构中,务必关闭存储网卡的ARP代理:

echo "net.ipv4.conf.ens37.proxy_arp = 0" >> /etc/sysctl.conf

拓扑示意图

[ 客户端 ]|| (访问 172.16.16.172)|
[ Director ]|      ||      | (ens37: 192.168.7.0/24)|      ||    [ NFS Server ]|      (192.168.7.100)|| (调度流量)|
[Real Server1]--[Real Server2]--[Real Server3]--[Real Server4]
(172.16.16.131) (172.16.16.132) (172.16.16.133) (172.16.16.134)

 

http://www.lqws.cn/news/514279.html

相关文章:

  • BUUCTF在线评测-练习场-WebCTF习题[ACTF2020 新生赛]BackupFile1-flag获取、解析
  • 一款实验室创客实验室用的桌面式五轴加工中心
  • 04-html元素列表-表格-表单
  • django request.data.get 判断有没有 某个参数
  • GROUP BY、UNION和COALESCE协作
  • 电商导购app平台的缓存策略与性能优化方案:架构师的实践经验
  • 【番外篇】TLS指纹
  • 4.1 ROS颜色目标识别与定位
  • 【大厂机试题解法笔记】分解连续正整数组合/ 分解正整数
  • 探索解析C++ STL中的 list:双向链表的高效实现与迭代器
  • 领域驱动设计(DDD)【13】之重构中的坏味道:深入理解依恋特性(Feature Envy)与表意接口模式
  • 没有VISA怎么注册AWS?
  • Flutter - 原生交互 - 相册
  • C语言基础回顾与Objective-C核心类型详解
  • QT 学习笔记摘要(三)
  • 每日AI资讯速递 | 2025-06-25
  • TDengine 的 CASE WHEN 语法技术详细
  • 磐维数据库PanWeiDB V2.0-S3.1.1_B01集中式一主二备安装
  • linux安装docker
  • Android14音频子系统-ASoC-ALSA之DAPM电源管理子系统
  • ISO/IEC 27001:2022 資訊安全管理系統 Information Security Management System , ISMS
  • elementui修改radio字体的颜色和圆圈的样式
  • centos7网络不可达connect: network is unreachable
  • 【JVS更新日志】物联网、智能排产APS、企业计划、规则引擎6.25更新说明!
  • 华为云Flexus+DeepSeek征文|基于Dify构建智能情感分析Agent全流程
  • MiniMax-M1混合MoE大语言模型(本地运行和私有化搭建)
  • 【零基础学AI】第3讲:Git版本控制基础
  • Java项目RestfulAPI设计最佳实践
  • 深入剖析:Spring Boot系统开发的高效之道
  • T-BOX 革新:ASR1606 LTE Cat.1 联合 SD NAND MKDV1GIL-AST 的优势剖析