LVS负载均衡概念

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS负载均衡概念相关的知识,希望对你有一定的参考价值。

一、负载均衡的分层结构

  第一层:负载调度器,这是访问整个集群系统的唯一入口,对外使用所有服务器共有的VIP地址。通常会配置主、备两台调度器实现热备份。

  第二层:服务器池,集群所提供的应用服务由服务器池承担,其中的每个节点具有独立的RIP地址,只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负载均衡器的容错机制会将其隔离,等待错误排除后再重新纳入服务器池。

  第三层:共享存储,为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个集群的统一性。

技术分享图片

二、负载均衡的工作模式

 1、NAT模式(网络地址转换):这是一种外网和内网地址映射的技术,在这种工作模式下,数据的进出都要经过LVS负载均衡器。LVS需要作为真实服务器(Real Server)的网关。当数据包到达LVS时,LVS要做目标地址转换(DNAT),将目标IP改为真实服务器(Real Server)的IP。真实服务器接到数据包后进行处理,在响应时,源IP地址是真实服务器自身IP,而目标地址则直接定义为客户端的IP。然后真实服务器把响应数据包发送给LVS进行中转,LVS会做源地址转换(SNAT),把数据包的源IP地址改为VIP。在客户端看来,这个数据包就是LVS直接发送给它的,客户端感知不到真实服务器(Real Server)的存在。

技术分享图片


  2、Tunnel模式(IP隧道模式):隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器?注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议?所以,在RS的内核中,必须编译支持IPTUNNEL这个选项。

  

  3、DR模式(直接路由模式):这种模式下客户端发来的请求也是由LVS接收,但是真实服务器在返回响应数据包时直接返回给客户端,不经过LVS。当用户发送请求时,源IP是client_IP,目标地址是LVS_VIP,当LVS将数据包转发给真实服务器处理后,返回时的源IP是Real_IP,目标IP是client_IP,因为客户端没有请求Real_IP,这样直接返回的数据包是不被客户端接收的,所以还是需要使用VIP来响应请求。DR模式下,LVS服务器需要配置一个VIP和DIP,真实服务器需要配置RIP和VIP(和调度服务器的VIP一致),但是真实服务器的VIP是隐藏的(因为会造成地址冲突),不会应答广播,只在响应客户端的时候作为源地址使用。当请求到达LVS服务器时,LVS会将目标的MAC地址改为某台真实服务器的MAC地址,该请求数据包就会被转发到相应的真实服务器来处理,此时的源IP和目标IP都没变。当真实服务器发送响应数据包时,只需要直接返回到客户端即可(因为此时源地址是VIP,目标地址是client_IP),不需要再经过LVS服务器。

技术分享图片


三、LVS的负载调度算法(举四个比较常用的算法)

  1、轮询:将收到的请求访问按照顺序轮流分配给集群中的各节点,均等地对待每一台服务器,而不管服务器实际的连接数和负载。

  2、加权轮询:根据实际服务器的处理能力轮流分配收到的访问请求,调度器可以自动查询各节点的负载情况,并动态调整其权重。这样可以保证处理能力强的服务器承担更多的访问流量。

  3、最少连接:根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。如果所有的服务器节点性能差不多,采用这种方式可以更好地负载均衡。

  4、加权最少连接:在服务器节点性能差异较大的情况下,可以为真实服务器自动调整权重,权重较高的节点将承担更大比例的活动连接负载。



以上是关于LVS负载均衡概念的主要内容,如果未能解决你的问题,请参考以下文章

LVS负载均衡群集之构建DR模式,可跟做!!!

群集 之 LVS负载均衡(NAT模式)

LVS负载均衡群集详解

LVS基本概念和三种模式

lvs+keepalived实现高可用负载均衡

Linux负载均衡之lvs基本介绍