文章目录
- 前言
- 一、LVS-DR 模式详解
- 1.1 数据包流向分析
- 1.2 DR 模式的特点
- 二、LVS-DR 集群部署实战
- 2.1 环境准备
- 2.2 配置负载调度器(Director Server)
- 2.3 配置节点服务器(Real Server)
- 2.4 测试验证
- 三、前期回顾
- 3.1 LVS 三种工作模式及其区别?
- 3.2 LVS 调度算法
- 总结
好的,我已经为您将提供的文档整理成了一篇结构清晰、层次分明的博客文章,并按照要求添加了前言和总结。
前言
负载均衡是构建高可用服务的核心技术之一,Linux Virtual Server (LVS) 的 DR(Direct Routing)模式以其高性能和低延迟成为热门选择。本文将深入解析 LVS-DR 的工作原理,并通过实战演示如何快速搭建一个高效的负载均衡集群,助您轻松掌握这一关键技能。
一、LVS-DR 模式详解
1.1 数据包流向分析
LVS-DR 模式的工作流程可以清晰地分为以下几个步骤,理解此流程是掌握 DR 模式的关键:
- 客户端发送请求:客户端(CIP)向负载均衡器(Director Server)的虚拟 IP(VIP)发送请求报文。报文源地址为 CIP,目标地址为 VIP。
- 负载均衡器接收并转发:请求报文到达 Director Server 的内核空间。IPVS(IP 虚拟服务器)模块判断该请求的服务是否为已定义的集群服务。如果是,IPVS 会重新封装数据包的 MAC 头,将源 MAC 地址改为 Director Server 的 MAC 地址,将目标 MAC 地址改为选定的真实服务器(Real Server, RIP)的 MAC 地址。IP 头保持不变(源 IP 为 CIP,目标 IP 为 VIP)。
- 真实服务器处理请求:由于 MAC 地址匹配,Real Server 会接收该数据包。解包后,应用程序(如 Web 服务器)发现目标 IP(VIP)配置在本机的
lo
接口上,于是处理这个请求。 - 真实服务器直接响应客户端:处理完成后,Real Server 会构建响应报文。该报文不经过 Director Server,而是直接通过其默认网关发送给客户端。响应报文的源 IP 地址为 VIP,目标 IP 地址为 CIP。
1.2 DR 模式的特点
基于其工作流程,DR 模式具有以下显著特点:
- 同一网络:Director Server 和所有 Real Server 必须位于同一个物理网络(同一广播域)中,以便能通过 MAC 地址进行二层通信。
- IP 地址灵活:Real Server 可以使用私有地址,也可以使用公网地址。
- 非网关角色:Director Server 仅作为流量的入口,不作为 Real Server 的网关,极大地减轻了其负担。
- 响应直接返回:响应数据包由 Real Server 直接返回给客户端,性能极高。这是 DR 模式高吞吐量的主要原因。
- 网关指向:Real Server 的网关必须指向能够连接互联网的路由器,绝不能指向 Director Server。
- 本地回环接口配置 VIP:每台 Real Server 都需要在
lo
接口上配置 VIP 地址,以便处理目标为 VIP 的请求。
二、LVS-DR 集群部署实战
以下是一个完整的 LVS-DR 模式部署流程。
2.1 环境准备
角色 | IP 地址 | 主机名 |
---|---|---|
客户端 | 192.168.10.200 | client |
Director Server | 192.168.10.23 (DIP) | lvs-dr |
192.168.10.180 (VIP) | ||
Real Server 1 | 192.168.10.16 (RIP) | web01 |
Real Server 2 | 192.168.10.17 (RIP) | web02 |
NFS 共享存储服务器 | 192.168.10.19 | nfs |
2.2 配置负载调度器(Director Server)
-
关闭防火墙与 SELinux
systemctl stop firewalld.service setenforce 0
-
加载 IP_VS 模块并安装管理工具
modprobe ip_vs cat /proc/net/ip_vs # 确认模块是否加载 yum -y install ipvsadm
-
配置虚拟 IP 地址(VIP)
编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33:0
:DEVICE=ens33:0 ONBOOT=yes IPADDR=192.168.10.180 NETMASK=255.255.255.255
启用并查看 VIP:
ifup ens33:0 ifconfig ens33:0
-
调整内核参数(
/etc/sysctl.conf
)net.ipv4.ip_forward = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens33.send_redirects = 0
使配置生效:
sysctl -p
-
配置负载分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm # 初始化保存文件 systemctl start ipvsadmipvsadm -C # 清空现有规则 ipvsadm -A -t 192.168.10.180:80 -s rr # 添加虚拟服务,调度算法为轮询(rr) ipvsadm -a -t 192.168.10.180:80 -r 192.168.10.16:80 -g # 添加 Real Server,-g 代表 DR 模式 ipvsadm -a -t 192.168.10.180:80 -r 192.168.10.17:80 -gipvsadm -ln # 查看配置,确认模式为 Route (DR)
2.3 配置节点服务器(Real Server)
以下操作需要在 web01 和 web02 上分别执行。
-
配置虚拟 IP 地址(VIP)到
lo:0
编辑文件/etc/sysconfig/network-scripts/ifcfg-lo:0
:DEVICE=lo:0 ONBOOT=yes IPADDR=192.168.10.180 NETMASK=255.255.255.255
启用并添加路由:
ifup lo:0 ifconfig lo:0 route add -host 192.168.10.180 dev lo:0
为了重启后依然生效,将路由命令加入
/etc/rc.local
:echo '/sbin/route add -host 192.168.10.180 dev lo:0' >> /etc/rc.local chmod +x /etc/rc.d/rc.local
-
调整内核 ARP 参数
编辑/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
使配置生效:
sysctl -p
-
安装服务并挂载共享存储
yum -y install nfs-utils rpcbind httpd systemctl start httpd systemctl start rpcbind
- 在 web01 上:
mount.nfs 192.168.10.19:/opt/kgc /var/www/html echo 'this is kgc web!' > /var/www/html/index.html
- 在 web02 上:
mount.nfs 192.168.10.19:/opt/benet /var/www/html echo 'this is benet web!' > /var/www/html/index.html
- 在 web01 上:
2.4 测试验证
在客户端(192.168.10.200)打开浏览器,多次访问 http://192.168.10.180/
。页面内容应在 this is kgc web!
和 this is benet web!
之间交替显示,这表明 LVS 负载均衡集群已经成功运行。
三、前期回顾
3.1 LVS 三种工作模式及其区别?
- NAT:通过网络地址转换实现。请求和响应都经过 Director,Director 易成为瓶颈。Real Server 可以是任何操作系统。
- DR:使用直接路由技术。只有请求经过 Director,响应直接由 Real Server 返回,性能极高。要求 Director 和 Real Server 在同一个局域网。
- TUN:通过 IP 隧道技术实现。能跨机房部署,Real Server 可以不在同一个局域网。Real Server 需要支持隧道协议。
3.2 LVS 调度算法
- 固定调度算法:轮询(rr)、加权轮询(wrr)、目标地址哈希(dh)、源地址哈希(sh)。
- 动态调度算法:最少连接(lc)、加权最少连接(wlc)、基于地址的最少连接(lblc)。
总结
LVS-DR 模式通过智能路由实现请求的高效分发,大幅提升服务响应能力。尽管部署时需要精细调整网络参数,但其卓越的性能表现值得投入。本文从理论到实践完整呈现了 LVS-DR 的部署流程,掌握这一技术后,您将能够为企业构建更强大、更可靠的网络服务体系。