12
HUAWEI USG6000V 系系 NFV 系系系系 ---系系系系系系系系系系系 华华华华华华华华 Huawei Technologies Co., Ltd.

market.huaweicloud.com–^.º" word/_rels/header3.xml.rels„ Ë Â0 E÷‚ÿ foS» ‘ ݈àVê É4 6 ’(ú÷ Ü( .ç^î9LÛ?ìÌî “ñNÀºª ‘“^ œ‡Ãj ,et gïHÀ“ ôÝrÑžhÆ\Fi2!±BqIÀ”sØqžäD

Embed Size (px)

Citation preview

HUAWEI USG6000V 系列 NFV 防火墙技术白皮书之---服务器负载均衡技术白皮书

华为技术有限公司

Huawei Technologies Co., Ltd.

服务器负载均衡技术白皮书 公开

目 录1 背景和概述...................................................................................................................2

2 全局服务器负载均衡(GSLB)....................................................................................3

3 本地服务器负载均衡(LSLB)....................................................................................4

3.1 使用目的 MAC 地址转换的服务器负载均衡(DR)................................................4

3.2 使用网络地址转换实现的服务器负载均衡(L4 SLB)...........................................5

3.3 使用轻量代理和网络地址转换的服务器负载均衡(L4 lwProxy SLB)...................7

3.4 使用全量 Socket 代理的服务器负载均衡(L7 Socket Proxy SLB).......................9

3.4.1 socket 代理加业务会话关联保持............................................................9

3.4.2 根据 URL 类型不同的分担,静态资源访问和动态计算访问分开多种服务器 10

3.4.3 SSL 卸载..............................................................................................10

3.4.4 链路优化:压缩、协议优化、本地 cache、多路复用..........................11

3.5 业务保持技术.......................................................................................................13

4 华为 USG 防火墙支持的 SLB 功能列表......................................................................14

Copyright ©2016 华为技术有限公司 版权所有,侵权必究

服务器负载均衡技术白皮书 公开

1 背景和概述随着互联网的快速发展,用户访问量的快速增长,使得单一的服务器性能已经无法满

足大量用户的访问,企业开始通过部署多台服务器来解决性能的问题,由此就产生了服务器负载均衡的相关技术方案。

在实际的服务器负载均衡应用中,由于需要均衡的业务种类以及实际服务器部署场景的不同(比如是否跨地域、跨 ISP 数据中心等),存在多种负载均衡的技术。如下典型的组网方式如图所示:

服务提供方为了支撑大批量的用户访问,以及跨不同地域、不同接入 ISP 的用户都能够获得高质量的业务访问体验,其已经在不同地域、不同 ISP 数据中心搭建了服务器,这样就带来一个需求,也就是客户的访问能够就近、优先选择同一个 ISP 数据中心的服务器,从而获得高质量的业务访问体验。

同时,基于单台服务器能够提供的业务访问并发是有限的,那么就自然想到使用多台Copyright ©2016 华为技术有限公司 版权所有,侵权必究 2

ISP B

ISP A

Local DNS Server

Global SLB

Local SLB

SLB

Local DNS Server

5

Internet DataCenter

Internet DataCenter

Access Network Side

Access Network Side

Server Array

服务器负载均衡技术白皮书 公开服务器来形成一个“集群”,对外展现出一个业务访问服务器,以满足大量用户访问、而且可以根据业务访问量的上升可以动态的进行业务能力扩容的需要。

归纳一下,我们将前一种定义为全局服务器负载均衡( GSLB: Global Server Load

Balance ) , 而 把 后 面 一 种 定 义 为 本 地 服 务 器 负 载 均 衡 ( LSLB: Local Server Load

balance),在实际使用中,这两种技术既可以结合起来使用,也可以单独只使用某一种技术。

2 全局服务器负载均衡(GSLB)全局服务器负载均衡一般通过干预 DNS 域名的查询的返回值,来决定客户访问服务器

的优选路径。服务器提供方会申请 DNS 域名,比如 www.abc.com,并将该域名的 IP 解析委托在服务提供方自己来解析,这里就是 GSLB 设备来替代的功能。

如图所示:1、 在客户接入网侧,客户需要访问诸如 www.abc.com 时,会向本地 DNS 服务

器发起域名查询Copyright ©2016 华为技术有限公司 版权所有,侵权必究 3

服务器负载均衡技术白皮书 公开2、 本地 DNS 服务器在本地查询是否有 www.abc.com 的 IP 记录,因为该域名为

委托到 GSLB 来解析,所以其将发起向 GSLB 的域名查询3、 GSLB收到查询请求后,会根据一定的判据(比如查询的来源方、距离哪个

IDC 路径更优等),将选定的最优站点的 IP 地址返回给客户接入侧的域名服务器

4、 客户接入网侧的域名服务器将该结果返回给客户机侧5、 客户方获得域名对应的经过优选过的 IP 地址,向该 IP 发起业务访问此种方式的优点是在一个全局的域名委托查询点即可以完成负载均衡,但也有明显的

缺点,一旦某个服务器出现故障,1、GSLB 并不能及时感知到故障,将其 IP 地址排除在返回的 IP 地址列表外,这样就会造成仍旧会有客户不断去访问已经故障的服务器,造成业务中断;2、客户侧以及本地 ISP 的 DNS 服务器均存在缓存,在缓存有效期内不会再向GSLB去发起查询,所以即使服务器故障被 GSLB 及时感知,也无法避免客户端仍旧访问已经故障的服务器。

为了解决上述问题,并且也由于存在单台服务器无法满足高性能并发的需要,引入了多台服务器做“集群”,实现对外一个业务访问的 LSLB 相关技术。

3 本地服务器负载均衡(LSLB)当部署一个服务器“集群”来提供一个业务访问服务器功能时,最为关键的节点就是

业务分发节点,这个就是本地服务器负载均衡设备的功能和核心价值所在。这里主要的价值点在于:大并发高性能、故障探测和自愈、性能可以动态扩展、其他增值特性(比如本地缓存加速、SSL 卸载等);主要的技术点包括:负载均衡算法、业务保持算法、业务可用性探测技术、业务流量分担技术、缓存技术、加密卸载技术等。

3.1 使用目的 MAC 地址转换的服务器负载均衡(DR)相对于网络地址转换方式的服务器负载均衡方式,DR 方式服务器负载均衡中只有客

户端的请求报文通过 SLB 设备,服务器的响应报文不经过 SLB 设备,从而减少了 SLB 设Copyright ©2016 华为技术有限公司 版权所有,侵权必究 4

服务器负载均衡技术白皮书 公开备的负载,有效的避免了 SLB 设备成为网络瓶颈。DR 方式下,SLB 设备分发服务请求时,不改变目的 IP 地址,而将报文的目的 MAC 替换为真实服务器的 MAC 后直接把报文转发给真实服务器。DR 方式服务器负载均衡的典型组网如图所示。

负载均衡设备将客户端的业务访问通过修改目的 MAC 地址的方式将其分担到内部的服务器上,但是服务器的回应请求不再返回给负载均衡设备,而是绕过负载均衡设备,直接返回给客户端,因此负载均衡设备只负责接受并转发请求,其网络负担就减少了很多,并且给客户端提供了更快的响应时间。

这种部署模式,因为只是更改了客户端请求报文的目的 MAC 地址,因此必然会要求负载均衡设备到内部服务器二层可达,即必须处在同一个 VLAN内;同时,虚拟的 MAC

地址必须能够响应来自客户端侧网络的二层 ARP 请求等;并且,内部服务器“集群”内成员的 IP 地址是同一个,为避免报 IP 地址冲突,相同的 IP 地址所在的服务器,必须对 ARP

采取静默模式,即不响应 ARP 请求,也不发送 ARP 请求和免费 ARP 通告。

3.2 使用网络地址转换实现的服务器负载均衡(L4 SLB)使用网络地址转换方式实现的服务器负载均衡,工作在第四层,其主要概念是将一个

虚拟 IP 地址映射到内部多个服务器的 IP 地址上,客户的访问均是首先到达虚拟 IP 地址,然后由负载均衡设备将其访问的目的 IP 地址替换为内部服务器的实际 IP 地址,多条业务的访问可以根据一定的分担算法到达不同的内部服务器上,从而达到负载均衡的目的。

Copyright ©2016 华为技术有限公司 版权所有,侵权必究 5

服务器负载均衡技术白皮书 公开

如图,服务器“集群”对外提供一个虚拟 IP 地址供业务访问,SLB 设备将业务对虚拟IP 地址的访问根据均衡算法分担到内部的实际服务器上。

此种工作模式下,负载均衡策略的优劣及其实现的难易程度有两个关键因素:一、负载均衡算法,二、服务器业务可用性探测技术。考虑到服务请求的不同类型、服务器的不同处理能力以及随机选择造成的负载分配不

均匀等问题,为了更加合理的把负载分配给内部的多个服务器,就需要应用相应的能够正确反映各个服务器处理能力及网络状态的负载均衡算法,业界常用的负载均衡算法包括:

轮询均衡(Round Robin)算法:即每一次来自网络的请求轮流分配给内部服务器,从 1至N 然后重新开始。此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。

权重轮循均衡(Weighted Round Robin)算法:根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。例如:服务器 A 的权值被设计成 1,B 的权值是 3,C 的权值是 6,则服务器 A、B、C 将分别接受到 10%、30%、60%的服务请求。此种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。

随机均衡(Random)算法:把来自网络的请求随机分配给内部中的多个服务器。

权重随机均衡(Weighted Random)算法:此种均衡算法类似于权重轮循算法,不过在处理请求分担时是个随机选择的过程。

最小响应速度均衡(Response Time)算法:负载均衡设备对内部各服务器发出Copyright ©2016 华为技术有限公司 版权所有,侵权必究 6

服务器负载均衡技术白皮书 公开一个探测请求(例如 Ping),然后根据内部中各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求。此种均衡算法能较好的反映服务器的当前运行状态,但这最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间。

最少连接数均衡(Least Connection)算法:客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间加长,如果采用简单的轮循或随机均衡算法,每一台服务器上的连接进程可能会产生极大的不同,并没有达到真正的负载均衡。最少连接数均衡算法对内部中需负载的每一台服务器都有一个存活连接数量的计数,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。此种均衡算法适合长时处理的请求服务,如 FTP Server。

为了避免服务器故障而引起的客户访问失败,负载均衡设备需要探测服务器是否故障从而避免将客户访问继续分配到已经故障的服务器上,这就是服务器业务可用性探测技术业界常用的探测技术包括:

icmp 探测:也就是 ping探测,即通过 ping 的方式检测服务器及网络系统状况,此种方式简单快速,但只能大致检测出网络及服务器上的操作系统是否正常,对服务器上的应用服务检测就无能为力了。

tcp 探测:通过检测服务器上某个 TCP端口(如 Telnet 的 23口,HTTP 的 80口等)是否开放来判断服务是否正常。

http 探测:通过向 HTTP 服务器发出一个对某个页面文件的访问请求,根据是否能获得该页面文件来判断服务器是否出现故障。

3.3 使用轻量代理和网络地址转换的服务器负载均衡(L4 lwProxy

SLB)纯粹的网络地址转换型的 SLB,由于不解析应用层的内容,因此无法根据应用层信息

做业务会话关联保持。Copyright ©2016 华为技术有限公司 版权所有,侵权必究 7

服务器负载均衡技术白皮书 公开注 :业务会话关联保持,是指将属于同一个应用层会话的多个连接定向到同一真实服

务器,从而保证同一业务由同一个服务器处理(或链路转发),这样可以避免同一应用层会话访问多台服务器时,多台服务器需要做相关业务数据的热同步(比如在一台真实服务器上认证,再访问另一台真实服务器时,就必须将认证信息同步过来,以避免用户的再次认证)。

使用轻量代理和网络地址转换的服务器负载均衡,1、是 SLB 需要对客户端发起的TCP做三次握手代理;2、对 TCP传输的第一个报文做关联保持功能;3、对后续报文做网络地址转换。

下面以一个例子来举例说明基于 http cookie或 URL 负载分担的业务会话关联保持下的轻量代理和网络地址转换 SLB 的实现:

如图所示:1、 客户端发起 tcp三次握手,SLB 设备对其代理,建立 TCP 全连接2、 客户端发起 tcp payload,也就是 http get/post报文,如果之前客户端已经和服务

器建立过连接,那么会在该报文中携带 cookie 等信息,SLB 设备对该信息做分析,Copyright ©2016 华为技术有限公司 版权所有,侵权必究 8

服务器负载均衡技术白皮书 公开以保持该客户端仍旧访问同一台真实服务器

3、 SLB 设备做NAT 地址转换,将目的地址替换为真实服务器地址,并发起向该真实服务器的 tcp三次握手

4、 SLB 设 备 将 tcp payload 报文(包括第一 个 http get/post 报文)做完 tcp

sequence、offset、checksum调整后,直接发往真实服务器注 :为什么说是轻量代理?因为相对于 socket 代理,此处仅做了 tcp三次握手代理,

而后续报文仅对 tcp sequence、offset、checksum做了调整,而无需进入 tcp/ip 协议栈处理,所以是轻量代理。

此种方案的优点在于有一定的应用层的业务会话保持能力,而且因为是轻量代理,性能会比较高;但也有一定的限制,如必须是 tcp三次握手之后的第一个报文即能带有做会话保持的判据信息(如 http cookie),如果不是第一个报文,则这种方案无法应用。

3.4 使用全量 Socket 代理的服务器负载均衡(L7 Socket Proxy

SLB)为解决单纯 L4 网络地址转换方式或者轻量代理方式下无法针对某些应用做业务会话保

持的问题,那么就引入了全量 socket 代理的服务器负载均衡方式。在全量 socket 代理的框架下,一些更精细化的业务访问优化就有了实现的基础,比如根据 url 类型做访问路径的优化、ssl 的代理加速、报文压缩、协议优化、cache缓存、多路复用等,下面就这些内容做进一步的说明。

Copyright ©2016 华为技术有限公司 版权所有,侵权必究 9

服务器负载均衡技术白皮书 公开

3.4.1 socket 代理加业务会话关联保持

如图所示,客户端与 SLB之间建立 tcp 会话后,客户端将 payload 全部发往 SLB 设备,SLB 设备根据应用层信息解析,根据应用层业务会话保持算法,选择正确的目的服务器,SLB 设备向真实目的服务器发起并建立 tcp 会话,将来自客户端的 payload信息转发给真实的目的服务器(根据需要,也可以针对 payload内容做一定修改),完成业务访问。

此种场景下,两侧是独立的 socket连接,因此 payload 可以理解为是两侧完全独立的,这种优点就在于可以灵活地根据应用层协议的不同而分别开发不同的应用层业务保持算法并可在此基础上扩展出应用优化、加速的各种方案。但这种方案的性能是不如直接的网络地址转换方案或者轻量代理的方式的。

3.4.2 根据 URL 类型不同的分担,静态资源访问和动态计算访问分开多种服务

我们知道,对于大型的 Web 服务器来讲,其承载的内容既包括静态页面(如 html,图片等),也包括动态页面(如各种 asp、CGI脚本),一般来讲,静态和动态资源的处理Copyright ©2016 华为技术有限公司 版权所有,侵权必究 10

服务器负载均衡技术白皮书 公开对于服务器来讲,其处理的有效性能是不一样的,处理动态资源的响应时间大大超过处理静态资源的响应时间。有了 socket 的全代理,再根据不同 url 类型来部署单独的服务器资源,将不同资源的访问动态分配到不同的服务器资源,让更多的服务器资源来响应较为复杂的动态资源访问请求,可以大大改善客户访问的体验。

3.4.3 SSL 卸载

随着越来越多的网站考虑到传输的安全性,使用加密的 https 来替代传统非加密的 http

的访问,正在成为一种趋势,而 https 加密会消耗大量的服务器处理性能;而作网关类设备来讲,在硬件设计之初就考虑了加解密的高性能,其可以使用硬件协处理的能力提升加解密的性能。因此使用硬件 SLB 设备来卸载服务器的 https 加解密处理,是保证 https 业务访问的高性能的一种可行方案。

SSL 代理,也叫 SSL反向代理,其基本的方案流程如下:

Copyright ©2016 华为技术有限公司 版权所有,侵权必究 11

服务器负载均衡技术白皮书 公开

服务器部署时,需要预先将服务器证书导入到 SLB 设备中,客户端与 SLB 设备进行SSL 协商并建立 SSL Socket,SLB 设备再与真实服务器建立非加密的 Socket连接,客户端发往服务器的 payload信息首先在 SLB 设备进行 SSL 解密,SLB 将解密后的 payload 发往后端的真实服务器,以卸载真实服务器需要处理 SSL 协商、加解密的处理,达到业务访问的高性能。

3.4.4 链路优化:压缩、协议优化、本地 cache、多路复用

在全 Socket 代理的 SLB 服务器负载均衡部署方式下,可以针对客户端与服务器之间的传输链路做相关的链路优化,以提升业务访问性能和减少带宽的占用,以下对此类优化做一些简单的描述:

压缩:可以将服务器传输给客户端的页面内容等做压缩,以减少客户端到服务器之间的带宽消耗;

协议优化:SLB 设备通过 TCP 优化技术,如改进 TCP 的拥塞控制算法,来优化客户端到 SLB 设备的 TCP传输链路,达到减少带宽,提高传输效率的效果;

Copyright ©2016 华为技术有限公司 版权所有,侵权必究 12

服务器负载均衡技术白皮书 公开

本地 Cache:SLB 设备提供本地缓存的能力,将客户端频繁访问的(特别是静态页面、大文件等)资源缓存在本地,就近提供给客户端,可以大大减少服务器的处理压力;

多路复用:SLB 设备可以将客户端对多个资源的持续访问合并成一条到服务器的访问,可以降低服务器对于并发响应的要去,提升业务访问整体体验。

Copyright ©2016 华为技术有限公司 版权所有,侵权必究 13

服务器负载均衡技术白皮书 公开

3.5 业务保持技术在大多数电子商务的应用系统或者需要进行用户身份认证的在线系统中,一个客户与

服务器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成。由于这几次交互过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次交互过程的处理结果,或者上几步的交互过程结果,服务器进行下一步操作时需要这就要求所有这些相关的交互过程都由一台服务器完成,而不能被负载均衡器分散到不同的服务器上。

而这一系列的相关的交互过程可能是由客户到服务器的一个连接的多次会话完成,也可能是在客户与服务器之间的多个不同连接里的多次会话完成。不同连接的多次会话,最典型的例子就是基于 http 的访问,一个客户完成一笔交易可能需多次点击,而一个新的点击产生的请求,可能会重用上一次点击建立起来的连接,也可能是一个新建的连接。

会话保持就是指在负载均衡器上有这么一种机制,可以识别做客户与服务器之间交互过程的关连性,在作负载均衡的同时,还保证一系列相关连的访问请求会保持分配到一台服务器上。常见的业务保持技术包括简单会话保持(源地址会话保持)、HTTP Header 的会话保

持,基于 SSL Session ID 的会话保持、基于 HTTP Cookie 的会话保持、以及基于特定应用的业务保持技术,比如 SIP 会话 Call-ID 保持等。

Copyright ©2016 华为技术有限公司 版权所有,侵权必究 14

服务器负载均衡技术白皮书 公开 简单会话保持:即通过源地址会话进行保持,同一个源 IP 来的业务访问,将其

HASH 到同一个服务器上,这种方式实现简单,不需要解析应用层信息,但对于源 IP 复用比如有源 NAT 转换后的业务访问不能生效,最坏的情况会导致负载分担失效;

应用层的会话保持:此种方式下,SLB 设备需要解析对应的应用层协议从而根据不同的应用层协议进行对相应应用信息字段进行处理,根据这些信息字段来标记是否为同一个客户端的访问,这种方式的好处是业务支撑地较好,缺点就是协议解析需要耗费 SLB 设备的性能;上面所述的 HTTP Header、SSL SessionID 等都属于该类技术。

4 华为 USG系列防火墙支持的 SLB 功能列表    USG6000 USG6000V

GSLB   ○ ○

LSLB

DR ○ ○L4 SLB ● ●L4 lwProxy SLB ○ ○L7 Socket Proxy SLB ○ ●

健康检查

ICMP ● ●TCP ● ●DNS ● ●Radius ● ●HTTP ● ●

负载分担算法

简单轮询 ● ●加权轮询 ● ●最小连接算法 ● ●加权最小连接算法 ● ●源 IP哈希 ● ●加权源 IP哈希 ● ●HTTP URL 分担 ○ ●HOST 分担 ○ ●

Copyright ©2016 华为技术有限公司 版权所有,侵权必究 15

服务器负载均衡技术白皮书 公开

HTTP Referer 分担 ○ ●

会话保持算法源 IP 保持 ● ●HTTP Cookie ○ ●SSL Session ID ○ ●

高级特性

SSL 卸载 ○ ●HTTP 压缩 ○ ○TCP 协议优化 ○ ○本地 Cache ○ ○多路复用 ○ ○

Copyright ©2016 华为技术有限公司 版权所有,侵权必究 16