如何实现CDN内容发布网全局负载均衡
CDN全局负载均衡:负责通过静态或动态的方式为用户的请求在CDN范围内的各个站点中选择最佳的访问站点。这是实现CDN性能优化的关键。通常采用专业负载均衡设备。
全局负载均衡与内容请求路由实现机制
内容服务的请求路由机制(RRSRequestRoutingSystem)是CDN 网络规划中最关键的因素之一,它的设计直接关系到CDN 的核心思想:就近服务,能否实现。而全局负载均衡策略又是整个内容请求路由机制设计的基石,它的主要内容包括就近性判断和服务重定向机制,全局负载均衡的成功与否直接关系到最终用户的访问成功与质量。
Radware提出有关内容发布网CDN全局负载均衡与内容请求路由的实现机制。
CDN系统设计原则
内容路由的设计涉及到就近性判断、重定向机制和流量分配策略等问题。本方案的内容路由机制设计基于如下事实和考虑:
对于流媒体服务或者其他传输量较大的服务的特征要求内容请求必须(或最大程度地)由距用户最近的分布点提供服务,只有当该节点无法提供服务能力时,才由确定为次佳节点提供备份服务。这就要求内容路由机制以静态内容请求路由为主,并有确定的备份请求路由方案;
以静态内容路由为主,辅助于确定的备份路由策略同时是网络管理和性能调优的需求;
请求路由的设计必须考虑CDN作为应用支撑平台,必须支持不同的ICP的服务提供模式,即无论ICP是否采用域名来提供服务,CDN 都应有相应的内容请求路由机制保证用户能得到就近的边缘服务。ICP 在提供流媒体服务时,不仅有采用域名的,也有许多情况下直接给出IP 地址的方式提供服务。这就要求CDN 的内容请求路由机制要支持直接给出IP 地址的服务模式;
客户访问网络时,其客户机中的LocalDNS设置有可能不是本地城域的LocalDNS 地址。这就要求在内容路由设计中对该状况作出相应的处理。
常用的全局负载均衡策略
回顾并对常用的全局负载均衡策略。
1. 方式一:基于DNS 重定向
下图所示为基于DNS重定向的全局负载均衡策略的示意。
当用户在浏览器访问video.site.com时,首先要进行DNS解析,即查找出video.site.com的IP 地址,然后用户与该IP 地址建立TCP 连接访问网站内容,DNS流量分配方式工作在DNS 解析过程中。通过在域site.com 的DNS 服务器上增加一条NS 记录,即video.site.com 的NS 纪录指向位于某一全局负载均衡设备(不失一般性,假设为位于分布 1 的L4 交换机)的控制IP 地址,对video.site.com 的解析将由该Layer 4 Switch 负责,由DNS 的工作过程可以知道如下过程:
1. 用户将DNS 请求发到其本地DNS 服务器,该DNS 服务器通过一系列的DNS查询得知,video.site.com 的授权解析服务器是分布1 节点的L4 交换机;
2. L4 交换机收到DNS 查询请求后,将video.site.com 解析为经过计算后所选定的最优站点的IP 地址(负载不重、距离用户最进),这个地址可能是主站点的FARM IP,也可能是分站点的FARM IP 地址;
3. 各分布节点接受用户请求并最终将流媒体内容发送给用户。
2. 方式二:基于网络就近性判断和广域三角重定向
与方式一相比,本全局负载均衡策略的不同点也是最大优点在于:省中心节点的Layer4Switch不仅需要解析相应的域名,同时还根据用户真实IP 地址来进行最优站点计算和判断,最终将用户流量重定向相应的服务节点上。当用户请求的服务使用的协议不具有类似于“HTTP 302”的重定向命令时,该策略的顺利实现利用Radware WSD 产品所独具的“广域三角重定向”能力来完成服务的重定向。
如下图示:
当用户访问已经加入CDN服务的流媒体服务网站时,WSDNP首先会通过TCP/IP握手获得客户的IP,并在静态最近路径表中查找该IP 所属的网段是否存在,如存在该客户即被透明的导向到静态最近路径表中所设定的优先级最高的分布 点。如没有该记录则NP 会以同样方式去查动态最近路径表,如仍没有记录NP 会通知各分布 点WSD 一同去测各分布 点离用户的距离及时延,并通过专有协议LRP、PRP 报告,确定最优站点,然后通过HTTP 重定向或全局三角重定向技术来实现将用户导向到最佳CDN 节点,与此同时,该IP 地址所在的C 类网段会被添加至动态最近路径表,供今后使用;最佳节点的CDN 的服务器(节点上的高速缓存)负责将用户请求的内容提供给用户。
3. 两种方式的讨论比较
上述两种方式各有优缺点,现总结如下:
【方式一的优缺点】
该方式的特点在于优点整个就近性判断和重定向过程都发生在用户请求域名解析时,而非用户真正请求Server连接时。该策略的优点在于:
l 实现简单,内容请求路由简捷,核心(骨干)节点负载均衡设备的负载情况较方式二理想;
l 并不依赖于分发内容类型及相应的协议,无论是基于Web、MMS、RTSP 等分发都毫无影响。在CDN 的全局负载均衡方案的应用中,如果只采用DNS 流量分配方式,则存在着如下潜在主要问题:
l DNS 解析记录信息可能被整个DNS 解析行程中的任何一个DNS 服务器CACHE,这会导致全局的DNS 流量分配将会失败,因为这个DNS 服务器不会再将DNS 的解析请求转发给WSD-NP,从而用户将不能得到最新的最优站点的IP 地址;
l 就近性判断是对用户本地的DNS 服务器进行的,而不是用户本身。如果用户客户端设定的Local DNS 服务器不是距离用户最近的DNS 服务器,则用户无法得到就近服务;
l 无法向支持直接给出IP 地址的业务提供CDN 服务。
【方式二的优缺点】
该方式的特点在于可以根据用户的真实IP地址进行就近性判断,方案的优点在于:
l 利用用户IP 编址的规律,可以真正做到根据“网络的就近性”分配流量,可以进行CDN 的流量管理和调优;
l 可以对用户访问请求实现完备的、细颗粒的策略控制;
l 与基于DNS 重定向的策略可以无缝结合,实现合理、完善内容请求路由;
l 支持不同的ICP 接入CDN 的业务模式,服务割接非常快捷。
本方式的不足在于:
l 由于此方式的就近性判断与重定向是当用户与核心节点VIP 建立连接时发生的,故对于相应的分发内容类型和相关协议有所限制要求,如:针对HTTP 可以采用通用的302 协议重定向;但对于类似于MMS 这类私有协议就无法通过通用做法来实现,必须利用Radware WSD 产品的独特功能才能完成;
l 随着访问用户的增加和网络规模的扩张,核心点的压力会较大,因此核心点设备的冗余设计变得非常关键。
Radware建议
通过以上两种方式的优缺点比较和讨论,可以看出当只需要简单的站点容错或只根据负载信息进行流量分配时,可以使用DNS流量分配方式,而在需要考虑网络就近性的较为复杂的网络设计时,建议与其它流量分配方式结合在一起使用。在方式二中:网络就近性判断即广域三角重定向技术能够很好的解决传统DNS重定向的缺陷,而且可以与DNS重定向策略无缝连接,因此方案建议在本次项目工程中采用以方式二为主来实现全局负载均衡。
Radware内容请求路由机制与系统工作原理
1. Radware内容请求路由机制设计
方案建议:利用核心节点的WSDNPAS交换机与缓存服务器(CacheSever)配合,以构建完善的“全局负载均衡+反向代理”模式的内容请求路由机制。
如下图所示
2. 用户访问的基本流程
假设访问用户访问的ICP采用域名方式提供服务,用户位于城域网内,且其客户端设定的LocalDNS地址为城域网DNS 服务器地址。则用户访问某一加入CDN服务的子域video.site.com 的内容路由行程如下:
1. 用户在自己的浏览器中输入要访问的省级网站的流媒体子域名,浏览器向Local DNS 请求对该域名的解析;
2. Local DNS 将请求发到网站的主DNS;
3. 主DNS 返回预先配置好的该子域(video.site.com)授权DNS 地址,指向核心节点的Radware WSD-NP;
4. Local DNS 再向核心节点的WSD-NP 发出域名解析请求;
5. WSD-NP 获得用户Local DNS 的域名解析请求,将事先设置好的对应于video.site.com 域名的FARM IP 地址返回给Local DNS;
6. Local DNS 将该子域的VIP 返回给用户;
7. 用户浏览器向该CDN 核心节点WSD NP 上绑定的VIP 发出TCP/IP 请求;
8. 核心节点WSD-NP 建立TCP/IP 握手获得客户的IP,并比对静态最近路径表、动态最近路径表,如有匹配表项则通过HTTP 重定向或三角传输的技术来使用户得到最优回应。在图示情况下,指向预先配置的分布节点;
l WSD-NP 如未有匹配表项则发LRP、PRP 协议包通知各分布点WSD共同去测量各分布点离用户的距离及时延;
l 各分布点WSD设备发LRP、PRP 包告诉WSD-NP 各分布点离用户的距离及站点的负载情况;
l WSD-NP 通过报告判断某分布点为最优站点,将请求导向该节点,同时将该IP所在的C 类网段加入动态就近性表;
9. 分布节点的WSD 得到重定向请求,将该请求分配到本地节点中的内容服务引擎:缓存服务器或服务器;
10. 节点缓存服务器判断用户所请求的内容是否已经分发到本地,若不在,则向位于核心节点中的原始内容服务器请求内容;
11. 节点缓存服务器将负责响应用户的请求,提供所需的内容。
3. 研究
从上述的内容可以清晰的看到,在广域三角重定向的机制下,首先由CDN核心节点WSDNP来解析相应的子域名并最终通过Local DNS 返回该加速应用服务对应的VIP 地址给客户(步骤1~6);核心节点与用户建立连接后根据所获得的用户真实IP 地址进行流量分发(步骤7~9);步骤10~11 的引入是因为采用缓存服务器实现的“反向代理(Reverse Proxy)”机制,该机制的引入是为了弥补“纯CDN”对内容分发管理的要求。
从该方案中可以清晰的看到:
1. 无论用户是否使用本地DNS,最终都是通过WSD NP 来解析相应的子域名给最终用户,Local DNS 的方位不会影响流量的合理分发;
2. 若ICP 不采用子域来提供服务,而是直接给出IP 地址,则当该ICP 加入CDN时,给该ICP 一个特定的VIP 即可。用户访问该服务时,不经过第一级DNS重定向,直接进入步骤7,结果是相同的;
3. 随着今后CDN 网络规模的变化,分布点的不断扩展,各中心点的WSD-NP 流量分配策略也需做相应调整,如静态就近性表的改变等。
4. 由于所有的广域重定性都是由核心节点的WSD NP 根据用户真实IP 来实现的,故此中心节点随着业务量的逐步增大负载问题会显得格外重要,需考虑增加负载均衡设备以便分流。