部署LVS-DR群集

一,LVS-DR集群

LVS (Linux Virtual Server) 是一个基于 Linux 内核的负载均衡解决方案,它提供了一个高性能、高可用性的服务器集群系统。LVS 支持多种负载均衡算法和工作模式,其中 DR(Direct Routing)模式是一种常用的模式。

1:LVS-DR工作原理

  • 调度器(Director):负责接收客户端请求,并根据负载均衡算法选择后端的真实服务器(Real Server)。
  • 真实服务器:处理请求并响应客户端。
  • 在 DR 模式中,所有节点(包括调度器和真实服务器)都位于同一个物理网络上,并且它们共享相同的 IP 地址(即虚拟服务 IP, VIP)。
  • 客户端将请求发送到 VIP,调度器通过修改请求帧的目的 MAC 地址,将其直接路由到选定的真实服务器。
  • 真实服务器处理请求后,直接将响应发回给客户端,而无需经过调度器,这样可以减少网络传输开销。

2:数据包流向分析

在 LVS-DR 模式下,数据包的流向如下:

  1. 客户端向虚拟 IP 发送请求:客户端发送的数据包的目标 IP 地址是 VIP。
  2. 调度器修改目的 MAC 地址:调度器接收到数据包后,根据负载均衡策略选择一个真实服务器,并将数据包的目的 MAC 地址修改为该真实服务器的 MAC 地址。
  3. 数据包被转发到真实服务器:数据包通过二层交换机被直接路由到选定的真实服务器。
  4. 真实服务器处理请求并响应:真实服务器处理请求后,使用自己的 IP 地址直接响应客户端,此时响应包的目的 IP 地址是客户端的 IP 地址。
  5. 客户端接收响应:客户端直接从真实服务器接收响应。

3:LVS-DR 模式特点

LVS-DR 模式具有以下特点:

  • 高效性:由于真实服务器可以直接响应客户端,避免了响应包通过调度器的二次转发,从而减少了网络延迟和调度器的负担。
  • 简单性:DR 模式下的配置相对简单,只需要在调度器上配置 IP 转发规则即可。
  • 扩展性:可以方便地添加或删除真实服务器来调整集群的负载能力。
  • 高可用性:支持故障检测机制,当某个真实服务器出现故障时,调度器会自动停止向其发送请求。
  • 无NAT瓶颈:与 LVS-NAT 模式不同,DR 模式不需要进行网络地址转换,因此不会受到 NAT 性能瓶颈的影响。
  • IP 地址共享:所有节点(调度器和真实服务器)都需要配置相同的 IP 地址(VIP),这要求它们必须位于同一广播域内。

二,案例:直接路由模式(LVS-DR)

1:准备案例环境

在DR模式的群集中,LVS负载调度器作为群集的访问入口,但不作为网关使用;服

务器池中的所有节点都各自接入Internet,发送给客户机的Web响应数据包不需要经过

LVS负载调度器,如图所示。

这种方式入站、出站访问数据被分别处理,因此LVS负载调度器和所有的节点服务器

都需要配置VIP地址,以便响应对整个群集的访问。考虑到数据存储的安全性,共享存储

设备会放在内部的专用网络中。

实验环境

  • 负载调度器 (Director):
    • IP地址: 192.168.10.172
    • 网卡: ens33:0
  • Web节点服务器 :
    • 第一台: 192.168.10.102
    • 第二台: 192.168.10.103
    • VIP地址: 192.168.10.172 (通过 loopback 接口 lo:0 配置)
  • 客户端 :
    • 用于访问负载均衡后的Web服务。

配置负载调度器

1. 配置虚拟IP地址(VIP)
  • 复制ifcfg-ens33文件为ifcfg-ens33:0
  • 配置ifcfg-ens33:0文件以添加VIP地址192.168.10.172。
  • 重启网络服务使更改生效。
2. 调整内核参数
  • 关闭Linux内核的重定向功能,防止对VIP的报文进行重定向。
  • 使用sysctl -p命令使更改立即生效。
3. 配置负载分配策略
  • 安装ipvsadm工具。
  • 设置负载均衡算法为轮询(Round Robin)。
  • 添加真实服务器(Real Servers)192.168.10.102和192.168.10.103到负载均衡池中,权重均为1。
  • 保存配置以便系统启动时自动加载。

配置Web节点服务器

1. 配置虚拟IP地址(VIP)
  • 复制ifcfg-lo文件为ifcfg-lo:0
  • 配置ifcfg-lo:0文件以添加VIP地址192.168.10.172,并设置子网掩码为255.255.255.255。
  • 重启网络服务使更改生效。
  • 添加静态路由以确保VIP可以通过loopback接口发送和接收数据。
2. 调整内核参数
  • /etc/sysctl.conf中添加ARP相关设置,以避免IP地址冲突问题。
  • 使用sysctl -p命令使更改立即生效。
3. 安装HTTP服务
  • 安装httpd服务。
  • 创建测试网页文件。
  • 如果使用共享存储(例如NFS),则挂载共享目录到/var/www/html
  • 启动HTTP服务。

测试

  • 在客户端访问VIP地址http://192.168.10.172,通过频繁刷新页面来测试负载均衡效果。
  • 可以使用脚本进行自动化测试。

查看LVS策略

  • 在负载调度器上使用ipvsadm -ln命令查看当前的负载均衡策略。

注意事项

为了验证负载均衡过程,在实验环境中两台Web服务器的网站内容可以不同,这样就不必使用NFS进行共享。

相关推荐
蜕变的小白2 分钟前
Linux系统编程:揭秘网络通信 IP与端口号的奥秘
linux·网络·网络协议·tcp/ip
爱倒腾的老唐13 分钟前
02、STM32——嵌入式芯片
linux·stm32·嵌入式硬件
AryShaw37 分钟前
macOS 上搭建 RK3568 交叉编译环境
linux·macos
芒果披萨1 小时前
Linux文件类基础命令行1
linux·运维·服务器
学嵌入式的小杨同学1 小时前
STM32 进阶封神之路(八):外部中断 EXTI 实战 —— 按键检测从轮询到中断(库函数 + 寄存器双版本)
linux·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
duoduo_sing1 小时前
多服务器数据集中自动化备份方案
服务器·自动化·异地备份·自动备份·多服务备份·智能备份
杨云龙UP3 小时前
ODA服务器RAC节点2/u01分区在线扩容操作记录及后续处理流程(Linux LVM + ext4 文件系统在线扩容操作手册)_20260307
linux·运维·服务器·数据库·ubuntu·centos
欲买桂花同载酒58210 小时前
程序人生-Hello’s P2P
运维·服务器·数据库
八月的雨季 最後的冰吻10 小时前
FFmepg-- 38-Jitter Buffer固定值c程序分析
服务器·音视频
jyfool10 小时前
Ubuntu 远程桌面配置踩坑实录:从 TightVNC 到 x11vnc 的折腾之旅
linux·运维·ubuntu