负载均衡的技术原理及应用文档格式.docx
《负载均衡的技术原理及应用文档格式.docx》由会员分享,可在线阅读,更多相关《负载均衡的技术原理及应用文档格式.docx(51页珍藏版)》请在冰点文库上搜索。
多台服务器通过网络设备相连组成一个服务器集群,每台服务器都提供相同或相似的网络服务。
服务器集群前端部署一台负载均衡设备,负责根据已配置的均衡策略将用户请求在服务器集群中分发,为用户提供服务,并对服务器可用性进行维护。
该方案的优势:
低成本:
按照业务量增加服务器个数即可;
已有资源不会浪费,新增资源无需选择昂贵的高端设备。
可扩展性:
当业务量增长时,系统可通过增加服务器来满足需求,且不影响已有业务,不降低服务质量。
高可靠性:
单台服务器故障时,由负载均衡设备将后续业务转向其他服务器,不影响后续业务提供,保证业务不中断。
图2负载均衡技术
1.1.2
网关负载均衡产生背景
SSLVPN网关、IPsec网关、防火墙网关等网关设备,因为业务处理的复杂性,往往成为网络瓶颈。
以防火墙网关为例:
防火墙作为网络部署的“警卫”,在网络中不可或缺,但其往往不得不面临这样的尴尬:
网络防卫越严格,需要越仔细盘查过往的报文,从而导致转发性能越低,成为网络瓶颈。
在这种情况,如果废弃现有设备去做大量的硬件升级,必将造成资源浪费,随着业务量的不断提升,设备也将频繁升级。
频繁升级的高成本是相当可怕的。
因此将网关设备等同于服务器,组建网关集群的方案应运而生:
将多个网关设备并联到网络中,从而形成集群,提高网络处理能力。
1.1.3
链路负载均衡产生背景
信息时代,工作越来越离不开网络,为了规避运营商出口故障带来的网络可用性风险,和解决网络带宽不足带来的网络访问问题,企业往往会租用两个或多个运营商出口(如:
电信、网通等)。
如何合理运用多个运营商出口,既不造成资源浪费,又能很好的服务于企业?
传统的策略路由可以在一定程度上解决该问题,但是策略路由配置不方便,而且不够灵活,无法动态适应网络结构变化,且策略路由无法根据带宽进行报文分发,造成高吞吐量的链路无法得到充分利用。
链路负载均衡技术通过动态算法,能够在多条链路中进行负载均衡,算法配置简单,且具有自适应能力,能很好的解决上述问题。
1.1.4
全局负载均衡产生背景
随着社会各领域全球化进程的日益深化,实现各方面信息的全球共享成为人们的迫切需求。
然而,无论用户的数据中心内部采用多么完善的冗余机制、安全的防范工具以及先进的负载均衡技术,单个数据中心的运行方式仍然不能保证关键业务的7×
24小时不间断运行。
此外,单一的数据中心也无法使广域范围内全球各地用户在访问应用时具有相同的快速访问感受。
通过在不同物理位置构建多个数据中心,并利用全局负载均衡技术在多个数据中心间实现协调工作,引导用户访问最优的站点,当某个站点出现灾难性的故障后依然可以让其他站点为用户提供服务,这样便能有效解决上述问题。
1.2
负载均衡技术优点
负载均衡提供了一种廉价、有效、透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力,提高网络的灵活性和可用性。
负载均衡技术具有如下优点:
高性能:
通过调度算法,将客户端请求合理地均衡到后端各台服务器上,消除系统可能存在的瓶颈。
当服务的负载增长时,系统能被扩展来满足需求,且不降低服务质量。
高可用性:
通过健康性检测功能,能实时监测应用服务器的状态,保证在部分硬件和软件发生故障的情况下,整个系统的服务仍然可用。
透明性:
高效地使由多个独立计算机组成的松耦合的服务系统构成一个虚服务器;
客户端应用程序与服务系统交互时,就像与一台高性能、高可用的服务器交互一样,客户端无须作任何修改。
部分服务器的切入和切出不会中断服务,而用户觉察不到这些变化。
2
技术实现
2.1
概念介绍
1.虚服务
负载均衡设备对外提供的服务称为虚服务。
虚服务由VPN实例、虚服务IP地址、服务协议、服务端口号唯一标识,配置在负载均衡设备上。
客户的访问请求通过公共或私有网络到达负载均衡设备,匹配到虚服务后,由负载均衡设备按照既定策略分发给真实服务。
2.实服务
实服务是真实服务器提供的一种服务。
该服务含义比较广泛,可以是传统的FTP、HTTP等业务应用,也可以是广义的转发服务,如防火墙网关负载均衡中,实服务只是报文转发路径。
3.OAA
OAA即开放应用架构,是华三通信技术有限公司(以下简称H3C)提出的一个开放的软硬件体系,它以路由器或以太网交换机这样的传统网络设备为基础,并在此基础上,提供一套完整的软、硬件标准接口。
任何厂商只要按照这样的接口来生产软件或硬件,这些新开发的软硬件就可以和H3C系列路由器或以太网交换机等构成一个完整的系统,为客户创造更大的价值。
4.持续性功能
持续性功能将属于同一个应用层会话的多个连接定向到同一服务器,从而保证同一业务由同一个服务器处理(或链路转发),并减少LB设备对服务和流量进行分发的次数。
5.负载均衡调度算法
负载均衡设备需要将业务流量根据某种算法分发给不同的实服务(实服务对应服务器负载均衡中的服务器、网关负载均衡中的网关设备和链路负载均衡中的链路),这个分发算法就是负载均衡调度算法。
6.就近性功能
在链路负载均衡中,就近性功能是指,实时探测链路的状态,并根据探测结果选择最优链路,保证流量通过最优链路转发。
7.健康性检测功能
健康性功能是指负载均衡设备对真实的服务器是否能够提供服务进行探测。
依据不同的探测方法(即健康性检测方法)可以探测出服务器是否存在,以及是否可以正常提供服务。
8.ISP表
系统内置的ISP表描述了不同运营商拥有的地址段信息。
链路负载均衡可以基于报文的源或目的地址(Outbound链路负载均衡基于目的地址,Inbound链路负载均衡基于源地址)查找ISP表,得到对应的运营商信息,根据运营商信息为该流量选择一条物理链路。
9.GLB设备
GLB设备是具有全局负载均衡功能的LB设备,可以是一台独立的设备,也可以与本地负载均衡在同一台设备上提供服务。
10.全局服务
多个数据中心协作对外提供服务的描述。
例如,通过分布在全球的多个站点对外提供WWW服务,但使用相同的域名。
为了便于管理,不同设备间配置的全局服务名称应一致。
11.虚服务器
虚服务器是全局负载均衡中为了便于管理而抽象出来的概念,是用户能够直接访问的主机。
例如,一个数据中心对外提供一个IP地址,则可以抽象出一台服务器;
一个数据中心对外有多个链路,配有多个访问的IP地址,则可以抽象出多台服务器。
虚服务器分为本地虚服务器和远程虚服务器,不需要专门配置,是从本地虚服务和远程设备上动态获取的。
12.全局就近性功能
全局就近性是全局负载均衡中用于选取虚服务器的一种调度算法,是指通过探测虚服务器与用户之间的网络状态,以及虚服务器本身的负载情况,根据探测结果选取最优的虚服务器来为用户提供服务。
13.全局LB交互协议
GLB设备之间会进行信息交互,例如获取其它GLB设备上对应全局服务的虚服务器状态信息、通知其它GLB设备进行就近性探测等,承载此类信息的协议为全局LB交互协议。
2.2
服务器负载均衡
服务器负载均衡,顾名思义就是对一组服务器提供负载均衡业务。
这一组服务器一般来说都处于同一个局域网络内,并同时对外提供一组(或多组)相同(或相似)的服务。
服务器负载均衡是数据中心最常见的组网模型。
服务器负载均衡分为四层(L4)服务器负载均衡和七层(L7)服务器负载均衡两种:
L4服务器负载均衡支持IPv4协议和IPv6协议,是基于流的服务器负载均衡,对报文进行逐流分发,将同一条流的报文分发给同一个服务器。
L4服务器负载均衡对基于HTTP的7层业务无法做到按内容进行分发,限制了负载均衡业务的适用范围。
依据转发方式,L4服务器负载均衡分为NAT方式和DR方式。
L7服务器负载均衡只支持IPv4协议,是基于内容的服务器负载均衡,对报文的承载内容进行深度解析,包括HTTP协议、RTSP协议等,根据其中的内容进行逐包分发,按既定策略将连接导向指定的服务器,实现了业务使用范围更广泛的服务器负载均衡。
L7服务器负载均衡仅支持NAT方式。
2.2.1
NAT方式L4服务器负载均衡
NAT方式L4服务器负载均衡的组网灵活,后端服务器可以位于不同的物理位置,不同的局域网内。
NAT方式下,LB设备分发服务请求时,进行目的IP地址转换(目的IP地址为实服务的IP),通过路由将报文转发给各个实服务。
NAT方式L4服务器负载均衡的典型组网如图3所示。
图3NAT方式L4服务器负载均衡
NAT方式L4服务器负载均衡包括以下几个基本元素:
LBDevice:
负责分发各种服务请求到多个Server的设备。
Server:
负责响应和处理各种服务请求的服务器。
VSIP:
对外提供的虚拟IP,供用户请求服务时使用。
ServerIP:
服务器的IP地址,供LBDevice分发服务请求时使用。
1.实现原理
客户端将到VSIP的请求发送给服务器群前端的负载均衡设备,负载均衡设备上的虚服务接收客户端请求,依次根据持续性功能、ACL策略、调度算法,选择真实的服务器,再通过网络地址转换,用真实服务器地址重写请求报文的目标地址后,将请求发送给选定的真实服务器;
真实服务器的响应报文通过负载均衡设备时,报文的源地址被还原为虚服务的VSIP,再返回给客户端,完成整个负载调度过程。
2.工作流程
NAT方式L4服务器负载均衡的工作流程图如图4所示。
图4NAT方式L4服务器负载均衡流程图
流程简述请参见表1。
表1NAT方式L4服务器负载均衡流程描述
步骤
说明
备注
(1)
Host发送服务请求报文
源IP为HostIP、目的IP为VSIP
(2)
LBDevice接收到请求报文后,借助持续性功能或调度算法计算出应该将请求分发给哪台Server
-
(3)
LBDevice使用DNAT技术分发报文
源IP为HostIP、目的IP为ServerIP
(4)
Server接收并处理请求报文,返回响应报文
源IP为ServerIP、目的IP为HostIP
(5)
LBDevice接收响应报文,转换源IP后转发
源IP为VSIP、目的IP为HostIP
从以上一系列的说明可以看出——在负载均衡时使用网络地址转换技术,NAT方式因此而得名。
3.技术特点
组网灵活,对服务器没有额外要求,不需要修改服务器配置,适用于各种组网。
2.2.2
DR方式L4服务器负载均衡
相对于NAT方式,DR方式L4服务器负载均衡中只有客户端的请求报文通过LB,服务器的响应报文不经过LB,从而减少了LB的负载,有效的避免了LB成为网络瓶颈。
DR方式下,LB设备分发服务请求时,不改变目的IP地址,而将报文的目的MAC替换为实服务的MAC后直接把报文转发给实服务。
DR方式L4服务器负载均衡的典型组网如图5所示。
图5DR方式L4服务器负载均衡
DR方式L4服务器负载均衡包括以下几个基本元素:
DR方式L4服务器负载均衡时,除了LB设备上配置了VSIP,真实服务器也都配置了VSIP,配置的VSIP要求不能响应ARP请求,例如在环回接口上配置VSIP。
实服务除了VSIP,还需要配置一个真实IP,用于和LB通信,LB设备和真实服务器在同一个链路域内。
发送给VSIP的报文,由LB分发给相应的真实服务器,从真实服务器返回给客户端的报文直接通过交换机返回。
DR方式L4服务器负载均衡的工作流程图如图6所示。
图6DR方式L4服务器负载均衡流程图
流程简述请参见表2。
表2DR方式L4服务器负载均衡流程描述
GeneralDevice收到请求后转发给LBDevice
Server上的VSIP不会响应ARP请求
LBDevice分发报文
源IP为HostIP,目的IP为VSIP,目的MAC为Server的MAC地址
(6)
GeneralDevice收到响应报文后,直接将报文转发给Host
从以上一系列的说明可以看出——负载均衡设备没有采用传统的转发方式(查找路由表)来分发请求报文,而是通过修改目的MAC直接路由给服务器,DR方式也因此而得名。
只有单边报文经过负载均衡设备,负载均衡设备负担小,不易成为瓶颈,转发性能更强。
2.2.3
L7服务器负载均衡
L7服务器负载均衡的典型组网如图7所示。
图7L7服务器负载均衡
L7服务器负载均衡包括以下几个基本元素:
Servicegroup:
实服务组是一个逻辑概念,是指依据多个服务器的一些公共属性,将服务器划分成不同的组。
例如:
可以按照不同的功用划分为静态资料存储服务器组和动态交换服务器组;
还可以按照不同的内容划分为歌曲服务器组、视频服务器组或图片服务器组等。
客户端首先与服务器群前端的负载均衡设备建立TCP连接,然后将到VSIP的请求发送给负载均衡设备。
负载均衡设备上的虚服务接收客户端请求,依次根据持续性功能、实服务组匹配策略、调度算法,选择真实的服务器。
然后,负载均衡设备先用客户端地址与真实服务器建立TCP连接,再用真实服务器地址重写客户端请求报文的目标地址,并将请求发送给真实服务器。
L7服务器负载均衡的工作流程图如图8所示。
图8L7服务器负载均衡流程图
流程简述请参见表3。
表3L7服务器负载均衡流程描述
(1)~(3)
Host发起TCP连接请求,与LBDevice建立TCP连接
TCP连接请求的源IP为HostIP、目的IP为VSIP
LBDevice收到请求后,根据匹配策略为该请求选择一个合适的实服务组,再借助调度算法计算出应该将请求分发给该实服务组中的哪台Server,并缓存该请求报文
LBdevice向Server发SYN报文,序列号为Host的SYN报文序列号
(7)
Server发送SYNACK报文
(8)
LBdevice接收Server的SYNACK报文后,回应ACK报文
(9)
修改步骤(5)中缓存的请求报文的目的IP和TCP序列号,然后发给Server
(10)
Server发送响应报文到LBdevice
(11)
LBdevice修改响应报文的源地址和TCP序列号后转发给Host
对报文进行深度解析获取报文载荷中携带的信息,实现按内容进行分发,拓宽了负载均衡业务的适用范围。
适用于不同的服务器提供不同功能的组网。
2.3
网关负载均衡
网关负载均衡包括以下几个基本元素:
负责分发请求发起方的网络流量到多个网关设备。
LBDevice又分为一级和二级。
如图9所示,如果请求发起方的网络流量方向为HostA>
HostB,则LBDeviceA为一级,LBDeviceB为二级;
如果请求发起方的网络流量方向为HostB>
HostA,则LBDeviceB为一级,LBDeviceA为二级。
网关设备:
正常处理数据的网关设备,如:
SSLVPN网关,IPsec网关,防火墙网关等。
以防火墙网关负载均衡为例,组网应用如图9所示。
图9双侧防火墙网关(三明治)负载均衡
防火墙是基于会话开展业务的,即一个会话的请求和应答报文必须通过同一个防火墙。
为了保证防火墙业务正常进行,内部组网不受影响,需要采用双侧负载均衡,即防火墙三明治。
在这种组网环境中,对于流入流量,一级LB设备做防火墙负载均衡,二级LB设备保证从哪个防火墙进来的流量,还要从这个防火墙返回。
流出流量正好相反。
图10防火墙负载均衡流程图
表4防火墙负载均衡流程描述
LBDeviceA接收流量
LBDeviceA依次根据持续性功能、负载均衡调度算法选择一个Firewall,并将流量转发给该Firewall
由于防火墙基于会话开展业务,建议优先选用源地址散列算法
Firewall将流量转发给LBDeviceB
LBDeviceB作为二级LBDevice,记录转发该流量的防火墙,并将流量转发到目的地
LBDeviceB接收目的地发回的流量
LBDeviceB根据(4)中的记录将流量转发给同一个Firewall
Firewall将流量转发给LBDeviceA
LBDeviceA将流量转发回源地址
从以上一系列的说明可以看出——两台LBDevice之间并联的防火墙进行网络流量的负载分担,提高了网络的性能。
两侧的LBDevice和中间并联的防火墙——我们称之为三明治负载均衡。
服务对象为防火墙,提高防火墙组网灵活性。
没有特殊要求,适用于任何组网环境。
2.4
服务器负载均衡和网关负载均衡融合
网关负载均衡也可以和服务器负载均衡融合使用,以防火墙网关和服务器负载均衡综合组网为例,具体组网如图11所示。
图11防火墙网关和服务器负载均衡综合组网图
图中ClusterA为防火墙负载均衡的集群,ClusterB为NAT方式服务器负载均衡的集群。
综合组网的工作流程就是防火墙、服务器负载均衡流程的叠加。
这样的组网方式既避免了防火墙成为网络中的瓶颈,也提高了各种网络服务(如HTTP、FTP)的性能和可用性。
2.5
链路负载均衡
链路负载均衡根据业务流量方向可以分为Outbound链路负载均衡和Inbound链路负载均衡两种情况。
2.5.1
Outbound链路负载均衡
内网和外网之间存在多条链路时,通过Outbound链路负载均衡可以实现在多条链路上分担内网用户访问外网服务器的流量。
Outbound链路负载均衡的典型组网如图12所示。
图12Outbound链路负载均衡组网图
Outbound链路负载均衡包括以下几个基本元素:
LBdevice:
负责将内网到外网流量分发到多条物理链路的设备。
物理链路:
运营商提供的实际链路。
对外提供的虚服务IP,即用户发送报文的目的网段。
Outbound链路负载均衡中VSIP为内网用户发送报文的目的网段。
用户将访问VSIP的报文发送到负载均衡设备后,负载均衡设备依次根据持续性功能、ACL策略、就近性算法、ISP表、调度算法选择最佳的物理链路,并将内网访问外网的业务流量分发到该链路。
图13Outbound链路负载均衡流程图
表5Outbound链路负载均衡流程描述
LBDevice接收内网用户流量
LBDevice依次根据持续性功能、ACL策略、就近性算法、ISP表、调度算法进行链路选择
在Outbound链路负载均衡组网中,通常使用就近性算法或带宽调度算法实现流量分发
LBdevice按照链路选择的结果将流量转发给选定的链路
(4)
LBDevice接收外网用户流量
LBDev