论文部分内容阅读
摘要:随着计算机网络技术的快速发展、互联网应用的广泛普及,出现了网络拥塞、服务器负载高、响应慢等严重影响互联网业务开展的现象,同时互联网用户群的扩大与分布的广泛性对服务质量也提出了新的挑战?眼1?演。CDN技术的出现极大地缓解了以上问题,有助于提高互联网服务质量和用户体验。全局负载均衡技术与集群负载技术是CDN的核心技术之一,是实现资源合理配置、保证服务质量的关键技术。本文从CDN原理出发,讨论CDN负载均衡技术,详细描述网宿CDN负载均衡系统的实现方案。
关键字:CDN,全局负载均衡,集群负载均衡
1.绪论
随着Internet 技术和多媒体技术的不断发展,宽带业务(特别是图像、音频、视频业务)得到广泛的开展,所占的比重越来越大[2]。加之互联网的普及,网民数量激增且分布得越来越广,网络访问距离过长,导致网络负载及服务器负载迅速增加,从而使用户的访问质量受到严重影响。通过增加硬件建立服务集群或使用传统的缓存技术,都已经无法满足互联网发展的需要。另外,通过研究我们发现互联网上的信息具有不对称性、突发性[3]等特征。因此,迫切需要一种新的传输结构来解决以上各种迫切的问题。CDN技术可改善网络中带宽、响应、服务质量等,可以从整体上优化网络结构、提高资源的利用率、整合应用内容、提供稳定高效的服务,并能提高网站的安全性[4]。
2.CDN技术
CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需内容,从而有效地解决Internet网络拥塞状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因引起的访问网站的响应速度慢的问题。狭义地讲,内容分发网络(CDN)是一种新型的网络构建方式,它是在传统的发布网络上特别优化的网络覆盖层;从广义的角度,CDN代表了一种基于质量与秩序的网络服务模式。
CDN的关键技术主要有内容路由技术、内容分发技术、内容存储技术、内容管理技术等[5]。
2.1CDN的基本工作原理
当用户访问已经加入CDN服务的网站时,首先通过DNS重定向技術确定最接近用户的最佳CDN节点,同时将用户的请求指向该节点。当用户的请求到达指定节点时,CDN节点的服务器负责将用户请求的内容提供给用户。
用户访问的基本流程如下:
(l)用户在自己的浏览器中输入要访问的网站的域名;
(2)浏览器向本地DNS请求对该域名的解析;
(3)本地DNS将请求发到网站的主DNS,主DNS再将域名解析请求转发到重定向DNS;
(4)重定向DNS根据一系列的策略确定当时最适当的CDN节点,并将解析的结果(IP地址)发给用户;
(5)用户向给定的CDN节点请求相应网站的内容;
(6)CDN节点中的服务器负责响应用户的请求,提供所需的内容。
2.2 网宿CDN架构
传统CDN实现过程往往存在以下问题:
(1)主要根据用户请求的来源区域等来确定服务节点,与节点的服务状况脱节;
(2)无法适应动态互联网信息的不对称性与突发性,故而不能提供稳定的高质量服务;
(3)没有动态的全局信息,无法对资源进行整合与优化。
网宿科技通过研究传统CDN,结合路由技术与负载均衡技术,架构了如图1所示的CDN优化架构。
在网宿的CDN架构中,CDN客户仍是通过传统DNS别名方式把域名的解析权交给网宿全局负载均衡集群。全局负载均衡集群根据网络状况与CDN边缘集群服务状况等,将用户的请求重定向到离用户“最近”的集群上,从而保证访问的服务质量,提高用户的体验。
在网宿CDN体系中,负载均衡分成2个层次:全局负载均衡与集群负载均衡。
3.网宿CDN负载均衡技术
网宿CDN体系里全局负载均衡主要实现的功能是根据节点服务状况,重定向用户的访问,从而保持访问的质量,进而整合和优化CDN的资源,使资源得到有效的配置和合理的使用,提高经济效益。集群负载均衡技术可保证节点的高可用性、服务的快速响应以及集群资源合理配置。
3.1 全局负载均衡
为将用户的请求重定向到离用户“最近”的健康的服务节点上,全局负载均衡系统需获得用户到各个节点的访问效果,依此作出重定向的决策。通过实际测试用户到每个节点的访问效果,再将效果最好的节点返回给客户并不可行,特别是当被访问的对象比较小时。网宿经过深入研究,建立了如图2所示的决策模型。
服务状况分析服务器通过网宿自有协议与各个集群交互,获得各个集群节点服务能力及网络状况等信息。数据监控服务器监视各个节点及服务状况分析服务器的服务状况,以保证决策信息准确与及时。当有用户请求解析时,决策模块根据服务状况、网络状况等相关信息,判定用户到各个集群的访问效果,然后选定最优的节点作为解析的结果返回给用户,由该节点响应用户的请求。通过减少解析记录的缓存时间,可以提高决策模块对用户访问控制的灵敏度。
从实际运行的情况来看,这个负载均衡系统取得良好的效果,不但能为客户提供高质量的服务,同时也可以对网络资源进行优化和整合,提高资源的利用效率。与传统CDN系统比较,用户请求平均响应速度提高9%,服务的可用率提高5%,整体网络资源需要减少3.6%。
3.2集群负载均衡
当全局负载均衡将用户的请求重定向到服务节点后,集群负载均衡技术将按负载均衡策略,在集群里选定有请求内容的、最健康的机器响应请求。同时,当某些机器出现服务故障,也能屏蔽这些机器,并不影响客户的服务。服务的可靠性、集群的可扩展性、可管理性及性价比是评估一个集群负载均衡方案的重要指标。
集群负载均衡一般包含3个部分[6]:调度机、提供服务的真实机器、共享存储。
LVS(Linux Virtual Server)[7]是目前被广泛使用的一种集群负载均衡技术,其体系结构如图3所示[6]。
LVS是基于IP的负载均衡技术,其实现[7]通过网络地址转换(Network Address Translation)、IP隧道(Virtual Server via IP Tunneling)和通过直接路由VS/DR(Virtual Server via Direct Routing)的方法构建虚拟服务器提供服务,从而实现由若干个服务器组成高可用性的集群系统。
基于IP的负载均衡技术,可以根据真实机器的服务能力转发请求,但无法根据用户访问的内容进行负载均衡,因而不利于文件的分布式存储。目前比较成熟基于访问内容进行负载均衡的技术有Haproxy方案[8]。这类方案集群负载均衡的实现方式主要有2种:代理和重定向。由于需要在应用层对内容进行分析,这类方案的服务承载能力相对较差。
另外一些负载均衡产品是基于硬件实现的,如F5的BIG-540[9]。这类产品服务能力较强,但价格很高且可扩展性不好。
内容的分布式存储是大规模CDN应用的必要技术,因而要求集群负载技术支持分布式存储。从实践来看,采用NAS等专用存储方案服务效能并不好且成本比较高。因而,网宿自主研发同时支持四层和七层负载均衡的技术,这个技术首先在IP层上进行判断,并分析请求的内容,根据自定义策略选择合适的服务器提供服务。从而实现了集群内服务能力的均衡和内容的分布式存储,目前,使用该负载均衡方案的集群已经可管理数十TB的数据,并能提供高效、稳定服务。
4.结语
传统的CDN技术主要考虑客户请求的来源,将其请求按区域重定向到选定的CDN节点上,无法根据网络状况、节点的负载能力动态地选择最优的节点给客户提供服务。本文介绍了网宿自主研发的基于全局负载均衡和集群负载均衡技术的优化的CDN系统。该系统能根据资源、请求和服务状况确定由哪个节点为用户提供稳定、高效的服务,同时也能整合和优化资源。其集群负载均衡方案同时支持IP层及应用层的负载均衡,实现了对分布式存储的优化支持。该CDN系统明显优于传统CDN方案的实现。
关键字:CDN,全局负载均衡,集群负载均衡
1.绪论
随着Internet 技术和多媒体技术的不断发展,宽带业务(特别是图像、音频、视频业务)得到广泛的开展,所占的比重越来越大[2]。加之互联网的普及,网民数量激增且分布得越来越广,网络访问距离过长,导致网络负载及服务器负载迅速增加,从而使用户的访问质量受到严重影响。通过增加硬件建立服务集群或使用传统的缓存技术,都已经无法满足互联网发展的需要。另外,通过研究我们发现互联网上的信息具有不对称性、突发性[3]等特征。因此,迫切需要一种新的传输结构来解决以上各种迫切的问题。CDN技术可改善网络中带宽、响应、服务质量等,可以从整体上优化网络结构、提高资源的利用率、整合应用内容、提供稳定高效的服务,并能提高网站的安全性[4]。
2.CDN技术
CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需内容,从而有效地解决Internet网络拥塞状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因引起的访问网站的响应速度慢的问题。狭义地讲,内容分发网络(CDN)是一种新型的网络构建方式,它是在传统的发布网络上特别优化的网络覆盖层;从广义的角度,CDN代表了一种基于质量与秩序的网络服务模式。
CDN的关键技术主要有内容路由技术、内容分发技术、内容存储技术、内容管理技术等[5]。
2.1CDN的基本工作原理
当用户访问已经加入CDN服务的网站时,首先通过DNS重定向技術确定最接近用户的最佳CDN节点,同时将用户的请求指向该节点。当用户的请求到达指定节点时,CDN节点的服务器负责将用户请求的内容提供给用户。
用户访问的基本流程如下:
(l)用户在自己的浏览器中输入要访问的网站的域名;
(2)浏览器向本地DNS请求对该域名的解析;
(3)本地DNS将请求发到网站的主DNS,主DNS再将域名解析请求转发到重定向DNS;
(4)重定向DNS根据一系列的策略确定当时最适当的CDN节点,并将解析的结果(IP地址)发给用户;
(5)用户向给定的CDN节点请求相应网站的内容;
(6)CDN节点中的服务器负责响应用户的请求,提供所需的内容。
2.2 网宿CDN架构
传统CDN实现过程往往存在以下问题:
(1)主要根据用户请求的来源区域等来确定服务节点,与节点的服务状况脱节;
(2)无法适应动态互联网信息的不对称性与突发性,故而不能提供稳定的高质量服务;
(3)没有动态的全局信息,无法对资源进行整合与优化。
网宿科技通过研究传统CDN,结合路由技术与负载均衡技术,架构了如图1所示的CDN优化架构。
在网宿的CDN架构中,CDN客户仍是通过传统DNS别名方式把域名的解析权交给网宿全局负载均衡集群。全局负载均衡集群根据网络状况与CDN边缘集群服务状况等,将用户的请求重定向到离用户“最近”的集群上,从而保证访问的服务质量,提高用户的体验。
在网宿CDN体系中,负载均衡分成2个层次:全局负载均衡与集群负载均衡。
3.网宿CDN负载均衡技术
网宿CDN体系里全局负载均衡主要实现的功能是根据节点服务状况,重定向用户的访问,从而保持访问的质量,进而整合和优化CDN的资源,使资源得到有效的配置和合理的使用,提高经济效益。集群负载均衡技术可保证节点的高可用性、服务的快速响应以及集群资源合理配置。
3.1 全局负载均衡
为将用户的请求重定向到离用户“最近”的健康的服务节点上,全局负载均衡系统需获得用户到各个节点的访问效果,依此作出重定向的决策。通过实际测试用户到每个节点的访问效果,再将效果最好的节点返回给客户并不可行,特别是当被访问的对象比较小时。网宿经过深入研究,建立了如图2所示的决策模型。
服务状况分析服务器通过网宿自有协议与各个集群交互,获得各个集群节点服务能力及网络状况等信息。数据监控服务器监视各个节点及服务状况分析服务器的服务状况,以保证决策信息准确与及时。当有用户请求解析时,决策模块根据服务状况、网络状况等相关信息,判定用户到各个集群的访问效果,然后选定最优的节点作为解析的结果返回给用户,由该节点响应用户的请求。通过减少解析记录的缓存时间,可以提高决策模块对用户访问控制的灵敏度。
从实际运行的情况来看,这个负载均衡系统取得良好的效果,不但能为客户提供高质量的服务,同时也可以对网络资源进行优化和整合,提高资源的利用效率。与传统CDN系统比较,用户请求平均响应速度提高9%,服务的可用率提高5%,整体网络资源需要减少3.6%。
3.2集群负载均衡
当全局负载均衡将用户的请求重定向到服务节点后,集群负载均衡技术将按负载均衡策略,在集群里选定有请求内容的、最健康的机器响应请求。同时,当某些机器出现服务故障,也能屏蔽这些机器,并不影响客户的服务。服务的可靠性、集群的可扩展性、可管理性及性价比是评估一个集群负载均衡方案的重要指标。
集群负载均衡一般包含3个部分[6]:调度机、提供服务的真实机器、共享存储。
LVS(Linux Virtual Server)[7]是目前被广泛使用的一种集群负载均衡技术,其体系结构如图3所示[6]。
LVS是基于IP的负载均衡技术,其实现[7]通过网络地址转换(Network Address Translation)、IP隧道(Virtual Server via IP Tunneling)和通过直接路由VS/DR(Virtual Server via Direct Routing)的方法构建虚拟服务器提供服务,从而实现由若干个服务器组成高可用性的集群系统。
基于IP的负载均衡技术,可以根据真实机器的服务能力转发请求,但无法根据用户访问的内容进行负载均衡,因而不利于文件的分布式存储。目前比较成熟基于访问内容进行负载均衡的技术有Haproxy方案[8]。这类方案集群负载均衡的实现方式主要有2种:代理和重定向。由于需要在应用层对内容进行分析,这类方案的服务承载能力相对较差。
另外一些负载均衡产品是基于硬件实现的,如F5的BIG-540[9]。这类产品服务能力较强,但价格很高且可扩展性不好。
内容的分布式存储是大规模CDN应用的必要技术,因而要求集群负载技术支持分布式存储。从实践来看,采用NAS等专用存储方案服务效能并不好且成本比较高。因而,网宿自主研发同时支持四层和七层负载均衡的技术,这个技术首先在IP层上进行判断,并分析请求的内容,根据自定义策略选择合适的服务器提供服务。从而实现了集群内服务能力的均衡和内容的分布式存储,目前,使用该负载均衡方案的集群已经可管理数十TB的数据,并能提供高效、稳定服务。
4.结语
传统的CDN技术主要考虑客户请求的来源,将其请求按区域重定向到选定的CDN节点上,无法根据网络状况、节点的负载能力动态地选择最优的节点给客户提供服务。本文介绍了网宿自主研发的基于全局负载均衡和集群负载均衡技术的优化的CDN系统。该系统能根据资源、请求和服务状况确定由哪个节点为用户提供稳定、高效的服务,同时也能整合和优化资源。其集群负载均衡方案同时支持IP层及应用层的负载均衡,实现了对分布式存储的优化支持。该CDN系统明显优于传统CDN方案的实现。