LVS负载均衡

article/2025/9/22 17:49:19

目录

一、What’s the LVS?

1、LVS(Linux Virtual Server,负载调度器)

2、LVS如何工作

二、LVS工作模式

1、LVS-NAT

2、LVS-TUN

3、LVS-DR

三、LVS的使用

1、LVS负载均衡调度算法

(1).轮询调度

(2).加权轮询调度

(3).最小连接调度

(4).加权最小连接调度

2、ipvsadm工具选项

 四、NAT模式LVS负载均衡部署

 1、LVS-NAT的NFS共享服务器

3、LVS-NAT负载调度器

​编辑

 3、LVS-NAT节点服务器

4、LVS-NAT客户机测试

五、DR模式LVS负载均衡部署

1、LVS-DR的特点

2、部署

3、LVS-DR的nfs服务器

4、LVS-DR节点服务器

6、LVS-DR负载调度器

7、LVS-DR客户端测试


一、What’s the LVS?

1、LVSLinux Virtual Server,负载调度器

  LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。

内核集成,阿里的四层SLB(Server Load Balance)是基于LVS+keepalived实现.

整个SLB系统由3部分构成:

四层负载均衡  采用开源软件LVS (linux virtual server),并根据云计算需求对其进行了定制化;该技术已经在阿里巴巴内部业务全面上线应用2年;

七层负载均衡和控制  采用开源软件Tengine;该技术已经在阿里巴巴内部业务全面上线应用3年多;

控制系统   用于配置和监控负载均衡系统;

2、LVS如何工作

LVS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS。LVS是内核级功能,工作在INPUT链的位置,将发往INPUT的流量进行“处理”

VS:Virtual Server,Director Server(DS), Dispatcher(调度器),Load Balancer(lvs服务器)

RS:Real Server(lvs), upstream server(nginx), backend server(haproxy)(真实服务器)

CIP:Client IP

VIP:Virtual serve IP VS外网的IP

DIP:Director IP VS内网的IP

RIP:Real server IP (真实IP)

二、LVS工作模式

LVS的工作模式:

  • LVS-NAT:net address translate 修改请求报文的目标IP,多目标IP的DNAT

  • LVS-DR:direct routing 操纵封装新的MAC地址(直接路由)

  • LVS-TUN:隧道模式

1、LVS-NAT

本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某处的RS的RIP和PORT实现转发

(1)RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP

(2)请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈

(3)支持端口映射,可修改请求报文的目标PORT

(4)VS必须是Linux系统,RS可以是任意OS系统
 

2、LVS-TUN

(1)RIP和DIP可以不处于同一物理网络中,RS的网关一般不能指向DIP,且RIP可以和公网通信。也就是说集群节点可以跨互联网实现。DIP, VIP, RIP可以是公网地址。

(2)RealServer的通道接口上需要配置VIP地址,以便接收DIP转发过来的数据包,以及作为响应的报文源IP。

(3)DIP转发给RealServer时需要借助隧道,隧道外层的IP头部的源IP是DIP,目标IP是RIP,而RealServer响应给客户端的IP头部是根据隧道内层的IP头分析得到的,源IP是VIP,目标IP是CIP

(4)请求报文要经由Director,但响应不经由Director,响应由RealServer自己完成

(5)不支持端口映射

(6)RS的OS须支持隧道功能

3、LVS-DR

(1)采用半开放式的网络结构,与 TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。

(2)负载调度器与各节点服务器通过本地网络连接,不需要建立专用的 IP 隧道

(3)直接路由,LVS默认模式,应用最广泛,通过请求报文重新封装一个MAC首部进行转发,

(4)源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;

(5)源IP/PORT,以及目标IP/PORT均保持不变

三、LVS的使用

1、LVS负载均衡调度算法

(1).轮询调度

轮询调度(Round Robin 简称'RR')算法就是按依次循环的方式将请求调度到不同的服务器上,该算法最大的特点就是实现简单。轮询算法假设所有的服务器处理请求的能力都一样的,调度器会将所有的请求平均分配给每个真实服务器。

(2).加权轮询调度

加权轮询(Weight Round Robin 简称'WRR')算法主要是对轮询算法的一种优化与补充,LVS会考虑每台服务器的性能,并给每台服务器添加一个权值,如果服务器A的权值为1,服务器B的权值为2,则调度器调度到服务器B的请求会是服务器A的两倍。权值越高的服务器,处理的请求越多。

(3).最小连接调度

最小连接调度(Least Connections 简称'LC')算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态的调度算法,它通过服务器当前活跃的连接数来估计服务器的情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中断或者超时,其连接数减1。

(4).加权最小连接调度

加权最少连接(Weight Least Connections 简称'WLC')算法是最小连接调度的超集,各个服务器相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。


2、ipvsadm工具选项

选项                                                      解释


-A                                             添加虚拟服务器
-D                                          删除整个虚拟服务器
-s         指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
-a                                   表示添加真实服务器(节点服务器)
-a                                  表示添加真实服务器(节点服务器)
-d                                              删除某一个节点
-t                                           指定VIP地址及TCP端口
-r                                           指定RIP地址及TCP端口
-m                                           表示使用NAT群集模式
-g                                                    表示使用DR
-i                                                  表示使用TUN模式
-w                                   设置权重(权重为0时表示暂停节点)
-p 60                                          表示保持长连接60秒
-l                                列表产看LVS虚拟服务器(默认为查看所有)
-n                 以数字形式显示地址、端口等信息,常与"-"选项组合使用。ipvsadm -ln

 四、NAT模式LVS负载均衡部署

负载调度器:配置双网卡 内网:192.168.116.22(ens33) 外网:192.168.100.100(ens36)
二台WEB服务器(搭载http)集群池:192.168.116.23、192.168.116.120
一台NFS共享服务器:192.168.116.111

一台windows客户端:192.168.100.42

 1、LVS-NAT的NFS共享服务器

NFS具体配置可以看我的博客

https://blog.csdn.net/m0_71518373/article/details/125903736?spm=1001.2014.3001.5502

在NFS服务器上创建共享目录分别挂载给两台web服务器,然后在里面创建两个目录,分别创建index.html 文件并写入内容。

cd /opt/
mkdir 23 120
echo "this is server 192.168.116.23">/opt/23/index.html
echo "this is server 192.168.116.120">/opt/120/index.html 

3、LVS-NAT负载调度器

准备工具和网卡设备

#安装ipvsadm
yum install -y ipvsadm*#添加一块网卡,配置网卡,重启网络
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36#去掉网关、UUID、修改ens36的IP为192.168.100.100
vim ifcfg-ens36
vim ifcfg-ens33
#去掉网关systemctl restart network#打开路由转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 
sysctl -p

ens33:192.168.116.22

ens36:192.168.100.100

添加的路由规则 

#加载LVS内核模块
modprobe ip_vs
cat /proc/net/ip_vs#开启ipvsadm服务
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm.service#清空策略
ipvsadm -C#指定IP地址 外网的入口  -s rr  轮询
ipvsadm -A -t 192.168.100.100:80 -s rr#先指定虚拟服务器再添加真实服务器地址,-r:真实服务器地址 -m指定nat模式
ipvsadm -a -t 192.168.100.100:80 -r 192.168.116.23:80 -m
ipvsadm -a -t 192.168.100.100:80 -r 192.168.116.120:80 -m#开启服务
ipvsadm#查看策略
ipvsadm -ln

配置LVS,确保前面的ipvsadm工具安装

#加载LVS内核模块
modprobe ip_vs
cat /proc/net/ip_vs#开启ipvsadm服务
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm.service#清空策略     查看策略
ipvsadm -C    ipvsadm -ln#指定IP地址 外网的入口  -s rr  轮询
ipvsadm -A -t 192.168.100.100:80 -s rr#先指定虚拟服务器再添加真实服务器地址,-r:真实服务器地址 -m指定nat模式
ipvsadm -a -t 10.0.0.10:80 -r 192.168.159.231:80 -m
ipvsadm -a -t 10.0.0.10:80 -r 192.168.159.235:80 -m#开启服务
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm
systemctl status ipvsadm

 服务状态:

 这里在LVS机上设置策略时需要注意,被设置的机器http服务一定要先开启,否则会设置策略失败,报错:service not defined

 3、LVS-NAT节点服务器

23服务器

showmount -e 192.168.116.111#挂载nfs目录
vim /etc/fstab
192.168.116.111:/opt/23/  /var/www/html/        nfs     defaults,_netdev 0 0 
mount -a#指定网关到192.168.116.22(LVS)
vim /etc/sysconfig/network-scripts/ifcfg-ens33 
GATEWAY=192.168.116.22#重启网络服务
systemctl restart network

120服务器

showmount -e 192.168.116.111#挂载nfs目录
vim /etc/fstab
192.168.116.111:/opt/120/  /var/www/html/        nfs     defaults,_netdev 0 0 
mount -a#指定网关到192.168.116.22(LVS)
vim /etc/sysconfig/network-scripts/ifcfg-ens33 
GATEWAY=192.168.116.22#重启网络服务
systemctl restart network

4、LVS-NAT客户机测试

打开客户机,设置windows客户机的ip:192.168.100.42,网关ip为192.168.100.100(LVS)

打开浏览器,搜索192.168.100.100

 

五、DR模式LVS负载均衡部署

1、LVS-DR的特点

Director Server 和 Real Server 必须在同一个物理网络中。

Real Server 可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过 互联网对 RIP 进行直接访问。

所有的请求报文经由 Director Server,但回复响应报文不能经过 Director Server。

Real Server 的网关不允许指向 Director Server IP,即不允许数据包经过 Director S erver。

Real Server 上的 lo 接口配置 VIP 的 IP 地址。
 

2、部署

LVS-DR 服务器:192.168.116.22
web 服务器1:192.168.116.23
web 服务器2:192.168.116.120
nfs 服务器:192.168.116.111
vip(虚拟回环):192.168.116.21
客户端:192.168.100.42

3、LVS-DR的nfs服务器

cd /opt/
mkdir 23 120
echo "this is server 192.168.116.23">/opt/23/index.html
echo "this is server 192.168.116.120 “>/opt/120/index.html 

如上文配置和挂载LVS-NAT的nfs服务器,这里配置LVS-DR略过此过程


4、LVS-DR节点服务器

192.168.116.23

挂载nfs目录到/var/www/html

添加回环网卡

cd /etc/sysconfig/network-scripts/cp ifcfg-lo ./ifcfg-lo:0vim ifcfg-lo:0[root@ljpbak network-scripts]# vim ifcfg-lo:0
DEVICE=lo
IPADDR=192.168.116.21
NETMASK=255.255.255.0
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
#BROADCAST=127.255.255.255
ONBOOT=yes
#NAME=loopback#启动网卡
ifup lo:0#重启网络
systemctl restart network#设置路由
route add -host 192.168.116.21 dev lo:0
route -n#添加系统只响应目的IP为本地IP的ARP请求系统不使用原地址来设置ARP请求的
源地址,而是物理mac地址上的IP
vim /etc/sysctl.confnet.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2sysctl -p

192.168.116.120

挂载nfs目录到/var/www/html

添加回环网卡

cd /etc/sysconfig/network-scripts/cp ifcfg-lo ./ifcfg-lo:0vim ifcfg-lo:0[root@ljpbak network-scripts]# vim ifcfg-lo:0
DEVICE=lo
IPADDR=192.168.116.21
NETMASK=255.255.255.0
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
#BROADCAST=127.255.255.255
ONBOOT=yes
#NAME=loopback#启动网卡
ifup lo:0#重启网络
systemctl restart network#设置路由
route add -host 192.168.116.21 dev lo:0
route -n#添加系统只响应目的IP为本地IP的ARP请求系统不使用原地址来设置ARP请求的
源地址,而是物理mac地址上的IP
vim /etc/sysctl.confnet.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2sysctl -p

6、LVS-DR负载调度器

#对于 DR 群集模式来说,由于 LVS 负载调度器和各节点需要共用 VIP 地址,
应该关闭 Linux 内核的重定向参数响应服务器不是一台路由器,那么它不会发
送重定向,所以可以关闭该功能vi /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

配置虚拟IP地址

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0#删除UUID,dns与网关,注意子网
NAME=ens33:0
DEVICE=ens33:0
IPADDR=192.168.116.21
NETMASK=255.255.255.255#重启网络服务、启动网卡
ifup ifcfg-ens33:0
systemctl restart network

 ipvsadm工具管理

#加载模块
modprobe ip_vs
cat /proc/net/ip_vs#清空ipvsadm,并做策略
ipvsadm -C
ipvsadm -A -t 192.168.116.21:80 -s rr
ipvsadm -a -t 192.168.116.21:80 -r 192.168.116.120:80 -g
ipvsadm -a -t 192.168.116.21:80 -r 192.168.116.23:80 -g#保存设置
ipvsadm
ipvsadm -ln
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm.service

7、LVS-DR客户端测试


http://chatgpt.dhexx.cn/article/kjOYh6Yk.shtml

相关文章

LVS服务器

简介 LVS是Linux虚拟服务器,LVS由用户空间的ipvsadm和内核空间的IPVS组成。ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作。LVS是一个高效的负载均衡器 LVS的特点 高并发连接:LVS基于内核网络层面工作,有超强的承载能力和…

LVS的介绍与使用

LVS负载均衡 1.LVS服务简述 1.1lvs服务简介 ​ LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,该项目是1998年5月由章文嵩博士主导的开源负载均衡项目,是国内最早出现的自由软件项目之一…

LVS原理简介

LVS是Linux virtual server的缩写,为linux虚拟服务器,是一个虚拟的服务器集群系统。LVS简单工作原理为用户请求LVS VIP,LVS根据转发方式和算法,将请求转发给后端服务器,后端服务器接收到请求,返回给用户。对…

什么是LVS

😘作者简介:一名99年运维岗位员工。👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。🙏创作不易,动动…

LVS是什么

LVS是linux virtual server的简写linux虚拟服务器,是一个虚拟的服务器集群系统,可以在unix/linux平台下实现负载均衡集群功能。该项目在1998年5月由章文嵩博士组织成立。 LVS是一种集群(Cluster)技术,现在LVS已经是 Linux标准内核的一部分&a…

lvs使用

1.前言 LVS(Linux Virtual Server)是一个基于 Linux 内核的负载均衡器,用于分发网络流量和将请求转发给后端服务器。LVS 提供了多种负载均衡算法和转发模式,以满足不同场景和需求的负载均衡需求,在LVS中定义虚拟服务的…

LVS负载均衡介绍

一、lvs是什么? LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。在linux内存2.6中,它已经成为内核的…

[高可用系列|LVS]LVS详解

背景 上一章我们说了keepalived,keepalived是避免负载均衡设备的单点故障的,即负载均衡设备的高可用。截止到目前为止,负载均衡我们只说到了Nginx(四层,七层负载),接下来的我们介绍的LVS也是用来…

lvs看这篇就够了

1lvs 的由来 1公司的钱大部分都花在了获客,营销上,营销效果好就会带来新的流量,如果自身应用承接不住大的流量将会造成很大的经济损失。所以lvs负载均衡技术就此诞生了。当然不差钱也可以使用F5 等硬件 lvs 学名 Linux虚拟服务器 LVS是Linux …

lvs负载均衡之配置lvs-nat模式的httpd负载集群---http和https

文章目录 Lvs简介体系结构LVS管理工具Ipvsadm核心功能LVS工作模式及原理 LVS调度算法配置lvs-nat模式的httpd负载集群---http配置lvs-nat模式的httpd负载集群---https Lvs简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主…

LVS基本知识概述

1.什么是LVS? LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中 该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体…

LVS介绍

一、LVS是什么 LVS(Linux Virtual Server),是一个极好的负载均衡解决方案,它将一个真实服务器集群虚拟成一台服务器来对外提供服务,同时在真实服务器集群中实现了负载均衡。该技术由章文嵩博客发起,从linux…

LVS详解

LVS简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。 LVS名词解释 DS:director server,即负载均…

LVS负载均衡(LVS简介、三种工作模式、十种调度算法)

一、LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1…

程序员必备的 10 大国外技术网站

公众号关注 “GitHubDaily” 设为 “星标”,每天带你逛 GitHub! 今天给大家推荐 10 个国外比较优质的技术网站,希望大家喜欢。 1、dev dev社区和国内的掘金社区很相似,技术分类也比较多,像 Java、Python、js、分布式等…

程序员经常浏览的 60 个技术网站汇总,还不赶快收藏!

>>号外:关注“Java精选”公众号,菜单栏->聚合->干货分享,回复关键词领取视频资料、开源项目。 程序员是一个需要不断学习的职业。幸运的是,在这个互联网时代,知识就在那里,等着我们去获取。 作…

国内10大技术网站,你最爱和哪个玩耍?

所谓“物以类聚,人以群分” 所谓“士为知己者死,女为悦己者容” 所谓“世上的乌鸦都一般黑,鸽子却各有各的白” ...... CSDN,掘金,博客园等,说起来都是“技术”社区,每个却都有着不同的姿色和用…

IT网站推荐

IT网站推荐 1.首先肯定是 CSDN 啦,许多系统问题、软件安装问题都是在这弄好的。以及写代码时的各种懵逼,也可以在这里搜索解决。 觉得还是有必要附上链接 CSDN::https://www.csdn.net/ 2.MSDN:https://msdn.itellyou.cn/ 官网系…

推荐八个技术学习网站

推荐八个技术学习网站 写在前边的话八个纯技术学习好网站 写在前边的话 我们相信努力学习一定会有收获,但是方法不当,既让人身心疲惫,也没有切实的回报。在众多互联网技术网站中,各有各的好,经过网上收集整理&#xf…

IT技术相关网站

OSCHINA - 中文开源技术交流社区https://www.oschina.netCSDN - 专业开发者社区https://www.csdn.netSegmentFault 思否 - 中国领先的开发者技术社区https://segmentfault.xn--com-0da有穹_一个开发者的作品发布平台https://www.youqiong.net牛客网 - 找工作神器|笔试题库|面试…