一,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 模式下,数据包的流向如下:
- 客户端向虚拟 IP 发送请求:客户端发送的数据包的目标 IP 地址是 VIP。
- 调度器修改目的 MAC 地址:调度器接收到数据包后,根据负载均衡策略选择一个真实服务器,并将数据包的目的 MAC 地址修改为该真实服务器的 MAC 地址。
- 数据包被转发到真实服务器:数据包通过二层交换机被直接路由到选定的真实服务器。
- 真实服务器处理请求并响应:真实服务器处理请求后,使用自己的 IP 地址直接响应客户端,此时响应包的目的 IP 地址是客户端的 IP 地址。
- 客户端接收响应:客户端直接从真实服务器接收响应。
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进行共享。