LVS的负载均衡解决方案
负载均衡解决方案通常需要两部分组成,一部分是负责进行负载调配的调度服务器,一部分是提供真实服务的服务器。LVS是一个负载均衡/HA集群,主要针对大规模的网络应用,主要有邮件、在线存储、电子商务等。它是一种典型的基于IP的高性能负载均衡技术。
LVS由一组主控服务器和若干的真实服务器组成。在该集群中,真实服务器负责对外提供真实的技术,主控服务器负责根据特定的算法对真实服务器进行控制。客户端在请求服务时通常只与一个IP地址进行通信,这个IP地址可能来自于集群内部的一个虚拟IP地址。所以,在客户端看来只有一个服务器。
LVS调度器的实现中,IP负载均衡的效率最高。已有的IP负载均衡技术有VS/NAT、VS/TUN和VS/DR。VS/NAT在商业化的负载均衡器中使用广泛。
VS/NAT在调度过程中,重写请求报文的目标地址。真实服务器响应时,报文源地址被写回集群中的虚拟IP地址。这种方案在流量较大的情况下会造成调度器的瓶颈,因为服务数据都要通过调度器进行转发。系统示意图如 图- 1 :
图- 1 VS/NAT架构示意图
为了解决数据的收发在通过调度器的弊端,VS/TUN和VS/DR被提了出来。
VS/DR是VS via Direct Routing 简称。这种解决方案和VS/NAT不同之处在于调度器在接收的请求报文时,改写Mac地址。真实服务器在完成服务后将服务报文直接发送给客户端。这样就在一定程度上减轻了调度器的负担。调度器只需要完成请求报文的接收就可以了。相对于VS/TUN没有IP隧道的开销,真实服务器没有支持IP隧道协议的要求。在VS/DR中,调度器和真实服务器需要有一个网卡在同一个网段内,真实服务器需要通过网关将服务报文发送出去。VS/DR的结构示意图如 图- 2 。
VS/TUN就是VS via IP Tunneling。VS/TUN和VS/DR的区别是,后者需要通过修改Mac地址完成服务请求的调度。VS/TUN则是在调度器中通过IP隧道将服务请求转发给真实服务器。
LVS的集群通常分为三层结构。负载调度器、服务池、共享存储。调度器对客户端来说是集群的唯一入口点,采用IP负载均衡技术。如果提供服务不是单一服务的话,还需要和基于内容的分发进行结合。为了保证服务质量,调度器可以通过双机备份来完成。服务器池中真实服务器的数目是可变的。系统的性能会随着真实服务器的数量增长而提高。
图- 2 VS/DR架构示意图