部署 LVS-DR 群集

发布于:2025-09-15 ⋅ 阅读:(27) ⋅ 点赞:(0)

前言

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 群集的负载均衡和高可用性。