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

部署 LVS-DR 群集

前言

LVS-DR(Linux Virtual Server - Direct Routing)是一种高效的负载均衡技术,广泛应用于企业网站和高并发的网络环境中。它通过将流量分配到多个服务器节点,提供高可用性和扩展性,保障应用的稳定运行。

本章结构

  1. 理解 LVS-DR 工作原理

  2. 掌握 LVS-DR 部署过程

LVS-DR 数据包流向分析

为便于理解 LVS-DR 的工作原理,假设 Client 与群集服务器位于同一网络中,数据包的流向如下:

1. 客户端发送请求到 VIP

  • 步骤 1:客户端发起请求,目标是虚拟 IP(VIP)地址,这个 VIP 地址是负载均衡器(Director)和后端服务器共享的 IP 地址。

  • 步骤 2:客户端使用 VIP 地址作为目标 IP 发送数据包,目标 IP 即为负载均衡器和后端服务器的共享地址。

2. 负载均衡器(Director)接收请求

  • 步骤 3:LVS 负载均衡器接收到来自客户端的请求,查看数据包头部信息,尤其是目标 IP(VIP)。

  • 步骤 4:负载均衡器根据负载均衡算法(如轮询、加权轮询或最少连接等)选择一个后端服务器(RealServer)来处理请求。例如,选择 RealServer_1

3. 负载均衡器修改 MAC 地址并转发请求

  • 步骤 5:LVS 负载均衡器不会修改 IP 地址,它只会修改数据帧的 MAC 地址,将其修改为被选择的后端服务器的 MAC 地址。

  • 步骤 6:负载均衡器将数据帧发送到局域网中的目标服务器(例如 RealServer_1)。这时,数据包的目标地址已经是 RealServer_1 的 MAC 地址。

4. 后端服务器(RealServer_1)接收请求

  • 步骤 7RealServer_1 收到数据包后,解封装数据帧,并发现目标 IP 与服务器本身的 VIP 地址相匹配。

  • 步骤 8RealServer_1 处理这个请求,并生成响应数据包。

5. 后端服务器封装并发送响应

  • 步骤 9:这一步是 LVS-DR 的核心区别。RealServer_1 不通过负载均衡器返回响应,而是直接通过其 本地网卡 将响应数据包发送回客户端。

  • 步骤 10:RealServer_1 使用 自身的网卡本地网络 直接与客户端通信,源 IP 仍然是 VIP 地址(这是为了确保客户端无法区分请求来自哪个后端服务器)。

6. 客户端接收响应

  • 步骤 11:客户端收到来自 VIP 的响应数据,认为它是由 VIP 返回的,实际上响应是由选择的后端服务器(如 RealServer_1)提供的。

LVS-DR 中的 ARP 问题

在 LVS-DR 群集模式中,负载均衡器和后端服务器都使用相同的 VIP 地址,这会导致 ARP(地址解析协议)冲突和通信问题。为了避免这些问题,需要进行如下处理:

  1. 配置节点服务器不响应 ARP 请求:使用虚拟接口 lo:0 来绑定 VIP 地址,并修改内核参数 arp_ignore=1 来禁止节点响应 ARP 请求。

  2. ARP 表更新问题:当 RealServer 发送响应报文时,路由器需要更新 ARP 表项,但默认情况下,它会将 VIP 对应的 MAC 地址更新为服务器的 MAC 地址,从而导致 VIP 的失效。为了解决这一问题,需要修改内核参数 arp_announce=2,确保 ARP 请求使用发送接口的 IP 地址。

修改 /etc/sysctl.conf 文件中的相关配置:

net.ipv4.conf.lo.arp_ignore = 1 
net.ipv4.conf.lo.arp_announce = 2 
net.ipv4.conf.all.arp_ignore = 1 
net.ipv4.conf.all.arp_announce = 2

构建 LVS-DR 群集的步骤

需求描述
  1. 环境配置

    • 一台 LVS 调度器,四台节点服务器。

    • 每台节点服务器配置双网卡:ens33 连接至外网,ens37 连接至内网。

    • NFS 共享存储:将 /var/www/html 目录发布为 NFS 可写共享,供所有节点服务器访问。

  2. LVS 调度器配置

    • 配置 ens33ens37 网络接口 IP 地址,并为 ens33:0 配置 VIP 地址。

    • 安装 ipvsadm 软件包,使用轮询(RR)算法为虚拟服务器创建负载均衡规则。

  3. 节点服务器配置

    • 在每台节点服务器上绑定 VIP 地址,并配置虚拟接口 lo:0 来承载 VIP。

    • 设置内核参数,禁止节点服务器响应 VIP 的 ARP 请求。

  4. 共享存储配置

    • 在内网中配置 NFS 共享存储,为 /var/www/html 提供可写共享。

    • 在每台节点服务器上挂载 NFS 共享目录,并确保 Web 服务器(如 Apache)能够读取和写入共享目录。

  5. 测试网站配置

    • 在四台节点服务器上安装并启用 HTTP 服务器,创建不同的测试网页以区分各节点服务器。

集群访问测试

通过访问 http://192.168.10.72/ 来确认 LVS 群集的工作状态。不同的客户端访问将显示不同的页面内容,表明流量成功分配到不同的节点。

本章总结

  1. LVS-DR 工作原理:理解 LVS-DR 的数据包流向和负载均衡机制。

  2. ARP 问题解决方案:解决 LVS-DR 中可能出现的 ARP 响应和 MAC 地址冲突问题。

  3. LVS 配置步骤:学习 LVS 调度器和节点服务器的配置方法,确保群集能够稳定运行。

  4. 群集访问测试:通过实际测试,验证 LVS-DR 群集的负载均衡和高可用性。


文章转载自:

http://dto5xv8R.mqwdh.cn
http://A5xDjk6I.mqwdh.cn
http://0WY7kGgA.mqwdh.cn
http://9zopkIb2.mqwdh.cn
http://bEoGOfw3.mqwdh.cn
http://pF3Gyulr.mqwdh.cn
http://cQ1KlPye.mqwdh.cn
http://nVGhLPnr.mqwdh.cn
http://ZrSmvsiZ.mqwdh.cn
http://fBaPnzcN.mqwdh.cn
http://bmXFXXX5.mqwdh.cn
http://C4MTRDAj.mqwdh.cn
http://Psm1Zz2H.mqwdh.cn
http://6BmK2zDY.mqwdh.cn
http://WDgd6WPN.mqwdh.cn
http://E3oARKTa.mqwdh.cn
http://mkjhJiIk.mqwdh.cn
http://yPNfH3kM.mqwdh.cn
http://WwJAdcag.mqwdh.cn
http://YpwuWMvs.mqwdh.cn
http://LpbYIyFW.mqwdh.cn
http://0bUc1dFJ.mqwdh.cn
http://kIsWE1Ok.mqwdh.cn
http://MjMREBPr.mqwdh.cn
http://5Ycf9xJ9.mqwdh.cn
http://Vt3FLeRj.mqwdh.cn
http://sftEOjRZ.mqwdh.cn
http://jCWEGmPa.mqwdh.cn
http://7RtCsnFw.mqwdh.cn
http://0oNcKseF.mqwdh.cn
http://www.dtcms.com/a/382193.html

相关文章:

  • 事务学习总结
  • IP协议相关特性
  • 贪心算法应用:高频订单流平衡问题详解
  • Win系统下配置PCL库第四步之LASlib文件配置(超详细)
  • 软考-局域网基础考点总结
  • Asio C++ Library是用来做什么的
  • 深度学习在智能车辆故障诊断中的应用
  • DeepFace 全面使用教程
  • ISP之DHCPv6-PD(前缀代理)为用户下发前缀
  • LINUX913 shell:set ip [lindex $argv 0],\r,send_user,spawn ssh root@ip “cat “
  • GEO 优化专家孟庆涛以 AI 技术建体系,赋能多行业智能化转型
  • 没有统一的知识管理平台会带来哪些问题
  • 系统编程day10-同步与互斥
  • Spring Boot 整合 Mockito 进行单元测试
  • 【C++】C++11介绍(Ⅱ)
  • HTML新属性
  • 分库分表是否真的要退出历史舞台?
  • [BJ2012.X4] 统计车牌
  • 【Rust】一个从Modelscope下载模型CLI工具
  • 第三方服务商接入美团核销接口:零侵入对接的关键要点
  • 电压监控器原理
  • python面向对象的三大特性
  • 从 MySQL 到 TiDB:分布式数据库的无缝迁移与实战指南
  • Ansible的jinja2 模板、Roles角色详解
  • Linux内核的PER_CPU机制
  • 树莓派组建nas,云服务器及家庭影院
  • 二叉树hot100-中等
  • MX 模拟赛二总结
  • windows rocketmq 启动时报 java.lang.NullPointerException
  • 文本处理三剑客——grep、sed、awk