来源:互联网
缩略语:
缩略语 | 英文全名 | 中文解释 |
ARP | Address Resolution Protocol | 地址解析协议 |
DNAT | Destination NAT | 目的地址NAT |
DNS | Domain Name Service | 域名服务 |
DR | Direct Routing | 直接路由 |
IPsec | IP Security | IP安全 |
LB | Load Balance | 负载均衡 |
LLB | Link Load Balance | 链路负载均衡 |
NAT | Network Address Translation | 网络地址转换 |
OAA | Open Application Architecture | 开发应用架构 |
RTT | Round Trip Time | 往返时间 |
SLB | Server Load Balance | 服务器负载均衡 |
SSL | Secure Socket Layer | 安全套接层 |
TTL | Time To Live | 生存时间 |
VPN | Virtual Private Network | 虚拟专用网络 |
VRRP | Virtual Router Redundancy Protocol | 虚拟路由器冗余协议 |
VSIP | Virtual Service IP Address | 虚服务IP地址 |
1.1 负载均衡产生背景
1.1.1 服务器负载均衡产生背景
随着Internet的快速发展和业务量的不断提高,基于网络的数据访问流量迅速增长,特别是对数据中心、大型企业以及门户网站等的访问,其访问流量甚至达到了10Gb/s的级别;同时,服务器网站借助HTTP、FTP、SMTP等应用程序,为访问者提供了越来越丰富的内容和信息,服务器逐渐被数据淹没;另外,大部分网站(尤其电子商务等网站)都需要提供不间断24小时服务,任何服务中断或通信中的关键数据丢失都会造成直接的商业损失。所有这些都对应用服务提出了高性能和高可靠性的需求。
但是,相对于网络技术的发展,服务器处理速度和内存访问速度的增长却远远低于网络带宽和应用服务的增长,网络带宽增长的同时带来的用户数量的增长,也使得服务器资源消耗严重,因而服务器成为了网络瓶颈。传统的单机模式,也往往成为网络故障点。
图1 现有网络的不足
针对以上情况,有以下几种解决方案:
1. 服务器进行硬件升级:采用高性能服务器替换现有低性能服务器。
该方案的弊端:
l 高成本:高性能服务器价格昂贵,需要高额成本投入,而原有低性能服务器被闲置,造成资源浪费。
l 可扩展性差:每一次业务量的提升,都将导致再一次硬件升级的高额成本投入,性能再卓越的设备也无法满足当前业务量的发展趋势。
l 无法完全解决现在网络中面临的问题:如单点故障问题,服务器资源不够用问题等。
2. 组建服务器集群,利用负载均衡技术在服务器集群间进行业务均衡。
多台服务器通过网络设备相连组成一个服务器集群,每台服务器都提供相同或相似的网络服务。服务器集群前端部署一台负载均衡设备,负责根据已配置的均衡策略将用户请求在服务器集群中分发,为用户提供服务,并对服务器可用性进行维护。
该方案的优势:
l 低成本:按照业务量增加服务器个数即可;已有资源不会浪费,新增资源无需选择昂贵的高端设备。
l 可扩展性:当业务量增长时,系统可通过增加服务器来满足需求,且不影响已有业务,不降低服务质量。
l 高可靠性:单台服务器故障时,由负载均衡设备将后续业务转向其他服务器,不影响后续业务提供,保证业务不中断。
图2 负载均衡技术
1.1.2 网关负载均衡产生背景
SSL VPN网关、IPsec网关、防火墙网关等网关设备,因为业务处理的复杂性,往往成为网络瓶颈。以防火墙网关为例:防火墙作为网络部署的“警卫”,在网络中不可或缺,但其往往不得不面临这样的尴尬:网络防卫越严格,需要越仔细盘查过往的报文,从而导致转发性能越低,成为网络瓶颈。
在这种情况,如果废弃现有设备去做大量的硬件升级,必将造成资源浪费,随着业务量的不断提升,设备也将频繁升级。频繁升级的高成本是相当可怕的。因此将网关设备等同于服务器,组建网关集群的方案应运而生:将多个网关设备并联到网络中,从而形成集群,提高网络处理能力。
1.1.3 链路负载均衡产生背景
信息时代,工作越来越离不开网络,为了规避运营商出口故障带来的网络可用性风险,和解决网络带宽不足带来的网络访问问题,企业往往会租用两个或多个运营商出口(如:电信、网通等)。如何合理运用多个运营商出口,既不造成资源浪费,又能很好的服务于企业?传统的策略路由可以在一定程度上解决该问题,但是策略路由配置不方便,而且不够灵活,无法动态适应网络结构变化,且策略路由无法根据带宽进行报文分发,造成高吞吐量的链路无法得到充分利用。链路负载均衡技术通过动态算法,能够在多条链路中进行负载均衡,算法配置简单,且具有自适应能力,能很好的解决上述问题。
1.2 负载均衡技术优点
负载均衡提供了一种廉价、有效、透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力,提高网络的灵活性和可用性。
负载均衡技术具有如下优点:
l 高性能:通过调度算法,将客户端请求合理地均衡到后端各台服务器上,消除系统可能存在的瓶颈。
l 可扩展性:当服务的负载增长时,系统能被扩展来满足需求,且不降低服务质量。
l 高可用性:通过健康性检测功能,能实时监测应用服务器的状态,保证在部分硬件和软件发生故障的情况下,整个系统的服务仍然可用。
l 透明性:高效地使由多个独立计算机组成的松耦合的服务系统构成一个虚服务器;客户端应用程序与服务系统交互时,就像与一台高性能、高可用的服务器交互一样,客户端无须作任何修改。部分服务器的切入和切出不会中断服务,而用户觉察不到这些变化。
2 技术实现
2.1 概念介绍
l 虚服务
负载均衡设备对外提供的服务称为虚服务。虚服务由VPN实例、虚服务IP地址、服务协议、服务端口号唯一标识,配置在负载均衡设备上。客户的访问请求通过公共或私有网络到达负载均衡设备,匹配到虚服务后,由负载均衡设备按照既定策略分发给真实服务。
l 实服务
实服务是真实服务器提供的一种服务。该服务含义比较广泛,可以是传统的FTP、HTTP等业务应用,也可以是广义的转发服务,如防火墙网关负载均衡中,实服务只是报文转发路径。
l OAA
OAA即开放应用架构,是华三通信技术有限公司(以下简称H3C)提出的一个开放的软硬件体系,它以路由器或以太网交换机这样的传统网络设备为基础,并在此基础上,提供一套完整的软、硬件标准接口。任何厂商只要按照这样的接口来生产软件或硬件,这些新开发的软硬件就可以和H3C系列路由器或以太网交换机等构成一个完整的系统,为客户创造更大的价值。
l 持续性功能
持续性功能将属于同一个应用层会话的多个连接定向到同一服务器,从而保证同一业务由同一个服务器处理(或链路转发),并减少LB设备对服务和流量进行分发的次数。
l 负载均衡调度算法
负载均衡设备需要将业务流量根据某种算法分发给不同的实服务(实服务对应服务器负载均衡中的服务器、网关负载均衡中的网关设备和链路负载均衡中的链路),这个分发算法就是负载均衡调度算法。
l 就近性算法
就近性算法是指在链路负载均衡中,实时探测链路的状态,并根据探测结果选择最优链路,保证流量通过最优链路转发。
l 健康性检测功能
健康性功能是指负载均衡设备对真实的服务器是否能够提供服务进行探测。依据不同的探测方法(即健康性检测方法)可以探测出服务器是否存在,以及是否可以正常提供服务。
2.2 服务器负载均衡
服务器负载均衡,顾名思义就是对一组服务器提供负载均衡业务。这一组服务器一般来说都处于同一个局域网络内,并同时对外提供一组(或多组)相同(或相似)的服务。服务器负载均衡是数据中心最常见的组网模型。
服务器负载均衡包括以下几个基本元素:
l LB Device:负责分发各种服务请求到多个Server的设备。
l Server:负责响应和处理各种服务请求的服务器。
l VSIP:对外提供的虚拟IP,供用户请求服务时使用。
l Server IP:服务器的IP地址,供LB Device分发服务请求时使用。
依据转发方式,服务器负载均衡分为NAT方式和DR方式。两种方式的处理思路相同:LB设备提供VSIP,用户访问VSIP请求服务后,LB设备根据调度算法分发请求到各个实服务。而在具体的处理方式上有所区别:
l NAT方式:LB设备分发服务请求时,进行目的IP地址转换(目的IP地址为实服务的IP),通过路由将报文转发给各个实服务。
l DR方式:LB设备分发服务请求时,不改变目的IP地址,而将报文的目的MAC替换为实服务的MAC后直接把报文转发给实服务。
以下将分别对两种方式进行详细介绍。
2.2.1 NAT方式的服务器负载均衡
NAT方式组网灵活,后端服务器可以位于不同的物理位置,不同的局域网内。NAT方式典型组网如图3所示。
1. 实现原理
客户端将到VSIP的请求发送给服务器群前端的负载均衡设备,负载均衡设备上的虚服务接收客户端请求,依次根据持续性功能、调度算法,选择真实服务器,再通过网络地址转换,用真实服务器地址重写请求报文的目标地址后,将请求发送给选定的真实服务器;真实服务器的响应报文通过负载均衡设备时,报文的源地址被还原为虚服务的VSIP,再返回给客户,完成整个负载调度过程。
2. 工作流程
NAT方式的服务器负载均衡的工作流程图如图4所示。
流程简述请参见表1。
步骤
说明
备注
(1)
Host发送服务请求报文
源IP为Host IP、目的IP为VSIP
(2)
LB Device接收到请求报文后,借助持续性功能或调度算法计算出应该将请求分发给哪台Server
-
(3)
LB Device使用DNAT技术分发报文
源IP为Host IP、目的IP为Server IP
(4)
Server接收并处理请求报文,返回响应报文
源IP为Server IP、目的IP为Host IP
(5)
LB Device接收响应报文,转换源IP后转发
源IP为VSIP、目的IP为Host IP
从以上一系列的说明可以看出——在负载均衡时使用网络地址转换技术,NAT方式因此而得名。
3. 技术特点
组网灵活,对服务器没有额外要求,不需要修改服务器配置,适用于各种组网。
2.2.2 DR方式的服务器负载均衡
相对于NAT组网方式,DR组网方式中只有客户端的请求报文通过LB,服务器的响应报文不经过LB,从而减少了LB的负载,有效的避免了LB成为网络瓶颈。DR方式典型组网如图5所示。
1. 实现原理
DR方式的服务器负载均衡时,除了LB设备上配置了VSIP,真实服务器也都配置了VSIP,配置的VSIP要求不能响应ARP请求,例如在环回接口上配置VSIP。实服务除了VSIP,还需要配置一个真实IP,用于和LB通信,LB设备和真实服务器在同一个链路域内。发送给VSIP的报文,由LB分发给相应的真实服务器,从真实服务器返回给客户端的报文直接通过交换机返回。
2. 工作流程
DR方式的服务器负载均衡的工作流程图如图6所示。
流程简述请参见表2。
步骤
说明
备注
(1)
Host发送服务请求报文
源IP为Host IP、目的IP为VSIP
(2)
General Device收到请求后转发给LB Device
Server上的VSIP不会响应ARP请求
(3)
LB Device接收到请求报文后,借助持续性功能或调度算法计算出应该将请求分发给哪台Server
-
(4)
LB Device分发报文
源IP为Host IP,目的IP为VSIP,目的MAC为Server的MAC地址
(5)
Server接收并处理请求报文,返回响应报文
源IP为VSIP、目的IP为Host IP
(6)
General Device收到响应报文后,直接将报文转发给Host
-
从以上一系列的说明可以看出——负载均衡设备没有采用传统的转发方式(查找路由表)来分发请求报文,而是通过修改目的MAC直接路由给服务器,DR方式也因此而得名。
3. 技术特点
只有单边报文经过负载均衡设备,负载均衡设备负担小,不易成为瓶颈,转发性能更强。
2.3 网关负载均衡
网关负载均衡包括以下几个基本元素:
l LB Device:负责分发请求发起方的网络流量到多个网关设备。LB Device又分为一级和二级。如图7所示,如果请求发起方的网络流量方向为Host A > Host B,则LB Device A为一级,LB Device B为二级;如果请求发起方的网络流量方向为Host B > Host A,则LB Device B为一级,LB Device A为二级。
l 网关设备:正常处理数据的网关设备,如:SSL VPN网关,IPsec网关,防火墙网关等。
以防火墙网关负载均衡为例,组网应用如图7所示。
1. 实现原理
防火墙是基于会话开展业务的,即一个会话的请求和应答报文必须通过同一个防火墙。为了保证防火墙业务正常进行,内部组网不受影响,需要采用双侧负载均衡,即防火墙三明治。在这种组网环境中,对于流入流量,一级LB设备做防火墙负载均衡,二级LB设备保证从哪个防火墙进来的流量,还要从这个防火墙返回。流出流量正好相反。
2. 工作流程
图8 防火墙负载均衡流程图
表3 防火墙负载均衡流程描述
步骤
说明
备注
(1)
LB Device A接收流量
-
(2)
LB Device A依次根据持续性功能、负载均衡调度算法选择一个Firewall,并将流量转发给该Firewall
由于防火墙基于会话开展业务,建议优先选用源地址散列算法
(3)
Firewall将流量转发给LB Device B
-
(4)
LB Device B作为二级LB Device,记录转发该流量的防火墙,并将流量转发到目的地
-
(5)
LB Device B接收目的地发回的流量
-
(6)
LB Device B根据(4)中的记录将流量转发给同一个Firewall
-
(7)
Firewall将流量转发给LB Device A
-
(8)
LB Device A将流量转发回源地址
-
从以上一系列的说明可以看出——两台LB Device之间并联的防火墙进行网络流量的负载分担,提高了网络的性能。两侧的LB Device和中间并联的防火墙——我们称之为三明治负载均衡。
3. 技术特点
服务对象为防火墙,提高防火墙组网灵活性。没有特殊要求,适用于任何组网环境。
2.4 服务器负载均衡和网关负载均衡融合
网关负载均衡也可以和服务器负载均衡融合使用,以防火墙网关和服务器负载均衡综合组网为例,具体组网如图9所示。
图中Cluster A为防火墙负载均衡的集群,Cluster B为NAT方式服务器负载均衡的集群。综合组网的工作流程就是防火墙、服务器负载均衡流程的叠加。这样的组网方式既避免了防火墙成为网络中的瓶颈,也提高了各种网络服务(如HTTP、FTP)的性能和可用性。
2.5 链路负载均衡
链路负载均衡根据业务流量方向可以分为Outbound链路负载均衡和Inbound链路负载均衡两种情况。
2.5.1 Outbound链路负载均衡
内网和外网之间存在多条链路时,通过Outbound链路负载均衡可以实现在多条链路上分担内网用户访问外网服务器的流量。Outbound链路负载均衡的典型组网如图10所示。
Outbound链路负载均衡包括以下几个基本元素:
l LB device:负责将内网到外网流量分发到多条物理链路的设备。
l 物理链路:运营商提供的实际链路。
l VSIP:对外提供的虚服务IP,即用户发送报文的目的网段。
1. 实现原理
Outbound链路负载均衡中VSIP为内网用户发送报文的目的网段。用户将访问VSIP的报文发送到负载均衡设备后,负载均衡设备依次根据持续性功能、ACL策略、就近性算法、调度算法选择最佳的物理链路,并将内网访问外网的业务流量分发到该链路。
2. 工作流程
表4 Outbound链路负载均衡流程描述
步骤
说明
备注
(1)
LB Device接收内网用户流量
-
(2)
LB Device依次根据持续性功能、ACL策略、就近性算法、调度算法进行链路选择
在Outbound链路负载均衡组网中,通常使用就近性算法或带宽调度算法实现流量分发
(3)
LB device按照链路选择的结果将流量转发给选定的链路
-
(4)
LB Device接收外网用户流量
-
(5)
LB Device将流量转发给内网用户
-
3. 技术特点
l 可以和NAT应用网关共同组网,不同的链路使用不同的源地址,从而保证往返报文穿过同一条链路。
l 通过健康性检测,可以检查链路内任意节点的连通性,从而有效保证整条路径的可达性。
l 通过调度算法,在多条链路间均衡流量,并支持按照带宽进行负载均衡。
l 利用就近性算法动态计算链路的质量,将流量分发到当前最优链路上。
2.5.2 Inbound链路负载均衡
内网和外网之间存在多条链路时,通过Inbound链路负载均衡可以实现在多条链路上分担外网用户访问内网服务器的流量。Inbound链路负载均衡的典型组网如图12所示。
Inbound链路负载均衡包括以下几个基本元素:
l LB device:负责引导外网流量通过不同物理链路转发到内网,从而实现流量在多条物理链路上分担的设备。同时,LB device还需要作为待解析域名的权威名称服务器。
l 物理链路:运营商提供的实际链路。
l 本地DNS服务器:负责解析外网用户发送的DNS请求、并将该请求转发给权威名称服务器——LB device的本地DNS服务器。
1. 实现原理
Inbound链路负载均衡中,负载均衡设备作为权威名称服务器记录域名与内网服务器IP地址的映射关系。一个域名可以映射为多个IP地址,其中每个IP地址对应一条物理链路。
外网用户通过域名方式访问内网服务器时,本地DNS服务器将域名解析请求转发给权威名称服务器——负载均衡设备,负载均衡设备依次根据持续性功能、ACL策略、就近性算法选择最佳的物理链路,并将通过该链路与外网连接的接口IP地址作为DNS域名解析结果反馈给外网用户,外网用户通过该链路访问内网服务器。
2. 工作流程
图13 Inbound链路负载均衡流程图
表5 Inbound链路负载均衡流程描述
步骤
说明
备注
(1)
外网用户通过域名访问内网服务器时,首先要进行DNS解析,向其本地DNS服务器发送DNS请求
-
(2)
本地DNS服务器将DNS请求转发给域名对应的权威名称服务器——LB device
-
(3)
LB device根据DNS请求的域名、持续性功能、ACL策略、就近性算法选择最优的物理链路,并将通过该物理链路与外网连接的接口IP地址作为域名解析结果
在Inbound链路负载均衡组网中,通常使用就近性算法实现外网到内网流量在多条链路间均衡
(4)
LB device按照域名解析的结果,将DNS应答发送给本地DNS服务器
-
(5)
本地DNS服务器将解析结果转发给用户
-
(6)
用户使用解析结果选择的链路,对内网服务器进行访问
-
3. 技术特点
l 可以和服务器负载均衡配合适用,实现外网用户访问内网服务器流量在多条链路间均衡的同时,也实现了流量在多台服务器间均衡。
l 通过健康性检测,可以检查链路内任意节点的连通性,从而有效保证整条路径的可达性。
l 利用就近性算法动态计算链路的质量,保证转发流量的链路是当前最优的链路。
2.6 LB设备的双机热备
无论是服务器负载均衡、网关负载均衡,还是链路负载均衡,LB设备均处于关键路径,LB设备的稳定性和安全性直接影响了网络的可用性。为了避免单点故障,LB设备必须支持双机热备,即在两台LB设备之间通过备份链路备份对端设备上的业务,保证两台设备上的业务状态是一致的。当其中一台设备发生故障时,利用VRRP或动态路由(例如OSPF)机制将业务流量切换到另一台设备,由于另一台设备已经备份了故障设备上的业务信息,业务数据流便可以从该设备上通过,从而在很大程度上避免了网络业务的中断。
LB双机热备方案支持两种工作模式:
l 主备模式:两台LB设备中一台作为主设备,另一台作为备份设备。主设备处理所有业务,并将产生的业务信息通过备份链路传送到备份设备;备份设备不处理业务,只用做备份。当主设备故障,备份设备接替主设备处理业务,从而保证新发起的负载均衡业务能正常处理,当前正在进行的负载均衡业务也不会中断。
l 负载分担模式:两台LB设备均为主设备,都处理业务流量,同时又作为另一台设备的备份设备,备份对端的业务信息。当其中一台设备故障后,另一台设备负责处理全部业务,从而保证新发起的负载均衡业务能正常处理,当前正在进行的负载均衡业务也不会中断。
以网关负载均衡为例,LB双机热备的组网如图14所示。
2.7 负载均衡的部署方式
LB设备通常以直联和旁挂两种方式部署在网络中。
2.7.1 直联方式
如图15所示,直联方式,即LB设备直接部署在网络的主干中,服务器和客户端之间的负载均衡报文直接由LB设备进行路由。
2.7.2 旁挂模式及OAA
如图16所示,旁挂模式指LB设备不作为服务器和客户端之间的路由设备,而是旁挂在路由设备上。旁挂模式也可以结合OAA方案使用,在路由设备上部署一块具备LB功能的插卡,即可实现旁挂方式的负载均衡。在DR方式中,LB设备只能使用旁挂模式。
旁挂模式中,用于中转的路由交换设备上的配置至关重要。
从客户端至服务器的流量如果要达到LB设备,必须在路由交换设备上设置到VSIP的路由。
从服务器到客户端的流量如果不必经过LB设备,则可以通过中转设备直接返回客户端,如果需要返回LB,则有几种方式:
l 服务器和LB在同一个二层网络,服务器设置其网关为LB设备。
l 中转设备上配置策略路由,将从服务器返回的流量定向到LB设备。
l LB设备在转发客户端流量时进行源NAT。
3 负载均衡技术特色
3.1 丰富的负载均衡调度算法
调度算法指对需要负载均衡的流量,按照一定的策略分发到指定的服务器群中的服务器或指定链路组的某条链路上,使得各台服务器或链路尽可能地保持负载均衡。调度算法以连接为粒度,同一条连接的所有报文都会分发到同一个服务器或链路上。这种细粒度的调度在一定程度上可以避免单个用户访问的突发性引起服务器或链路间的负载不平衡。
负载均衡技术持丰富的负载均衡调度算法。不同调度算法所实现的负载均衡效果不同,可以需要根据具体的应用场景,采用不同的算法。
3.1.1 静态调度算法
静态算法,即按照预先设定策略,进行分发,不考虑当前各实服务或链路的实际负载情况。算法特点:实现简单,调度快捷。
l 轮转(Round Robin Scheduling)
依次将请求分发到不同的服务器或链路上,使得各个真实服务器或链路平均分担用户的连接请求。
如:实服务群中包含三个实服务A、B、C,假设各实服务均未达到连接上限,最后分发给A、B、C的连接数之比为1:1:1。
适用场景:服务器集群中各服务器性能或链路群中各链路带宽相当,无优劣之分。
l 加权轮转(Weighted Round Robin Scheduling)
按照权值大小,依次将请求分发到不同的服务器或链路上,权值大的分配较多请求,权值小的分配较少请求。该算法可以解决服务器间性能或链路间带宽不一的问题,权值标识服务器间性能或链路间带宽差异。
如:实服务组中包含三个实服务A、B、C,其配置权值分别为:4、3、2。假设各实服务均未达到连接上限,最后分发给A、B、C的连接数之比为4:3:2。
适用场景:服务器集群中各服务器性能或链路集群中各链路带宽存在差异。
l 随机(Random Scheduling)
将请求随机分发到不同的服务器或链路上。从统计学角度看,调度结果为各个服务器或链路平均分担用户的连接请求。
适用场景:服务器集群中各服务器性能或链路群中各链路带宽相当,无优劣之分。
l 加权随机(Weighted Random Scheduling)
将请求随机分发到不同的服务器或链路上。从统计学角度看,调度结果为各个服务器或链路按照权值比重分担用户的连接请求,最后的比值和加权轮转一致。
适用场景:服务器集群中各服务器性能或链路群中各链路带宽存在差异。
l 基于源IP的Hash(Source IP Hashing Scheduling)
通过一个散列(Hash)函数将来自同一个源IP的请求映射到一台服务器或链路上。
适用场景:需要保证来自同一个用户的请求分发到同一个服务器或链路。
l 基于源IP端口的Hash(Source IP and Source Port Hashing Scheduling)
通过一个散列函数将来自同一个源IP和源端口号的请求映射到一台服务器或链路上。
适用场景:需要保证来自同一个用户同一个业务的请求分发到同一台服务器或链路。
l 基于目的IP的Hash(Destination IP Hashing Scheduling)
通过一个散列函数将去往同一个目的IP的请求映射到一台服务器或链路上。
适用场景:需要保证到达同一个目的地的请求分发到同一台服务器或链路。适用于网关负载均衡和链路负载均衡。
3.1.2 动态调度算法
相对于静态算法,动态算法根据各实服务或物理链路实际运行中的负载情况进行连接分发,分发效果更均衡。
l 最小连接(Least Connection Scheduling)
负载均衡设备根据当前各服务器或链路的连接数来估计服务器或链路的负载情况,把新的连接分配给连接数最小的服务器或链路。该算法能把负载差异较大(连接保持时长差异较大)的请求平滑分发到各个服务器或链路上。
适用场景:服务器集群中各服务器性能或链路群中各链路带宽相当,无优劣之分,不同用户发起的连接保存时长差异较大。
l 加权最小连接(Weighted Connection Scheduling)
调度新连接时尽可能使服务器或链路的已建立活动连接数和服务器或链路权值成比例,权值表明了服务器处理性能或链路实际带宽。
适用场景:服务器集群中各服务器性能或链路群中各链路带宽存在差异,不同用户发起的连接保存时长差异较大。
l 带宽(Bandwidth Scheduling)
负载均衡设备根据不同链路的实际剩余带宽及权值,将新连接分发到剩余带宽最大的链路上。
适用场景:链路群中各链路状况(包括带宽、拥塞程度等)存在差异。
3.2 灵活的就近性算法
就近性算法是指在链路负载均衡中,负载均衡设备利用健康性检测功能实时探测链路的状态,根据探测结果计算出最优链路,并通过最优链路转发业务流量。
就近性算法支持的健康性检测类型包括:
l DNS:通过DNS报文,检测远端DNS服务的可用性并获得就近性计算参数。只有Inbound链路负载均衡支持该检测类型。
l ICMP:通过ICMP报文,检测远端地址的可达性并获得就近性计算参数。
l TCP Half Open:通过建立TCP半开连接,检测远端地址的可达性并获得就近性计算参数。
就近性算法根据以下几个参数进行加权计算,得出链路加权数,并根据链路加权数的大小判断链路的优劣:
l 链路物理带宽:即链路的可用带宽值。
l 链路成本:取决于每条链路的成本值,比如租用联通10M链路每月1万元,租用电信10M链路每月1.5万元,则两条链路的成本比例为2:3,两条链路成本的取值应该满足该比例。
l 链路延迟时间(即RTT):通过探测获得。
l 路由跳数(即TTL):通过探测获得。
3.3 丰富的健康性检测方法
所谓健康检测,就是负载均衡设备定期对真实服务器或链路服务状态进行探测,收集相应信息,及时隔离工作异常的服务器或链路。健康检测的结果除标识服务器或链路能否工作外,还可以统计出服务器或链路的响应时间,作为选择服务器或链路的依据。
负载均衡技术支持丰富的健康性检测方法,可以有效地探测和检查服务器或链路的运行状态。
l ICMP
向服务器集群中的服务器或链路上的节点发送ICMP Echo报文,若收到ICMP Reply,则服务器或链路正常。
l TCP
向服务器集群中服务器的某端口发起TCP连接建立请求,若成功建立TCP连接,则服务器正常。
l HTTP
与服务器集群中服务器的HTTP端口(默认情况为80)建立TCP连接,然后发出HTTP请求,若收到的HTTP应答内容正确,则服务器正常。
l FTP
与服务器集群中服务器的21号端口建立TCP连接,然后获取服务器上的文件,若收到的文件内容正确,则服务器正常。
l TCP Half Open
向链路上节点的某端口发起TCP连接建立请求,若成功建立TCP半开连接,则链路正常。
l DNS
向链路上的DNS服务器发送DNS请求,若收到正确的DNS应答,则链路正常。
3.4 持续性功能
一次业务交互可能包括多个TCP连接,如FTP应用(包含一个控制通道和多个数据通道)和HTTP应用。这些TCP连接间有些存在显式关联关系,如FTP应用,数据通道的TCP连接是通过控制通道协商得来的。有些存在隐含的关联关系,如HTTP网络购物,多条连接组成一次业务应用,且多个连接并不像FTP应用一样有“父子”之分,能通过父通道获取子通道信息,但所有该业务的请求应发给同一服务器,否则可能造成无法完成所请求的功能,因为其数据报文中携带隐含关联信息,如cookie。
将属于同一个应用层会话的多个连接定向到同一服务器的功能,就是持续性功能。根据持续性原则,建立会话表项,保证后续业务报文都送往同一个服务器处理。比如使用源地址建立持续性表项,保证持续性。
3.4.1 具有显式关联关系持续性功能
如前所述,FTP应用的多条TCP连接之间具有显式关联关系:子通道五元组是通过父通道协商得来的。因此负载均衡设备对于FTP应用会逐包分析父通道报文,一旦发现子通道协商信息,就会利用该信息建立父通道会话关联表项,当子通道首报文到来时,根据关联表项和父会话表项建立完整的会话表项,从而保证父子通道登录同一台服务器。显式关联关系由负载均衡设备自动识别,无需配置策略。
3.4.2 具有隐式关联关系持续性功能
l 基于源IP地址的持续性功能
基于源IP地址的持续性功能常用于服务器负载均衡应用中,用以确保同一个客户端的业务能分配到同一个服务器中。
负载均衡设备接收到某一客户端的某一业务的首次请求时,建立持续性表项,记录为该客户分配的服务器情况,在会话表项生存周期内,后续相同源IP地址的业务报文都将发往该服务器处理。
l 基于目的IP地址的持续性功能
基于目的IP地址的持续性功能常用于链路负载均衡应用中,用以确保去往同一个目的地址的业务能分配到同一条链路上。
负载均衡设备接收到某一客户端的某一业务的首次请求时,建立持续性表项,记录为该客户分配的链路情况,在会话表项生存周期内,后续相同目的IP地址的业务报文都将分发到该链路转发。
3.5 4~7层的负载均衡
基于第四层(L4)的负载均衡在截取数据流以后,对数据包检查与分析的部分仅限于IP报头及TCP/UDP报头,而不关心TCP或UDP包的内部信息。而基于L7的负载均衡则要求负载均衡设备除了支持L4负载均衡以外,还要解析数据包中4层以上的信息,即应用层的信息。例如,可以解析HTTP协议,从数据包中提取出HTTP URL或Cookie信息。
L7负载均衡控制应用层服务的内容,提供了一种对访问流量的高层控制方式。与L4负载均衡相比,L7负载均衡具有如下优点:
l 通过对HTTP报头的检查,可以检测出HTTP 400、500和600系列的错误信息,因而能透明地将连接请求重新定向到另一台服务器,避免应用层故障。
l 可根据数据包内容(如判断数据包是图像文件、压缩文件或多媒体文件格式等),把数据流量引向相应内容的服务器来处理,增加系统性能。
l 可根据连接请求的数据类型(比如根据URL来区分是请求普通文本、图象等静态文档,还是请求ASP、CGI等动态文档),把相应的请求引向相应的服务器来处理,提高系统的性能及安全性。
由于L7负载均衡对应用层协议进行深度识别,因此,对于每种应用层协议都需要有独立的识别机制,这大大限制了L7负载均衡的应用扩展性,一般只是针对HTTP进行负载均衡。同时,深度识别应用层协议,对系统性能也会有很大影响。
4 典型组网应用
4.1 企业园区网应用
在企业园区网络中,为了实现对企业资源服务器的快速访问,也需要采用负载均衡设备分担企业数据访问流量。在这种应用环境下,可以将负载均衡设备串接在网络中,服务器通过网络设备连接到负载均衡设备,服务器网关指向LB。
图17 企业园区网应用组网图
负载均衡设备直联服务器部署模式的优点是:
l 部署简单,是负载均衡设备的经典应用模式。
l 通过交换机连接负载均衡设备和服务器群,解决LB设备端口数量限制带来的扩展性问题。
4.2 数据中心和大型门户网站应用
数据中心和大型门户网站是负载均衡设备主要的应用场景,H3C推荐采用旁挂模式作为数据中心和大型门户网站的组网模式。组网图如图18所示。
LB设备与汇聚层交换机之间有两条链路或链路聚合组,这两条链路(组)分别为L3链路和L2链路,服务器网关指向LB设备,对于需要负载均衡的流量,汇聚层将VSIP的下一跳指向LB,而LB的缺省路由指向汇聚层交换机。
旁挂部署模式的优点如下:
l 数据路径清晰,易于运行维护、故障定位;
l 可以使用手工链路聚合,链路带宽易于拓展,并提供链路高可靠性及其链路负载均衡能力;
l LB设备旁挂,易于LB升级和扩展。根据用户服务器扩展情况,升级更高性能的LB设备或者增加LB设备;
l 业务部署灵活,对不需要负载均衡的流量可以旁路LB,避免对LB增加不必要负荷;
l 降低了对汇聚层交换机的要求,有助于网络稳定运行。