负载均衡技术白皮书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

应用交付产品技术白皮书
目录
第一章应用交付产品的概念及核心价值 (4)
1.1ADN应用交付网络的概念 (4)
1.2应用交付产品的核心价值 (5)
第二章天清ADC应用交付解决方案总体介绍 (6)
2.1方案构成 (6)
服务器负载均衡 (7)
全局负载均衡 (8)
链路负载均衡 (9)
2.2部署方式 (11)
串行部署三层接入 (11)
串行透明部署 (11)
旁路部署三层接入 (12)
旁路部署透明接入 (12)
旁路部署之三角传输 (13)
第三章服务器负载分担 (13)
3.1服务器负载分担 (13)
3.1.1负载分担算法 (14)
3.1.2健康检查策略 (15)
3.1.3会话保持策略 (16)
3.2七层内容交换 (19)
3.3HA高可靠性与设备集群 (20)
3.3.1HA高可靠性 (20)
3.3.2设备集群 (22)
第四章应用优化与加速 (23)
4.1SSL硬件加速和卸载 (24)
4.2本地RAM Cache (24)
4.3内容压缩 (25)
4.4TCP连接复用 (25)
4.5TCP单边加速 (26)
4.6HTTP管线(Pipelining) (27)
4.7窄带用户应用加速 (29)
4.8重写Rewrite (29)
第五章链路负载分担 (30)
5.1出站流量负载均衡(Outbound方向) (30)
负载分担算法 (30)
链路健康检查 (32)
出站流量会话保持和NAT (32)
5.2入站流量负载均衡(Inbound方向) (33)
智能DNS解析流程 (34)
第六章全局负载分担 (35)
6.1全局负载分担策略 (36)
6.2动态就近性 (36)
6.3静态就近性策略 (39)
6.4IP Anycast技术 (39)
6.5基于HTTP重定向的全局负载均衡 (40)
第七章应用安全防护 (41)
7.1应用安全防护 (41)
7.2启明星辰应用交付解决思路 (42)
7.3主要安全功能 (43)
第一章应用交付产品的概念及核心价值
1.1ADN应用交付网络的概念
Internet本质上是一种端到端(end-to-end)的技术,任何一个复杂的应用,最终都会归根于在Client和Server之间的数据交互,而其所经过Internet的环节却纷繁复杂,对于应用的运营者来说,其中的任何一个环节处理不好,都会导致业务的无法正常提供或者效率低下。

比如:
∙应用系统的性能瓶颈,稳定性,可扩展性的问题;
∙跨运营商访问时因路由瓶颈而导致的网络延迟问题;
∙宽带用户和窄带用户(移动终端)并存时的合理分发和访问效率问题;
∙应用系统所面临的网络攻击等安全性等问题;
∙应用系统的整体运行效率和改善用户体验问题等等。

Application Delivery Networks(ADN),正是面向于保障Client和Server之间稳定且高效的数据交互而提出的一套技术体系,其主要是面向基于浏览器(Web-Based)并借助于Internet向用户提供服务的业务模式。

ADN产品按照国际著名资讯机构Gartner 的阐述,主要是包含广域网优化WAN Optimization Controller(WOC)和应用交付控制
器Application Delivery Controller(ADC)两个领域。

广域网优化产品,主要是用于在多个数据中心,或者总部和分支机构之间进行数据的压缩以提升传输效率,节约带宽成本。

ADC产品是从负载分担(Load Balance)产品演进而来,负载分担产品通过对外提供唯一的访问IP地址(虚拟服务VS),对内通过地址池(Pool)关联多个提供相同服务的节点(Server),这样就可以把进入的流量按照事先定义好的策略分发给这些服务器,同时监控这些服务器的状态,当某个节点失效时,可以把流量重新分配到其他正常的服务器上。

运营者可以随时增加或者减小这组服务器的数目,以满足业务变化的需要。

这样就实现了WEB 服务器侧的可用性和弹性扩展。

ADC除了具备负载分担的功能外,更关注的是整个应用交付的各个环节,包括Client 侧,Server侧及数据交互经过网络节点的整体效率。

ADC可以根据用户访问的内容做更精细化的流量分担,可以根据用户自身的信息如浏览器类型,Cookie等七层信息做内容交换。

ADC能够识别出应用,并且进行加速和优化处理。

同时,ADC设备可以对服务器的压力进行卸载(Off-Load)--包括SSL协议,内容压缩,Cache,TCP链接等,让服务器资源重点服务自身的业务系统,从而提升整个系统的效率。

1.2应用交付产品的核心价值
应用交付产品关注整个应用交付的环节,核心价值是为了保障应用的:
高性能---满足业务发展的需要,并具备足够的弹性扩展。

高效率---服务器压力卸载,提升整个业务系统效率。

高可用---业务的备份和冗余。

保障业务的不间断稳定运行,并提升用户体验。

安全性---保障业务安全,防止入侵和数据泄漏。

第二章天清ADC应用交付解决方案总体介绍启明星辰基于深厚的技术积累,不断探索专业有效的ADC解决方案以保障用户应用连续可靠运行的同时,节约用户的投资效率,并带来更好的用户体验。

2.1方案构成
为了满足IT应用有效、快速、安全交付的需求,启明星辰推出天清ADC应用交付平台的整体解决方案,包括:服务器负载均衡,应用优化与加速,链路负载均衡,全局负载均衡,
广域网优化,安全防护等全系列产品。

服务器负载均衡
服务器负载均衡主要是对访问服务器和服务器返回的流量进行管理,天清ADC应用交付平台通过多种静态和动态负载分担算法,把访问服务器的流量智能的分发给最佳的服务器。

同时,天清ADC应用交付平台利用自身的多核高性能硬件平台和VBOS软件系统的优势,对流量进行实时压缩,缓存,硬件加解密等处理,把原本需要耗费服务器大量性能的计算接管过来,使服务器系统只进行业务相关的处理,以实现整个业务系统的加速和效率提升。

天清ADC服务器负载均衡方案包括:负载分担,应用加速,服务器卸载等几个部分。

与此同时,天清ADC应用交付平台还提供专业的抗拒绝服务攻击、状态防火墙及Web 应用防火墙功能,进一步提升应用的安全性和可靠性。

全局负载均衡
全局负载均衡-GSLB(Global Server Load Balance)是通过在全球部署多个数据中心来保护业务站点不受访问中断的影响,并且提升整体业务系统响应能力的一种解决方案。

通过部署天清ADC应用交付平台,可以在多个数据中心之间进行流量分担,并进行数据中心间的冗余和灾备。

同时天清ADC应用交付平台可以根据智能算法,把某个用户的访问引导到距离他最近,延迟最小的数据中心,即实现了整个业务系统的可扩展性,也有效的提升了用户体验。

天清ADC应用交付平台内置智能DNS系统和IP地理位置信息库,企业可以把ADC 设备作为域名授权发布服务器,配置多个数据中心的IP地址对应该域名DNS A记录。

当接收到某个用户的DNS请求时,通过判断该用户所处地域,并结合动态探测算法或者静态
策略返回该域名对应的最佳数据中心地址。

天清ADC应用交付平台除了具备动态智能解析方式外,还提供静态就近性策略,HTTP 重定向和IP AnyCast技术等多种全局负载分担解决方案。

可以为企业提供最灵活的选择方式,并能够和其他全局负载分担产品实现网络兼容。

链路负载均衡
根据中国的运营商接入现状,企业往往选择同时租用多条运营商线路以实现企业接入Internet时的链路备份和带宽叠加。

天清ADC应用交付平台可以动态监控链路的实时状态,提供多种静态和动态流量分担方法,可以有效提升多链路接入的效率和整体性能。

当企业部署对外提供服务的应用服务器时,天清ADC应用交付平台可以根据用户所处的运营商网络,或者地域的远近,或者当前链路的带宽质量进行智能DNS解析,帮助用户选择最优的链路进行访问,有效避免跨运营商访问时造成的带宽瓶颈和延迟增大等问题,提供最佳的用户体验。

∙Outbound出站方向访问
内网用户向外发起连接请求时,天清ADC应用交付平台产品提供多种静态和动态链路分担算法,选择当前最合适的链路分配流量。

静态算法包括:轮询,比率,加权等。

动态算法包括:最小连接,最小流量,最小延迟等等。

天清ADC应用交付平台支持运营商路由选择,根据用户请求地址所出运营商来选择和其匹配的运营商链路出口,这样就避免了跨运营商访问的效率低下问题。

∙Inbound入站方向访问
当企业内部提供对外的服务的业务系统时,如ERP系统,邮件系统或者其他在线业务交易系统时,可以把天清ADC应用交付平台作为授权域名发布服务器,把多个运营商链路接入IP地址绑定到同一个域名A记录上。

这样,结合运营商IP位置信息库和静态配置策略,ADC能够智能的处理外部用户DNS请求,返回最佳的链路接入地址。

2.2部署方式
天清ADC应用交付平台支持串行接入,并行接入,三层接入,透明模式接入,DSR模式等多种接入方式,企业可以根据当前的网络运行状况和业务规划选择最合适的接入方式。

串行部署三层接入
这种模式下,天清ADC应用交付平台串行接入到网络中,所有流量都先经过ADC设备处理,通常情况下,ADC设备上的虚拟服务(VS)配置为公网IP地址,内部的服务器则配置为私有IP地址。

典型的串行网络结构如下,天清ADC应用交付平台采用HA方式,和上下层交换机采用双链路交叉连接,网络结构清晰,并且具备很强的冗余性和可靠性。

串行透明部署
这种部署模式可以不改变用户的现有IP地址结构,ADC设备的虚拟服务地址(VS)和服务器处在一个网段,当ADC设备出现单点故障,或者性能无法满足时,可以临时采用
Bypass策略绕过ADC设备。

串行接入透明部署的工作原理类似于正常的串行接入。

旁路部署三层接入
旁路方式部署ADC产品,不需要对现有运行着网络结构进行改变,可以方便快速的把ADC部署到网络中,ADC的工作模式和串行部署比较相近,ADC的虚拟服务配置为公有地址,内部服务器配置为私有IP地址。

ADC设备和服务器分别属于交换机不同的VLAN,ADC在分发数据给服务器时,进行源IP地址转换,把发给服务器的报文源IP地址改为ADC 设备自身的IP地址,以保证服务器返回的流量也经过天清ADC应用交付平台。

旁路部署透明接入
原理类似旁路部署三层接入,不同是天清ADC和服务器划分到一个VLAN里面,天清ADC的VS地址和服务器配置为同一个IP网段,这种情况下可以把服务器的网关地址指向ADC设备的IP地址,ADC设备使用真实的客户端地址和服务器建立连接,而不需进行NAT 源地址转换。

旁路部署之三角传输
三角传输,也叫Direct Server Return(DSR)模式,是旁路部署的一个特例,这种模式下只有入站方向流量进入到ADC设备,由ADC设备根据预先配置好的负载分担策略进行流量分发,而服务器返回的流量不经过ADC设备。

由于互联网的流量具有典型的非对称性,即请求方向上的流量比较小,绝大多数流量集中在服务器响应的方向上,所以如果让ADC 设备只处理请求方向的流量,服务器返回的流量直接返回给客户端不经过ADC设备,就大大提升了ADC的处理能力。

三角传输模式无法支持一些需要修改服务器返回数据的功能,如基于Cookie的会话保持,响应重写等七层功能。

也无法实现缓存和内容压缩等功能。

第三章服务器负载分担
3.1服务器负载分担
ADC在设备上建立一个或多个虚拟服务VS(IP:Port),来映射内部的服务器组来对外提供的一种或者多种应用。

内部服务器被加入到地址池中(Pool),当有外部流量访问VS
时,ADC通过预先配置好的负载分担算法,从地址池中选择一台可用的服务器作为应用提供者。

同时ADC实时对每个服务器节点进行健康检查,当某一台出现故障无法正常提供服务时,把该服务器从Pool中的可用列表移出,不再向其分发流量。

3.1.1负载分担算法
天清ADC应用交付平台支持丰富的负载分担策略,即可以根据预先配置的静态算法,也可以根据当前的运行状态进行动态算法的负载分担。

静态算法包括:
∙轮询(Round Robin)-依次按照顺序把流量分配给每台服务器。

∙比率(Ratio)-根据服务器的性能为每个服务器指定一个权值,按照这个比率给服务器分配流量。

∙优先级(Priority)-当使用多组服务器时,为每个服务器组指定一个优先级,默认情况下优先向高优先级的服务器组分配流量,当该组服务器失效时选择备
份服务器组。

动态算法包括:
∙最小连接(Least Connection)-ADC优先把流量分配给当前连接数最少的
∙最快模式(Fastest)-ADC通过比对服务器返回数据包的延迟情况,选择一个当前响应最快的服务器来分配流量。

∙SNMP监控-设备上通过SNMP客户端来读取服务器的实时运行状态,包括CPU,内存和I/O信息,为每种实时信息配置门限值,当超过这个门限值时
不再向这台服务器分配报文。

∙观察模式(Observed)-结合最小连接和最快模式两种结果,选择最佳平衡为依据为新的请求选择服务器。

服务器平滑接入和退出:
当有新的服务器接入或者服务器重新启动时,ADC系统可以把流量逐步分配给新接入的服务器,避免服务器的某些进程还没有加载完成而导致系统资源占用过
高,或者应用响应缓慢的情况,实现服务器的平滑接入。

管理员也可以手工方式操
作把某台服务器退出流量分担机制,此时ADC系统不再分配新的流量给该服务器,
该服务器的现有连接继续保持,直至连接结束。

3.1.2健康检查策略
健康检查是指对服务器的运行状态定期进行实时检测,一旦发现服务器故障,将把该服务器移出流量分担的队列。

天清ADC应用交付平台提供丰富的健康检查策略,和负载分担算法组合到一起,就可以实现非常灵活的负载分担策略。

∙TCP SYN-向目标服务器发送TCP SYN报文,如果得到正确的回复表示服务器工作正常。

∙Ping-向目标服务器发送ICMP请求报文,如果得到正确回复表示服务器工作
∙HTTP/HTTPS Get-向目标系统发送HTTP或HTTPS协议的Get报文,请求一个指定的URL,如果得到正确回复表示服务器工作正常。

3.1.3会话保持策略
会话保持是指流量一旦按照负载分担策略分配给某个服务器后,后续的相关请求报文同样分配给同一台服务器,以保障业务的连续性。

比如,很多电子商务相关的应用系统或者需要用户身份认证的系统,用户和服务器间会进行多次的数据交互才能完成一笔交易或者身份认证过程,必须把这个过程的交互报文分配给同一个服务器。

天清ADC应用交付平台支持6类共8种会话保持的方法,即可以根据源IP地址,ServerID等静态信息来做会话保持,也可以通过Cookie插入和重写来实现更高级的会话保持方法。

每种会话保持的效率,粒度和应用场景有所不同,对应用服务器的配置要求也不一样。

基于源IP的会话保持只需要处理数据包的四层信息,所以效率最高,也不需要服务器做任何配置,但粒度比较粗。

如果客户端存在普遍的NAT转换,或者某些IP段的业务请求量比较大,那么这些流量被保持发送给固定一台服务器,就会造成流量负载的不均衡。

基于Cookie插入,Cookie重写,ServerID等七层信息的会话保持方式,使保持策略和浏览器的信息相互关联,可以做到细粒度和更均衡的流量分配,基于七层信息的会话保持方式,工作效率不如源IP会话保持。

除Cookie插入方式以外,其他如serverid,sessionid, Cookie重写等方式一般需要应用程序做相应的配置。

天清ADC支持的会话保持方式:
∙基于源地址-来自同一个源IP地址的相关报文,分配给同一个服务器。

∙基于ServerID-记录服务器返回的serverid信息,然后从请求报文的URL或
Cookie信息中查找serverid,进行解码得到后台服务器的信息,保证带有固定serverid信息的请求被分别到固定的服务器。

Serverid需要在web服务器上进行人工配置。

ADC不需要对数据包进行修改
∙基于SessionID-类似于ServerID的方式,记录从服务器返回的SessionID信息,然后从请求报文的URL或Cookie信息中查找SessionID,进行解码得到后台服务器的信息,保证带有固定SessionID信息的请求被分别到固定的服务器。

SessionID是服务器自动生成的,ADC产品不需要对数据包进行修改。

∙基于Cookie插入-这种方式通过修改服务器返回的报文,向其插入一个固定的Cookie信息返回给客户的浏览器,客户端后续的报文请求中都携带了这个Cookie 信息,ADC根据这个信息发送给指定的服务器。

这种保持方式修改了数据包的长度,但不需要应用服务器端做任何的配置改动就可以实现。

∙基于Cookie重写-服务器端接收到HTTP请求后,响应报文中会增加一个空白的Cookie返回给ADC设备,ADC在这个空白的Cookie里面写入会话保持的数值,返回给客户端。

后续的过程和Cookie插入类似,客户端后续的请求报文会携带这个重写的Cookie,ADC根据这个信息来选择指定的服务器。

Cookie重写和Cookie插入的区别是,Cookie重写不需要修改报文的长度,效率会高一些。

∙基于自定义头部-应用服务自身定义了一个URL Header信息,并希望ADC以此来做负载分担。

这种方式下ADC设备记录服务器返回的Header信息,并在客户端的后续请求中进行匹配,匹配成功则转发给指定的服务器。

这种方式允许应用服务程序定制自己的会话保持策略。

∙基于SSL SessionID-当第一次请求到来时,按负载均衡算法分配一台后台服务器。

在服务器的响应中,按照SSL协议,取出SSL SessionID,并把SSL SessionID 分配的后台服务器信息、所配置的超时时间存在一张表中。

当后续请求到来,根据
请求中的SSL SessionID在表中查找后台服务器的信息,若找到并且时间在超时
时间之内,则取出后台服务器信息,并更新超时时间,把请求发往那台服务器。

3.2七层内容交换
四层交换主要是依赖IP和TCP/UDP层的信息进行流量的分配,而随着应用自身的复杂性和不断改善用户体验的需求,有时候需要为不同的用户类型返回不同的呈现内容,例如:
∙把移动用户的手机/pad浏览器请求分发给专门经针对性过优化的服务器。

∙把请求图片,文档,视频等静态内容分发给缓存服务器。

∙根据浏览器自身的语言设置,为不同语言区域的用户返回相应的页面
∙可以根据HTTP请求的方法实现读写分离,HTTP读(get)请求分配给缓存服务器,HTTP写(post)请求分配给处理动态内容的服务器。

天清ADC应用交付平台的七层内容交换可以识别用户请求报文的内容,如URL 信息,应用数据类型,Cookie信息,浏览器类型,HTTP方法等内容,将流量分配给相应的应用服务器。

天清ADC应用交付平台通过http-class来标识一个业务分类,http-class根据主机地址,URI路径,头信息和Cookie来定义,每个http-class可以关联一个服务器地址池,然后再虚拟服务(VS)的配置中,引用一个或者多个http-class。

当客户端请求访问虚拟服务时,ADC设备进行http-class匹配,匹配成功的请求被分配给对应的地址池。

3.3HA高可靠性与设备集群
3.3.1HA高可靠性
天清ADC支持双机Active-Standby(主-备)和Active-Active(主-主)两种工作模式,HA在运行过程中,通过专用“心跳线”来实时监控对端设备的运行状态,当心跳监控失败,或者发生其他触发切换的条件时,工作异常设备上的流量将被接管,以保证应用的不间断运行。

天清ADC的HA模块支持配置同步和连接信息同步。

主备模式:两台ADC设备中只有一台处于Active状态,另外一台处于Standby状态,所有流量由处于Active状态的设备进行流量转发。

处于Standby状态的备用设备通过”
心跳线“实时监控主设备的运行状态,当监控不到正常的心跳报文时,备用设备切换为Active状态,并通过免费ARP更新上下游设备的ARP缓存以实现流量接管。

除了备份设备发现主设备心跳异常时主动接管以外,当前处于Active状态的主设备也可以根据一些触发条件主动退出Active状态。

触发条件包括:设备上启用端口状态监控和预置的远端IP地址是否可达。

主主模式:两台ADC设备同时都处于Active状态并一起承担流量的转发工作,两台ADC设备上面运行不同的VS(虚拟服务),当某台ADC设备出现故障时,该设备上运行的所有虚拟服务流量被另外一台设备接管。

通常情况下,主主模式可以配合DNS负载分担一起工作。

当用户申请访问时,首先发起DNS请求,DNS服务器上对应主机名为这条记录配置两个VS对应的IP地址,DNS会采用轮询的方式返回这两个IP中的一个以实现负载分担。

3.3.2设备集群
天清ADC最多可以实现32台ADC设备进行集群部署,多台ADC设备共同承担流量处理并且互为备份。

集群中的ADC设备可以是不同的型号,具备不同的处理能力,这样对于更新换代的设备,也可以重新接入到集群中来。

通过集群部署,企业可以实现最大化的业务弹性,并实现设备投资收益的最大化。

集群部署时可以采用全工作模式,即所有设备都参加流量转发,互为备份,当某台出现故障时,流量切换到其他设备上;也可以采用N+1模式,即N台设备承担流量转发,利用
一台设备同时作为N台设备的备份,正常情况下不备份设备不承担流量,当某一台设备出现故障时,备份设备进行流量接管。

N+1模式可以防止当某台设备出现故障时,对另外的设备造成流量洪峰。

第四章应用优化与加速
天清ADC应用交付平台可以把原本需要高消耗服务器计算能力的,重复计算的工作卸载到高性能的硬件平台上,让服务器的计算资源更多的关注自身的业务系统处理,以改善整个应用系统的效率。

天清ADC同时对TCP和Http协议进行优化和加速,最大限度的降低网络拥塞和丢包,改善移动上网等窄带用户的用户体验。

天清ADC应用交付平台内置了企业最常用的应用模板,如BEA Weblogic,Microsoft IIS,Outlook Web Access,Radius,ERP软件等,这些都是经过公司应用优化专家通过反复的测试验证而完成的一套解决方案,管理员不需要对应用进行细致的了解,就可以根据模板高效的完成这些应用系统的优化和加速。

4.1SSL硬件加速和卸载
天清ADC应用交付平台通过内置的专业级高性能硬件加速芯片,完成对SSL协议的加速和卸载,而在数据中心内部,ADC和服务器之间通过明文进行传输,极大的提升服务器的业务处理能力。

企业可以把应用全部应用实现SSL协议,实现高安全性的同时,不会给业务带来任何的性能瓶颈。

4.2本地RAM Cache
本地高速缓存(Cache),通过在ADC设备上开辟一段专用的内存空间(RAM)来存
储服务器上的一些静态文件,如图片,文档,视频文件等,开启本地Cache后,客户端请求首先在本地Cache中查找,命中以后直接返回给客户端。

命中失败才向服务器端发送请求,同时对服务器返回的内容进行本地Cache。

天清ADC支持为不同的应用提供各自的Cache空间及参数设置,这样可以把服务器从重复的处理中解脱出来,提升整体效能。

4.3内容压缩
通过压缩HTTP响应的数据,可以有效提升带宽利用率和缩短下载时间。

天清ADC应用交付平台提供的高性能压缩技术,最大可以使带宽利用率增加80%,应用性能提升4倍以上。

同时在客户端浏览器和ADC设备间经过一定的算法进行压缩,也起到一定安全传输的作用。

天清ADC把原本由服务器完成的压缩过程搬到自身的高性能硬件平台,避免了每台服务器都执行一次重复的压缩过程,达到服务器卸载的效果。

天清ADC支持浏览器最常用的GZIP和DEFLATE两种压缩算法,提供基于七层的精细化压缩控制策略,包括URI,Content Type等。

管理员可以定义对“\.txt”,“\.doc”“\.htlm”等文档类型和静态页面数据进行压缩,也可以排除PDF,IMG等压缩效果不明显的不必要操作。

4.4TCP连接复用
TCP连接复用技术使多个客户端共享一个到服务器的TCP连接,可以提升应用服务器的整体性能,使应用服务器从维护海量的TCP连接,并不断的进行TCP建立和拆除维护中解脱出来,极大的提升单台服务器的承载能力。

相关文档
最新文档