1. LVS(Linux Virtual Server)
LVS 全称 Linux Virtual Server,是 Linux 内核层实现的高性能、高可用的负载均衡集群技术,由章文嵩博士开发,目前是 Linux 内核的标准模块之一。它的核心作用是将前端的请求流量分发到后端多台真实服务器(Real Server)上,从而提升服务的并发处理能力和可用性。
2. LVS 运行原理
2.1 LVS 集群体系结构

LVS(Linux Virtual Server)负载均衡技术,涵盖其架构、三种工作模式(NAT、DR、TUN)的原理与区别、常用调度算法(静态与动态)以及持久化配置。文章通过实验步骤演示了 NAT 模式和 DR 模式的搭建过程,重点讲解了如何通过 ipvsadm 配置调度规则、调整权重及设置 ARP 抑制以防止冲突。内容旨在帮助读者理解 LVS 内核机制并掌握实际部署方法。
LVS 全称 Linux Virtual Server,是 Linux 内核层实现的高性能、高可用的负载均衡集群技术,由章文嵩博士开发,目前是 Linux 内核的标准模块之一。它的核心作用是将前端的请求流量分发到后端多台真实服务器(Real Server)上,从而提升服务的并发处理能力和可用性。

工作原理:VS 根据请求报文的目标 IP 和目标协议及端口将其调度转发至某 RS,根据调度算法来挑选 RS。
访问流程:CIP <--> VIP == DIP <--> RIP
lvs-nat:

客户请求到达 VIP 后进入 PREROUTING,在没有 ipvs 的时候应该进入本机 INPUT,当 IPVS 存在后访问请求在通过 PREROUTING 后被 ipvs 拦截并作 nat 转发。
因为 ipvs 的作用点是在 PREROUTING 和 INPUT 链之间,所以如果在 prerouting 中设定规则会干扰 ipvs 的工作。所以在做 lvs 时要把 iptables 的防火墙策略全清理掉。
DR (Direct Routing): 直接路由,LVS 默认模式,应用最广泛。通过为请求报文重新封装一个 MAC 首部进行转发,源 MAC 是 DIP 所在的接口的 MAC,目标 MAC 是某挑选出的 RS 的 RIP 所在接口的 MAC 地址;源 IP/PORT,以及目标 IP/PORT 均保持不变。

在 DR 模式中,RS 接收到访问请求后不需要回传给 VS 调度器,直接把回传数据发送给 client,所以 RS 和 VS 上都要有 VIP。

arptables -A IN -d $VIP -j DROP
arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP
/proc/sys/net/ipv4/conf/all/arp_ignore
/proc/sys/net/ipv4/conf/all/arp_announce转发方式:不修改请求报文的 IP 首部(源 IP 为 CIP,目标 IP 为 VIP),而在原 IP 报文之外再封装一个 IP 首部(源 IP 是 DIP,目标 IP 是 RIP),将报文发往挑选出的目标 RS;RS 直接响应给客户端(源 IP 是 VIP,目标 IP 是 CIP)。


[root@vsnode ~]# vmset.sh eth0 172.25.254.100 vsnode
[root@vsnode ~]# vmset.sh eth1 192.168.0.100 vsnode noroute






更改权重

由此可见 lvs 的 nat 模式已经实现。
简单的说:让同一个客户端 IP,在一段时间内,始终转发到同一台后端真实服务器(RS)。
开启持久化 (-p 参数): LVS 会记录一个小本本(内存中的持久化模板)。一旦记录了'IP A -> Server1',那么在设定的倒计时内,IP A 发来的所有请求,无视调度算法,统统扔给 Server1。
常见配置形式

-p 3600 就是 开启持久化,超时 3600 秒。
执行查看命令,你会发现多了一个 persistent 标志:




设置 IP

数据转发策略

配置 IP

配置 eth0 网卡

配置 lo 接口

激活网卡等

配置 IP

eth0 网卡

激活

设置 lo 接口并设置 lo 网卡


目的:既然 RS 上也有 VIP,为了不让局域网内的其他机器(包括路由器)知道 RS 上有这个 IP。

arp_ignore=1: 别人问 VIP 是谁,我坚决不回答(除非问的是我的物理 IP)。arp_announce=2: 我发包出去时,坚决不用 VIP 作为源地址。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online