【负载均衡】负载均衡组件LVS的工作模式与算法介绍

TangLu 未命名 2020-01-28 5927 0

一、集群与集群分类

简单来说集群就是两台或多台服务器进行组合,然后共同完成一个任务的架构。集群可以分为高可用集群、负载均衡集群与高性能集群:

高可用集群High  Availability):实现业务的持续性,业务不能中断。目前常用于实现HA集群的产品有RHCS、Heartbeat 、keepalived
负载均衡集群Load  Balancing):当业务量太过庞大的时候,多服务器分流。目前常用于实现LB的产品有HAProxy 、LVS、Nginx 、F5(硬件)
高性能集群High  Performance):,多服务器同时处理一个业务。


二、LVS负载均衡

LVS现在已经是Linux内核的一部分,不需要在额外编译内核, LVS在内核里的模块叫作ipvs,而管理工具是ipvsadm,它们二者的关系就像netfilter与iptables的关系一样


三、LVS IP地址类型说明

VIP:虚拟IP,并不是提供真实服务的IP,而是通过这个IP转发到后方
DIP:LVS服务器本身的IP,通过这个IP和RIP连接,DIP通常和Real Server的IP在一个网段
RIP:真实服务器的IP地址

CIP:客户端请求时用户的IP


四、LVS工作模式介绍LVS有DR模式、NAT模式以及TUN模式三种:

1、NAT模式
NAT模式的集群节点需要跟director在同一网络;RIP通常是私有地址,仅用于各集群节点间的通信;RealServer的网关应该指向DIP;支持端口映射(转发);用户发起的请求由调度器向Real Server提交,Real Server再把数据经过调度器传给用户。相比DR模式的话,这样安全性高,但是效率低,瓶颈会出现在调度器上,生产环境几乎不用。


2、DR模式(生产环境中使用最多的)

RealServer推荐使用公网IP;RealServer的网关地址不能指向DIP;RealServer和调度器需要在同个物理网络(同个机房),DIP和RIP应该在同一网段;入站数据经过调度器转发到RealServer,出站数据由RealServer直接发给客户端,不再经过调度器;不能做端口转发。


3、TUN模式

也叫作隧道模式,构建和DR模式一样,相比DR模式服务器间可以不在同一个网络,可以实现异地传输,但是RealServer需要支持隧道功能。


五、LVS负载均衡的调度方法

大方向上分为动态和静态两种调度算法,静态算法是当用户连接进来后,按设置的算法进行处理,不会判断后端服务器的繁忙情况,而动态算法则会判断后端服务器繁忙状态,然后酌情调度


1、静态算法详细分类
轮询调度(RR):轮流分配请求,不管服务器繁忙程度
加权轮询(WRR):后端服务器配置越好,分配到的请求越多,权重设置比较敏感。如A、B两台服务器,A的权重为1,B的为10,那么当B要处理了10个用户请求后才会分配让A处理一个
目标地址散列(DH):同一IP过来的请求永远分配给同一个Real Server,这样可以利用缓存加速

源地址散列(SH)


2、动态算法详细分类:
最小连接(LC):当客户端发起请求时调度器会计算后端服务器的开销,将请求转发给开销小的服务器。计算公式:活动链接数x256+非活动连接数
加权最小连接(WLC):默认算法,也是使用最多的算法,计算公式:(活动链接数x256)/权重+非活动连接数
还有其他的一些补充算法,如最短期望延迟(SED)、最小队列调度(NQ)、基于局部的最小连接(LBLC)、带复制的基于局域的最小连接(LBLCR),可以网上查询具体含义。

评论