一、LVS简介:
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。在可伸缩网络服务的几种结构中它们需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出了通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术。
二、LVS三种模型:
LVS-NAT模型:
外网用户直接访问Director上的VIP地址,在Director 上做DNAT,将请求分派给给real server服务器中的其中一台,请求可以是http、mail、dns或ftp。然后real server将请求结果通过Director的Dip发送给请求者。由于请求和回复都要经过Director,容易使Director成为瓶颈,最多可以有10个节点。如下图所示:
LVS-DR模型:
外网用户直接访问Director上的VIP地址,Director将请求分派给real server 进行处理,当realserver处理后不再经过Director,而是直接送至客户端,绕开了Director,使Director不再成为瓶颈。可以有大量的节点,最多可以有100个节点。如下图所示:
LVS-TUN模型:
数据包通过VIP地址到达LB后,会被重新封装,在原有数据报外加上RS的真实IP地址并发送给RS。RS在收到数据包(ipip-proto协议)后,会解包并将包直接转发给之前配置的tunl端口VIP地址。后续RS处理数据包后,将返回数据包直接发给给客户端而无需经过LB。使用Tunnel模式的LVS相比NAT模式,从RS返回客户端的数据包不用经过LB,减轻了LB的压力。如下图所示: