码迷,mamicode.com
首页 > 其他好文 > 详细

LVS负载均衡模型与工作原理

时间:2015-02-11 02:01:04      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:lvs工作模型   lvs集群技术   

1.LVS项目简介

LVSLinux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在19985月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。章文嵩博士目前工作于阿里集团,主要从事集群技术、操作系统、对象存储与数据库的研究。


2.LVS是如何工作的

Linux Virtual Server的主要是在负载均衡器上实现的,负载均衡器是一台加了LVS Patch的内核的Linux系统。LVS Patch可以通过重新编译内核的方法加入内核,也可以当作一个动态的模块插入现在的内核中。

负载均衡器可以运行在以下三种模式下中的一种或几种: 1)Virtual Server via NAT(VS-NAT):用地址翻译实现虚拟服务器;2)Virtual Server via IP Tunneling (VS-TUN):用IP隧道技术实现虚拟服务器;3)Virtual Server via Direct Routing(VS-DR):用直接路由技术实现虚拟服务器。


a.Virtual server via NAT(VS-NAT)

 

Virtual Server via NAT方法的最大优点是集群中的物理服务器可以使用任何支持TCP/IP操作系统,物理服务器可以分配Internet的保留私有地址,只有负载均衡器需要一个合法的IP地址。

 

这种实现方法的最大的缺点是扩展性有限。当服务器节点(普通PC服务器)数据增长到20个或更多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包都需要经过负载均衡器再生。假使TCP包的平均长度是536字节的话,平均包再生延迟时间大约为60us(在Pentium处理器上计算的,采用更快的处理器将使得这个延迟时间变短),负载均衡器的最大容许能力为8.93M/s,假定每台物理服务器的平台容许能力为400K/s来计算,负责均衡器能为22台物理服务器计算。

 

Virtual Server via NAT能够满足许多服务器的服务性能需求。即使是是负载均衡器成为整个系统的瓶颈,如果是这样也有两种方法来解决它。一种是混合处理,另一种是采用Virtual Server via IP tunneling或Virtual Server via direct routing。如果采用混合处理的方法,将需要许多同属单一的RR DNS域。你采用Virtual Server via IP tunneling或Virtual Server via direct routing以获得更好的可扩展性。也可以嵌套使用负载均衡器,在最前端的是VS-Tunneling或VS-Drouting的负载均衡器,然后后面采用VS-NAT的负载均衡器。以下是NAT模式下IP数据包的调度过程。

技术分享

 

1.客户端请求VIP(也可以说是CIP请求VIP);

2.Director Server 收到用户的请求后,发现源地址为CIP请求的目标地址为VIP,那么DorectorServer会认为用户请求的是一个集群服务,那么Director Server 会根据此前设定好的调度算法将用户请求负载给某台Real Server ,假如说此时Director Server 根据调度算法的结果会将请求分摊到Real Server 1上去,那么Director Server会将用户的请求报文中的目标地址,从原来的VIP改为Real Server 1IP,然后再转发给Real Server 1;

3.此时Real Server 1收到一个源地址为CIP目标地址为自己的请求,那么Real Server1处理好请求后会将一个源地址为自己目标地址为CIP的数据包通过Director Server 发出去;

4.Driector Server收到一个源地址为RealServer 1 IP 目标地址为CIP的数据包,此时Driector Server 会将源地址修改为VIP,然后再将数据包发送给用户。


b.Virtual server via IP tunneling(VS-TUN)

 

采用VS-NAT方式,请求与应答包都需要经过负载均衡器,那么当服务器节点增长到20个或更多时,这个负载均衡器就可能成为新的瓶颈。我们发现,许多Internet服务(例如WEB服务器)的请求包很短小,而应答包通常很大。

 而使用VS-TUN方式的话,负载均衡器只负责将请求包分发给物理服务器,而物理服务器将应答包直接发给用户。所以,负载均衡器能处理很巨大的请求量,这种方式,一台负载均衡能为超过100台的物理服务器服务,负载均衡器不再是系统的瓶颈。使用VS-TUN方式,如果你的负载均衡器拥有100M的全双工网卡的话,就能使得整个Virtual Server能达到1G的吞吐量。

IP tunneling(IP隧道)能够用于架构一个高性能的virtual server,非常适合构建virtual proxy server,因为当代理服务器收到了请求,能够让最终用户直接与服务器联系。

但是,这种方式需要所有的服务器支持IP Tunneling(IP Encapsulation)协议,目前只在linux上实现。



 

c.Virtual Server via Direct Routing(VS-DR)

 

就象VS-TUN一下,在VS-DR方式下,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。这种方式能够大大提高Virtual Server的可扩展性。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,但它要求负载均衡器的网卡必须与物理网卡在一个物理段上。

VS-DR模式,原理说明:Director接收用户的请求,然后根据负载均衡算法选取一台realserver,将包转发过去,最后由realserver直接回复给用户。

特点:
集群节点和director必须在一个物理网络内
RIP可以使用公网地址或私有地址
director仅处理入站请求
集群节点网关不指向director,故出站不经过director
不支持端口映射
大多数操作系统可以作为realserver,要支持隔离arp广播
director服务器的压力比较小


相关名词解释: 

DSDirector Server,前端的LVS Server

RSReal Server;后端的WebServer

CIP:客户端ip地址

VIP:调度器的虚拟地址一般是外网的地址。

DIP:调度器内部网络地址。

RIP:真实服务器地址。










LVS负载均衡模型与工作原理

标签:lvs工作模型   lvs集群技术   

原文地址:http://mylinuxroad.blog.51cto.com/1348472/1613478

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!