部署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进行共享。

相关推荐
Komorebi.py22 分钟前
【Linux】-学习笔记05
linux·笔记·学习
Mr_Xuhhh28 分钟前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
中云DDoS CC防护蔡蔡1 小时前
微信小程序被攻击怎么选择高防产品
服务器·网络安全·微信小程序·小程序·ddos
HPC_fac130520678162 小时前
以科学计算为切入点:剖析英伟达服务器过热难题
服务器·人工智能·深度学习·机器学习·计算机视觉·数据挖掘·gpu算力
yaoxin5211233 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin3 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
sinat_384241098 小时前
使用 npm 安装 Electron 作为开发依赖
服务器
朝九晚五ฺ8 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream8 小时前
Linux的桌面
linux
xiaozhiwise8 小时前
Makefile 之 自动化变量
linux