风气网

LVS四种工作模式原理

2024-09-20来自:本站整理

LVS 是 Linux Virtual Server :Linux 虚拟服务器;是一个虚拟的服务器集群【多台机器 LB IP】。

负载调度器(load balancer) :它是整个LVS 集群对外的前端机器,负责将client请求发送到一组服务器[多台LB IP]上执行,而client端认为是返回来一个同一个IP【通常把这个IP 称为虚拟IP/VIP】
服务器池(server pool) :一组真正执行client 请求的服务器,一般是我们的web服务器;除了web,还有FTP,MAIL,DNS
共享存储(shared stored) :它为 server pool 提供了一个共享的存储区,很容易让服务器池拥有相同的内容,提供相同的服务

常用术语

VS:Virtual Server #虚拟服务,一个抽象的服务,用于最开始接收 web 请求的服务
Director, Balancer #负载均衡器、分发器
RS:Real Server # 真正提供服务的服务器
CIP: Client IP #用户端IP,发起请求的客户端 IP,一般是公网 IP
VIP:Director Virtual IP #负载均衡器虚拟IP
DIP:Director IP #负载均衡器IP
RIP:Real Server IP #真正提供 web 服务的服务器的 IP

(1)直接路由模式(LVS-DR)
互联网使用比较多的一种模式
DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。同TUN模式一样,DR模式可以极大的提高集群系统的伸缩性。而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求。但是要求调度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

DR模式特点
优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。
缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。

(2)NAT模式(LVS-NAT)
NAT模式是通过网络地址转换的方法来实现调度的。首先调度器(LB)接收到客户的请求数据包时(请求的目的IP为VIP),根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后调度就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP),这样真实服务器(RS)就能够接收到客户的请求数据包了。真实服务器响应完请求后,查看默认路由(NAT模式下我们需要把RS的默认路由设置为LB服务器。)把响应后的数据包发送给LB,LB再接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

NAT模式特点:
1、NAT技术将请求的报文和响应的报文都需要通过LB进行地址改写,因此网站访问量比较大的时候LB负载均衡调度器有比较大的瓶颈,一般要求最多之能10-20台节点
2、只需要在LB上配置一个公网IP地址就可以了。
3、每台内部的节点服务器的网关地址必须是调度器LB的内网地址。
4、NAT模式支持对IP地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致。

(3)Full NAT模式(LVS-FullNAT)
客户端对VIP发起请求,Director接过请求发现是请求后端服务。Direcrot对请求报文做full-nat,把源ip改为Dip,把目标ip转换为任意后端RS的rip,然后发往后端,rs接到请求后,进行响应,响应源ip为Rip,目标ip还是DIP,又内部路由路由到Director,Director接到响应报文,进行full-nat。将源地址为VIP,目标地址改为CIP
请求使用DNAT,响应使用SNAT

Full NAT模式特点:
FULL NAT 模式也不需要 LBIP 和realserver ip 在同一个网段;
full nat 跟nat 相比的优点是:保证RS回包一定能够回到LVS;因为源地址就是LVS==> 不确定
full nat 因为要更新sorce ip 所以性能正常比nat 模式下降 10%

(4)IP隧道模式(LVS-Tunnel)
采用NAT模式时,由于请求和响应的报文必须通过调度器地址重写,当客户请求越来越多时,调度器处理能力将成为瓶颈。为了解决这个问题,调度器把请求的报文通过IP隧道转发到真实的服务器。真实的服务器将响应处理后的数据直接返回给客户端。这样调度器就只处理请求入站报文,由于一般网络服务应答数据比请求报文大很多,采用VS/TUN模式后,集群系统的最大吞吐量可以提高10倍。
它和NAT模式不同的是,它在LB和RS之间的传输不用改写IP地址。而是把客户请求包封装在一个IP tunnel里面,然后发送给RS节点服务器,节点服务器接收到之后解开IP tunnel后,进行响应处理。并且直接把包通过自己的外网地址发送给客户不用经过LB服务器。

ip隧道模式特点:
负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。
隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

四种模式性能比较:
因为DR模式 IP TUNELL 模式都是在package in 时经过LVS ,在package out是直接返回给client,所以二者的性能比NAT 模式高,但IP TUNNEL 因为是TUNNEL 模式比较复杂,其性能不如DR模式;
FULL NAT 模式因为不仅要更换 DST IP 还更换 SOURCE IP 所以性能比NAT 下降10%
4种模式的性能如下:DR ==> IP TUNNEL ==>NAT ==>FULL NAT



  • [赫彭弦18652924250] - LVS四种工作模式原理
    骆发黛::(1)直接路由模式(LVS-DR) 互联网使用比较多的一种模式 DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。同TUN模式一样,DR模式可以极大的提高集群系统的伸缩性。而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有...
  • [赫彭弦18652924250] - lvs负载均衡(简介,三种工作模式,四种常用算法)
    骆发黛::2,基于TUN的LVS负载均衡 也就是IP隧道技术实现虚拟服务器。它的连接调度和管理与VS\/NAT方式一样,只是它的报文转发方法不同,VS\/TUN方式中,调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过前端调度器,此外,对Real Server的地域位置没有要求,...
  • [赫彭弦18652924250] - 美团面试题:如何设计负载均衡架构支撑千万级用户的高并发访问?
    骆发黛::1.6.3 LVS集群的工作模式--FULLNAT LVS的DR和NAT模式要求RS和LVS在同一个vlan中,导致部署成本过高;TUNNEL模式虽然可以跨vlan,但RealServer上需要部署ipip隧道模块等,网络拓扑上需要连通外网,较复杂,不易运维。 为了解决上述问题,开发出FULLNAT 该模式和NAT模式的区别是:数据包进入时,除了做DNAT,还做SNAT(用户ip...
  • [赫彭弦18652924250] - Linux中使用ipvsadm配置LVS集群的基本方法
    骆发黛::第三、四行是在新加虚拟IP记录中添加两条新的Real Server记录,并且指定LVS 的工作模式为直接路由模式。最后,启动LVS服务,执行如下操作:代码如下:[root@localhost ~]#ipvsadm这样,LVS在Director Server上的配置就完成了。为了管理和配置的方便,可以将上面的操作写出一个脚本文件,脚本内容如下:代码如下:#!\/bin\/bashVIP...
  • [赫彭弦18652924250] - k8s网络原理-ipvs
    骆发黛::  ipvs的原理如下。ipvs工作在iptables 的 input链上,VIP一般定义在DS节点上的一个虚拟ip,拿nat模式举例如下。 ① : 当请求数据包到DS上最先经过iptables 的PREROUTING链,判断目标ip (VIP) 是本机的ip,于是把请求转发到INPUT链上。 ② : 因为lvs工作在INPUT链上,数据到达INPUT链上后lvs会将用户请求和定义...
  • [赫彭弦18652924250] - 负载均衡:F5,Haproxy,lvs, nginx
    骆发黛::一般情况下,VIP只在nginx主节点上工作,如果nginx主节点不可用了,VIP会自动漂移到从节点,自动漂移的原理即VRRP协议。VIP漂移到从节点后,如果主节点恢复正常了,VIP是否漂移回主节点,取决于当前模式是抢占模式还是非抢占模式。下图是一张简单的架构图,解释如下:以上观点纯属个人意见,如果错误,欢迎指出...
  • [赫彭弦18652924250] - 可扩展性对比:lvs与F5哪个更优?
    骆发黛::LVS负载均衡模式即Linux virtual server,是一个基于集群技术和Linux操作系统,目的是实现一个高性能、高可用的服务器,主要工作在网络层。F5负载均衡器能提供高性能、灵活的负载均衡解决方案,支持多种负载均衡策略和健康检查功能,适用于企业级应用。除了基本的负载均衡功能,还具备SSL加速、应用层协议转换和...
  • [赫彭弦18652924250] - 路由DR 模式是什么
    骆发黛::LVS的DR模式不需要开启路由转发功能,就可以正常的工作,出于安全考虑,如果不需要转发功能,最好关闭。 3> ARP问题: 通常,DR模式需要在Real-server上配置VIP,配置的方式为: \/sbin\/ifconfig lo:0 inet VIP netmask 255.255.255.255 i) 原因在于,当LVS把client的包转发给Real-server时,因为包的目的IP地址是VIP,那么...
  • [赫彭弦18652924250] - LVS+Keepalived 高可用负载均衡群集
    骆发黛::2.3 Keepalived工作原理 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。 主服务器作用:转发...
  • [赫彭弦18652924250] - lvs和F5哪个好?想听专业一点的解答
    骆发黛::LVS负载均衡模式即Linux virtual server,是一个基于集群技术和Linux操作系统,主要工作在网络层。区别于LVS负载均衡模式,F5通过提供智能且可自定义的负载均衡策略来查看客户并将其路由到可用资源,释放繁忙的站点和系统。同时使用F5的产品,还能获得专家的支持,因此应用更加广泛的是F5负载均衡产品。
  • 首页 热门
    返回顶部
    风记网