LVS原理介绍

LVS原理介绍

基于LVS的服务器集群主要由两部分组成,即负载调度器(Load Balancer,简称LB)和真正提供服务的服务器(Real Server,简称RS)。RS对外是不可见的,用户需要通过访问LB来获得服务,所以LB也称为虚拟服务器(Virtual Server),它对外公开的IP称为VIP(Virtual IP)。

LB接收到用户的请求后,会根据设置的转发模式和负载均衡调度算法将请求转发给RS,RS再将结果返回给LB或用户(返回给谁跟转发模式有关)。

LVS的转发模式主要有三种:网络地址转换(NAT,Network Address Translation)、IP隧道(TUN,IP Tunneling)和直接路由(DR,Direct Routing)。

NAT模式:网络地址转换技术应该都不陌生,就是将一个IP地址转换为另一个IP地址的技术。通常当一个内部网络中的主要要访问Internet或被Internet访问时,就需要采用NAT技术,将内部地址(10.0.0.0/255.0.0.0、172.16.0.0/255.240.0.0、192.168.0.0/255.255.0.0)转化为在Internet上可用的外部地址。

下面是LVS采用NAT模式的部署图:

alt

DR模式:NAT模式中,请求和响应的数据包都需要通过LB,当RS的数目过多时,LB可能成为整个集群的新瓶颈。因为大多数Internet服务都有这样的特点:请求报文较短而响应报文往往包含大量的数据。如果能将请求和响应分开处理,即LB只负责调度请求而响应直接返回给客户,将极大地提高整个集群的吞吐量。

alt

TUN模式:IP隧道技术是将一个IP数据报封装成另一个IP数据报的技术,使得被封装的数据报可以被转发到另一个IP地址。

TUN模式与DR模式基本相同。不同的是:

1. TUN模式中,LB和RS必须支持“IP Tunneling”或者“IP Encapsulation”协议

2. LB和RS的VIP配置在tunl0虚拟网卡上

3. LB将请求报文封装成一个新的IP报文,新的IP包的目的IP是某一RS的IP,然后转发给RS,RS收到报文后解封装,取出用户的请求报文,发现目的IP是VIP,而自己的tunl0网卡上配置了这个IP,从而处理请求并将结果直接发送给客户。DR模式中LB修改的是目的MAC

4. LB与真实服务器不必在同一网段,只要路由可达即可。如果不再同一网段,不会存在arp问题。

    调度算法:
    1. 轮询调度(Round Robin,rr)
     2.  加权轮叫(Weighted Round Robin,wrr)
    3.  最少链接(Least Connections,lc)
    4.  加权最少链接(Weighted Least Connections,wlc)
    5.  基于局部性的最少链接(Locality-Based Least Connections,lblc)
    6.  带复制的基于局部性最少链接(Locality-Based Least Connections with Replication,lblcr)
    7.  目标地址散列(Destination Hashing,dh)
    8.  源地址散列(Source Hashing,sh)
    9.  最短的期望的延迟(Shortest Expected Delay Scheduling SED,sed)
    10. 最少队列调度(Never Queue Scheduling,nq)
Comments are closed.