LVS集群

集群

集群分类

  • 按分发器类型分 – LVS集群 – Nginx集群 – haproxy集群 – F5集群

  • 按业务类型分 – web集群 – 数据库集群 – 缓存集群 – …

  • 按功能分类:

    • 负载均衡集群 – LBC: 分担服务的总体压力

    • 高可用集群 – HAC: 尽可能的保障服务状态的可用性

    • 高性能运算集群 – HPC: 提供单台服务器提供不了的计算能力

LVS

LVS是Linux Virtual Server 的简称,也就是 Linux 虚拟服务器。

实现4层负载均衡,性能强大,适合日常处理大并发的大型网络架构使用;

所谓四层负载均衡 ,也就是主要通过报文中的目标地址和端口,实现负载均衡;

七层负载均衡 ,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容。

LVS和Nginx和区别

LVS优缺点

LVS的优点

  • 抗负载能力强、是工作在传输层上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的,对内存和 cpu 资源消耗比较低。

  • 配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率。

  • 工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方案,如 LVS+Keepalived。

  • 无流量,LVS 只分发请求,而流量并不从它本身出去,这点保证了均衡器 IO 的性能不会受到大流量的影响。

  • 应用范围比较广,因为 LVS 工作在传输层,所以它几乎可以对所有应用做负载均衡,包括 http、数据库、在线聊天室等等。

LVS的缺点

  • 软件本身不支持正则表达式处理,不能做动静分离;而现在许多网站在这方面都有较强的需求,这个是 Nginx、HAProxy+Keepalived 的优势所在。

  • 如果是网站应用比较庞大的话,LVS/DR+Keepalived 实施起来就比较复杂了,相对而言,Nginx/HAProxy+Keepalived就简单多了。

Nginx 负载均衡

Nginx 负载均衡主要是对七层网络通信模型中的第七层应用层上的 http、https 进行支持。

Nginx 是以反向代理的方式进行负载均衡的。反向代理(Reverse Proxy)方式是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

Nginx 实现负载均衡的分配策略有很多,Nginx 的 upstream 目前支持以下几种方式:

  • 轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

  • weight:指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。

  • ip_hash:每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。

  • fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。

  • url_hash(第三方):按访问 url 的 hash 结果来分配请求,使每个 url 定向到同一个后端服务器,后端服务器为缓存时比较有效。

Nginx 的优点

  • 跨平台:Nginx 可以在大多数 Unix like OS编译运行,而且也有 Windows 的移植版本

  • 配置异常简单:非常容易上手。配置风格跟程序开发一样,神一般的配置

  • 非阻塞、高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数

  • 事件驱动:通信机制采用 epoll 模型,支持更大的并发连接

  • Master/Worker 结构:一个 master 进程,生成一个或多个 worker 进程

  • 内存消耗小:处理大并发的请求内存消耗非常小。在3万并发连接下,开启的10个 Nginx 进程才消耗150M 内存(15M*10=150M)

  • 内置的健康检查功能:如果 Nginx 代理的后端的某台 Web 服务器宕机了,不会影响前端访问

  • 节省带宽:支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头

  • 稳定性高:用于反向代理,宕机的概率微乎其微

Nginx 的缺点

  • Nginx 仅能支 持http、https 和 Email 协议,这样就在适用范围上面小些,这个是它的缺点。

  • 对后端服务器的健康检查,只支持通过端口来检测,不支持通过 ur l来检测。

  • 不支持 Session 的直接保持,但能通过 ip_hash 来解决。

LVS四种模式

  • NAT模式:

    • 使用IP地址转换,将源IP和目标IP进行转换,实现负载均衡;

    • 请求(入)和响应(出)都会经过负载均衡器;

    • 负载均衡器会成为一个流量的瓶颈;建议10台以内的服务器使用;

  • TUN模式:隧道模式,报文封装,实现负载均衡;

    • 请求会经过负载均衡器,响应直接返回给客户端;

    • 但是需要每台后端真实服务器都要有独立的公网IP;

    • 适合跨机房,跨网段的负载均衡;

  • DR模式(最常用):直接路由模式,使用MAC替换,实现负载均衡;

    • 可以实现100+服务器的负载均衡;

    • 请求会经过负载均衡器,响应直接返回给客户端;

    • 不需要独立IP

  • FULLNAT模式:多层地址转换,超大型架构的负载均衡;(基于NAT实现,LVS 本身不支持,需要额外对内核打补丁后才能使用)

    • 通过双重地址转换实现负载均衡,客户端和后端服务器双向请求都经过负载均衡器;

    • 提供了跨网段负载均衡功能。

LVS常用缩写解释

名称含义
LB(Load Balancer)负载均衡
HA(High Available)高可用
Cluster集群
DS(Director Server)前端负载均衡节点服务器
RS(Real SERVER)后端真实服务器
CIP(Client IP)客户端IP地址
VIP(Virtual IP)负载均衡对外提供访问的IP地址,一般负载均衡IP都会通过Viirtual IP实现高可用
RIP(RealServer IP)负载均衡后端的真实服务器IP地址
DIP(Director IP)主要用于和内部主机通讯的 IP 地址

LVS负载均衡集群-ipvsadm

# 安装ipvsadm工作
yum install ipvsadm -y或者
apt install ipvsadm -y
# 查看是否在内核中
lsmod |grep ip_vs 
# 加载ip_vs内核模块,提供负载均衡的功能,如果上面的命令没有反应可以使用
modprobe手动添加
modprobe ip_vs
# 如果编译lvs,需要使用内核,先查看内核版本
uname -r
# 会显示以下版本3.10.0-1160.71.1.el7.x86_64
# 使用 yum 包管理器安装内核开发包
yum install kernel-devel -y
# 创建软链接,将当前内核源码目录链接到/usr/src/linux
ln -s /usr/src/kernels/3.10.0-1160.114.2.el7.x86_64 /usr/src/linux
​
ls -l /usr/src/
总用量 0
drwxr-xr-x. 2 root root   6 4月  11 2018 debug
drwxr-xr-x. 5 root root 113 4月   2 08:16 kernels
lrwxrwxrwx  1 root root  45 4月   4 18:12 linux ->  /usr/src/kernels/3.10.0-1160.71.1.el7.x86_64
安装完成之后会生成一个同名的命令工具,我们需要使用该命令来配置LVS和算法
​
# 用法
ipvsadm   选项  服务器地址   -s  算法
ipvsadm   选项  服务器地址   -r  真是服务器地址   [工作模式]  [权重]
​
# 选项
-A      添加一个虚拟服务器
-E      编辑一个虚拟服务器
-D      删除一个虚拟服务器
-C      清空虚拟服务器列表
-R      从标准输入中还原虚拟服务器规则
-S      将虚拟服务器规则保存至标准输出
-a      添加一个真实服务器
-e      编辑一个真实服务器
-d      删除一个真实服务器
-l/L    查看分发列表
-t      使用tcp协议
-u      使用udp协议
-s      指定算法
-r      设置真实服务器的IP地址和端口信息
-g      DR模式
-i      tun模式
-m      nat模式
-w      设置真实服务器的权重
-c      查看连接状态,需要配合L使用
-n      以数字形式输出
​
# 比如,添加一个虚拟服务器,算法为rr,所有使用tcp协议访问192.168.221.10:80
的请求,最终都被NAT模式转发给了192.168.221.20和192.168.221.30的80端口
ipvsadm -A -t 192.168.221.10:80 -s rr
ipvsadm -a -t 192.168.221.10:80 -r 192.168.221.20:80 -m
ipvsadm -a -t 192.168.221.10:80 -r 192.168.221.30:80 -m
# 查看规则
ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost.localdomain:http rr
  -> 192.168.221.20:http          Masq    1      0          0     
  -> 192.168.221.30:http          Masq    1      0          0    
ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.221.10:80 rr
  -> 192.168.221.20:80            Masq    1      0          0     
  -> 192.168.221.30:80            Masq    1      0          0     
# 查看调度状态
[root@zuolaoshi ~]# ipvsadm -lnc
IPVS connection entries
pro expire state     source         virtual         destination

NAT模式

客户端请求(CIP、VIP)-> 负载均衡器(VIP、RIP)-> 真实服务器(RIP、VIP)-> 负载均衡器(VIP、CIP)-> 客户端

负载均衡器使用NAT模式需要两张网卡:

  • A网卡让客户端访问,B网内网访问;

  • LVS实现地址转换;

### 配置一个LVS NAT的web集群(需要三台机器)

# 配置两个网卡(在192.168.221.10上配置)
* 192.168.221.10   NAT
* 192.168.1.128    仅主机,且为内部网关

# 真实服务器(两个)
192.168.221.20
192.168.221.30

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 临时关闭SELinux
setenforce 0
# 永久关闭SELinux,编辑配置文件
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 挂载光盘
mount /dev/cdrom /media
​
## 配置LVS(192.168.221.10)
# 安装ipvsadm软件包
yum install ipvsadm -y
# 开启ip转发(NAT模式必需)
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# 生效配置
sysctl -p  
# 如果报错,添加ip_conntrack模块
modprobe ip_conntrack
# 配置第二张网卡(添加一个仅主机的网络)
ens33=192.168.221.10
ens36=192.168.1.128
其中网络配置文件可以修改成:
vim /etc/sysconfig/network-scripts/ifcfg-ens36
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=no       # 通常第二块网卡不作为默认路由,设为no
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36        # 改为第二块网卡名称
DEVICE=ens36      # 设备名,与文件名一致
ONBOOT=yes
IPADDR=192.168.1.128   # 第二块网卡IP
NETMASK=255.255.255.0
#GATEWAY=192.168.1.2   # 若该网段需要网关,取消注释并填写(如仅主机模式网关)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# 两台真实服务器也需要同时把网络从NAT模式修改成仅主机模式
192.168.221.20 ————> 192.168.1.20
192.168.221.30 ————> 192.168.1.30
网关直接改成192.168.1.128,原本的注释掉
#或者可以直接写:
[root@RS1 ~]# route add default gw 192.168.1.128
[root@RS2 ~]# route add default gw 192.168.1.128
​
## 配置LVS NAT规则
# 如果需要清空之前的请输入
ipvsadm -C
# 设置入口ip地址:VIP(在192.168.221.10)
ipvsadm -A -t 192.168.221.10:80 -s rr
ipvsadm -a -t 192.168.221.10:80 -r 192.168.1.20:80 -m
ipvsadm -a -t 192.168.221.10:80 -r 192.168.1.30:80 -m
# 保存规则(可以省略)
ipvsadm -S > /etc/sysconfig/ipvsadm
# 启动服务
systemctl start ipvsadm && systemctl enable ipvsadm  
​
# 在两个后端真实服务器上安装web服务,生成测试页面
RS1
yum install httpd -y
echo "<h1>RS1 - 192.168.221.20</h1>" > /var/www/html/index.html
systemctl start httpd
RS2重复同样步骤

客户端多次访问curl 192.168.221.10
浏览器访问192.168.221.10

TUN隧道模式

原理:客户端请求源地址(CIP,VIP)-> LVS负载均衡器(DIP【CIP,VIP】,RIP)-> 真实服务器(CIP,VIP)

虚拟机虚拟机ip
VIP——ens37192.168.221.128
LVS——ens33192.168.221.10
真实服务器1192.168.221.20
真实服务器2192.168.221.30

一、配置 LVS 负载均衡器(Director)

# 1.安装软件
yum install -y ipvsadm 
# 2. 加载IP隧道模块
modprobe ipip
echo "ipip" >> /etc/modules-load.d/ipvs.conf
# 3. 配置VIP
# 添加VIP
ip addr add 192.168.221.128/32 dev tunl0
# 启用tunl0接口
ip link set dev tunl0 up
# 配置路由(可选,视网络环境而定)
ip route add 192.168.221.128/32 dev tunl0
# 4.配置LVS规则
# 清除现有规则
ipvsadm -C
# 添加虚拟服务
ipvsadm -A -t 192.168.221.128:80 -s rr
# 添加后端真实服务器(TUN模式)
ipvsadm -a -t 192.168.221.128:80 -r 192.168.221.20:80 -i
ipvsadm -a -t 192.168.221.128:80 -r 192.168.221.30:80 -i
# 保存配置
ipvsadm -S > /etc/sysconfig/ipvsadm
# 5.配置系统参数
# 启用IP转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
# 禁用ICMP重定向
echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.default.send_redirects = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.ens33.send_redirects = 0" >> /etc/sysctl.conf
# 应用配置
sysctl -p
# 6.设置开机自启
systemctl enable ipvsadm
systemctl start ipvsadm

二、配置后端 Web 服务器(Real Server)

在所有 Web 服务器上执行以下操作

1、安装 Web 服务器

yum install -y httpd
systemctl enable httpd
systemctl start httpd
2、创建测试页面(区分不同服务器)

# 在192.168.221.20上
echo "<h1>Web Server 1 (192.168.221.20)</h1>" > /var/www/html/index.html
​
# 在192.168.221.30上
echo "<h1>Web Server 2 (192.168.221.30)</h1>" > /var/www/html/index.html
3、加载 IP 隧道模块

modprobe ipip
echo "ipip" >> /etc/modules-load.d/ipvs.conf
4、配置 VIP(注意:不设置 ARP 响应)

# 添加VIP到tunl0接口
ip addr add 192.168.221.128/32 dev tunl0
# 启用tunl0接口
ip link set dev tunl0 up
# 关闭tunl0的ARP响应
echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
配置系统参数

# 禁用反向路径过滤
echo "net.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.default.rp_filter = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.tunl0.rp_filter = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.ens33.rp_filter = 0" >> /etc/sysctl.conf
​
# 应用配置
sysctl -p

三、验证配置

在 LVS 服务器上查看 IPVS 配置

ipvsadm -Ln
从浏览器访问 VIP(192.168.221.128),多次刷新页面,应该能看到不同 Web 服务器
的内容,证明负载均衡生效。

# 使用curl测试
curl http://192.168.221.20
curl 192.168.221.30
# 如果遇到问题,可以查看系统日志排查:
tail -f /var/log/messages

四、注意事项

  1. TUN 模式要求所有服务器都支持 IP 隧道(IPIP)

  2. 确保防火墙规则允许相关流量通过(80 端口、IPIP 协议)

  3. 所有服务器必须能够相互通信

  4. 对于生产环境,建议添加监控和故障转移机制

  5. 可以根据需要调整 LVS 的调度算法(当前使用的是 rr - 轮询)

通过以上步骤,你应该已经成功在 CentOS 上部署了基于 LVS TUN 模式的 Web 集群。

LVS-DR模式

DR直接路由模式:不修改客户请求的源地址和目标地址,直接通过MAC将请求转发给RS(真实服务器),RS需要设置ARP抑制;

虚拟机虚拟机ip
VIP——ens37192.168.221.128
LVS——ens33192.168.221.10
真实服务器1192.168.221.20
真实服务器2192.168.221.30

我是直接在TUN基础上改的

# 在LVS负载均衡上(192.168.221.10)配置
ipvsadm -C
ipvsadm -A -t 192.168.221.128:80 -s rr
ipvsadm -a -t 192.168.221.128:80 -r 192.168.221.20:80 -g
ipvsadm -a -t 192.168.221.128:80 -r 192.168.221.30:80 -g
# 查看LVS规则,看看TUN是否变成了Route
ipvsadm -ln
​
# 真实服务器设置(192.168.221.20和192.168.22.30同样设置)
# 配置 VIP 到回环接口
ifconfig lo:0 192.168.221.128 netmask 255.255.255.255 up
# 设置内核参数以关闭 ARP 响应(临时设置)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
# 或者可以永久设置(临时设了的话这个就省略)
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
最后执行sysctl -p立即生效
# 然后浏览器测试两个真实服务器能不能正常提供页面
# 最后浏览器测试LVS能不能访问到真实服务器
浏览器输入192.168.221.128

HAProxy

一款性能强大的负载均衡软件,同时支持四层和七层负载均衡;

# 直接在Ubuntu(192.168.221.21)安装
apt install haproxy -y
vim /etc/haproxy/haproxy.cfg
+++++++++++++++++++++++++++++输入O在文本最后添加
# 定义前端和后端设置
frontend test
  bind 192.168.221.21:80
  stats uri /haproxy?stats
  default_backend web-servers
​
backend web-servers
   balance roundrobin   # 轮询算法
   server web1 192.168.221.20:80
   server web2 192.168.221.30:80
​
# stats auth 指令为登录用户指定用户名和密码,在浏览器访问的时候加上8080端口
即可输入用户名和密码
listen stats
  bind *:8080
  stats enable
  stats uri /
  stats refresh 5s
  stats realm Haproxy\ Statistics
  stats auth test:root123
+++++++++++++++++++++++++++++++++++++++++++
systemctl restart haproxy

最后弹出是这个界面就对了

HAProxy 支持两种代理模式 TCP(四层)和HTTP(七层),也是支持虚拟主机的。

HAProxy 的优点能够补充 Nginx 的一些缺点,比如支持 Session 的保持,Cookie 的引导;同时支持通过获取指定的 url 来检测后端服务器的状态。

HAProxy 跟 LVS 类似,本身就只是一款负载均衡软件;单纯从效率上来讲 HAProxy 会比 Nginx 有更出色的负载均衡速度,在并发处理上也是优于 Nginx 的。

HAProxy 支持 TCP 协议的负载均衡转发,可以对 MySQL 读进行负载均衡,对后端的 MySQL 节点进行检测和负载均衡,大家可以用 LVS+Keepalived 对 MySQL 主从做负载均衡。

HAProxy 负载均衡策略非常多:Round-robin(轮循)、Weight-round-robin(带权轮循)、source(原地址保持)、RI(请求URL)、rdp-cookie(根据cookie)。

Haproxy有8种负载均衡算法(balance)

分别如下:

1.balance roundrobin # 轮询,软负载均衡基本都具备这种算法

2.balance static-rr # 根据权重,建议使用

3.balance leastconn # 最少连接者先处理,建议使用

4.balance source # 根据请求源IP,建议使用

5.balance uri # 根据请求的URI

6.balance url_param,# 根据请求的URl参数'balance url_param' requires an URL parameter name

7.balance hdr(name) # 根据HTTP请求头来锁定每一次HTTP请求

8.balance rdp-cookie(name) # 根据据cookie(name)来锁定并哈希每一次TCP请求

LVS四种模式的区别

特性NAT 模式DR 模式TUN 模式FULLNAT 模式
核心原理修改目标IP地址修改目标MAC地址IP隧道封装双向修改IP地址(源和目标)
请求/响应路径都必须经过LVS请求经过LVS,响应直接从RS返回给用户请求经过LVS,响应直接从RS返回给用户都必须经过LVS
LVS压力大(处理所有出入流量)小(只处理入站请求)中(需要封装/解封装)最大(处理所有流量,且需额外转换)
Real Server配置网关必须指向LVS的DIP必须在同一个物理网络,配置VIP在lo口,且抑制ARP必须支持IP隧道,拥有公网IP无特殊要求,网关指向其原路由器即可
网络要求LVS和RS在同一个LANLVS和RS在同一个广播域(通常同一个LAN)LVS和RS可以跨机房、跨地域LVS和RS可以在任意网络环境
性能较低(有往返流量瓶颈)最高(响应不经LVS,无瓶颈)高(响应不经LVS,但隧道有开销)较低(同NAT,且有额外开销)
典型应用场景早期或小规模应用,RS数量不多最常用、性能要求高的生产环境异地容灾、全局负载均衡云环境或网络结构复杂,无法更改RS路由的场景

各模式工作流程简述与关键点

1. NAT 模式
  • 工作流程

客户端发送请求到 LVS 的 VIP。

LVS 收到请求,通过负载均衡算法选择一个 Real Server,将请求包的目标 IP 从 VIP 改为 RS 的 IP,然后转发。

RS 处理请求,准备返回响应。注意:因为RS的网关指向LVS,所以响应包会发回给LVS

LVS 收到 RS 的响应包,将源 IP 从 RS 的 IP 改回 VIP,然后返回给客户端。

  • 关键点:LVS 是进出流量的瓶颈。RS 必须和 LVS 在同一个 LAN,且网关要指向 LVS。

2. DR 模式 - 最常用
  • 工作流程

客户端发送请求到 LVS 的 VIP。

LVS 收到请求,通过负载均衡算法选择一个 Real Server。它不修改IP地址,而是修改目标MAC地址为选定RS的MAC地址,然后转发。

RS 的网卡上配置了VIP(通常是在lo回环接口上),它收到目标MAC是自己的、目标IP是VIP的包,会进行处理。

RS 处理完请求后,直接将响应包源IP设为VIP,目标IP设为客户端IP,通过本地路由发送出去,不再经过LVS

  • 关键点响应不经过LVS,性能极高。但要求所有 RS 和 LVS 必须在同一个广播域(二层可达),且 RS 需要特殊配置以隐藏 VIP,避免ARP冲突。

3. TUN 模式
  • 工作流程

客户端发送请求到 LVS 的 VIP。

LVS 收到请求,将原始IP包封装在一个新的IP包中(IP over IP),新的IP包的目标IP是远端的RS的公网IP,然后转发。

RS 收到封装包后,进行解封装,得到原始请求包(目标IP是VIP)。因为RS的lo口也配置了VIP,所以它会处理这个请求。

RS 处理完请求后,直接将响应包返回给客户端。

  • 关键点:解决了 DR 模式的跨网络限制,适合异地容灾。但 RS 必须支持 IP隧道 协议,且拥有公网IP,封装和解封装有额外CPU开销。

4. FULLNAT 模式 - 非标准模式,但非常实用
  • 工作流程

客户端发送请求到 LVS 的 VIP。

LVS 收到请求,不仅将目标IP从VIP改为RS的IP,还将源IP从客户端的IP改为LVS的内部IP

RS 收到请求,看到源IP是LVS的内部IP,目标IP是自己的IP。它处理请求并将响应发回给“源IP”(即LVS)。

LVS 收到响应后,再将目标IP从LVS的内部IP改回客户端的真实IP,源IP从RS的IP改回VIP。

  • 关键点解耦了LVS和RS的网络部署。RS 可以处在任何网络位置,完全不需要知道LVS的存在。这是阿里云等大型云厂商对LVS的重要贡献。缺点是破坏了客户端的真实源IP(需要通过TOA等技术在第七层弥补)。

总结与选择建议

  • 追求极致性能,且网络可控:首选 DR 模式

  • RS在异地或跨复杂网络:考虑 TUN 模式

  • 云环境或网络结构复杂,不想改动RS配置:使用 FULLNAT 模式(需要支持该特性的LVS版本)。

  • NAT 模式:一般只作为理解原理或临时测试使用,生产环境较少见。

【2025年10月最新优化算法】混沌增强领导者黏菌算法(Matlab代码实现)内容概要:本文档介绍了2025年10月最新提出的混沌增强领导者黏菌算法(Matlab代码实现),属于智能优化算法领域的一项前沿研究。该算法结合混沌机制与黏菌优化算法,通过引入领导者策略提升搜索效率和全局寻优能力,适用于复杂工程优化问题的求解。文档不仅提供完整的Matlab实现代码,还涵盖了算法原理、性能验证及与其他优化算法的对比分析,体现了较强的科研复现性和应用拓展性。此外,文中列举了大量相关科研方向和技术应用场景,展示其在微电网调度、路径规划、图像处理、信号分析、电力系统优化等多个领域的广泛应用潜力。; 适合人群:具备一定编程基础和优化理论知识,从事科研工作的研究生、博士生及高校教师,尤其是关注智能优化算法及其在工程领域应用的研发人员;熟悉Matlab编程环境者更佳。; 使用场景及目标:①用于解决复杂的连续空间优化问题,如函数优化、参数辨识、工程设计等;②作为新型元启发式算法的学习与教学案例;③支持高水平论文复现与算法改进创新,推动在微电网、无人机路径规划、电力系统等实际系统中的集成应用; 其他说明:资源包含完整Matlab代码和复现指导,建议结合具体应用场景进行调试与拓展,鼓励在此基础上开展算法融合与性能优化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值