云中的CDN负载平衡.pdf

上传人:1520****312 文档编号:1587718 上传时间:2018-06-26 格式:PDF 页数:23 大小:1.46MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380057098.8

申请日:

2013.11.01

公开号:

CN104756444A

公开日:

2015.07.01

当前法律状态:

实审

有效性:

审中

法律详情:

专利申请权的转移IPC(主分类):H04L 12/24登记生效日:20171016变更事项:申请人变更前权利人:微软公司变更后权利人:微软技术许可有限责任公司变更事项:地址变更前权利人:美国华盛顿州变更后权利人:美国华盛顿州|||实质审查的生效IPC(主分类):H04L 12/24申请日:20131101|||公开

IPC分类号:

H04L12/24

主分类号:

H04L12/24

申请人:

微软公司

发明人:

M·巴特鲁尼; J·D·兹奥恩斯; O·霍诺

地址:

美国华盛顿州

优先权:

13/666,691 2012.11.01 US

专利代理机构:

上海专利商标事务所有限公司31100

代理人:

杨洁

PDF下载: PDF下载
内容摘要

云中的CND负载平衡。在内容递送网络的边缘数据中心处,服务器资源被分配给正由边缘数据中心服务的财产。基于近似实时数据,根据趋势流量在边缘数据中心处对财产排序。在边缘数据中心处,为所排序的财产的至少一个财产分配服务器资源。基于从长期趋势中开发的规则来分配服务器资源。资源分配包括计算在边缘数据中心处的分区中的财产的服务器需求,并将该财产的服务器需求分配到分区中的可用服务器。

权利要求书

权利要求书1.  在包括一个或多个处理器和系统存储器的计算机系统处,一种用于将在内容递送网络(CDN)的边缘数据中心处的服务器资源分配给由所述边缘数据中心服务的财产的方法,所述方法包括:所述计算机系统,基于近似实时数据,通过趋势流量在所述边缘数据中心处对多个财产进行排序的动作;以及所述计算机系统,基于从长期趋势开发的一个或多个规则,为在所述边缘数据中心处经排序的多个财产的至少一个财产分配服务器资源的动作,包括:所述计算机系统,为所述边缘数据中心处的分区中的至少一个财产计算服务器需求的动作;以及所述计算机系统,将所述至少一个财产的所述服务器需求分配到所述分区中的一个或多个可用服务器的动作。2.  如权利要求1所述的方法,其特征在于,为在所述边缘数据中心处经排序的多个财产的至少一个财产分配服务器资源包括:为具有较小趋势流量的财产分配服务器资源之前为具有较大趋势流量的财产分配服务器资源。3.  如权利要求2所述的方法,其特征在于,还包括:所述计算机系统,将新负载类型分派到所述至少一个财产的动作;以及所述计算机系统,基于所述新负载类型为所述至少一个财产计算服务器需求的动作。4.  如权利要求1所述的方法,其特征在于,将所述至少一个财产的所述服务器需求分配到所述分区中的一个或多个可用服务器包括:根据资源聚集索引、高速缓存的数据粘性的索引、或兼容性索引的一个或多个的加权平均对所述分区中的多个可用服务器进行排序。5.  如权利要求1所述的方法,其特征在于,还包括:所述计算机系统处理服务器缺陷的动作。6.  如权利要求5所述的方法,其特征在于,处理服务器缺陷包括向一个或多个其它边缘数据中心请求资源。7.  一种包括存储了计算机可执行指令的一个或多个物理存储装置的计算机程序产品,所述指令在被计算机系统的一个或多个处理器执行时,致使所述计算机系统实现一种用于将在内容递送网络(CDN)的边缘数据中心处的服务器资源分配给由所述边缘数据中心服务的财产的方法,所述方法包括:所述计算机系统基于近似实时数据,通过趋势流量在所述边缘数据中心处对多个财产进行排序的动作;以及所述计算机系统,基于从长期趋势开发的一个或多个规则,为在所述边缘数据中心处经排序的多个财产的至少一个财产分配服务器资源的动作,包括:所述计算机系统,为所述边缘数据中心处的分区中的至少一个财产计算服务器需求的动作;以及所述计算机系统,将所述至少一个财产的所述服务器需求分配到所述分区中的一个或多个可用服务器的动作。8.  如权利要求7所述的计算机程序产品,其特征在于,为在所述边缘数据中心处经排序的多个财产的至少一个财产分配服务器资源包括:在为具有较小趋势流量的财产分配服务器资源之前为具有较大趋势流量的财产分配服务器资源。9.  如权利要求7所述的计算机程序产品,其特征在于,分配所述至少一个财产的所述服务器需求包括:将所述至少一个财产的所述服务器需求分配到在同一边缘数据中心处的多个分区。10.  一种计算机系统,包括:一个或多个处理器;系统存储器;以及具有存储其上的计算机可执行指令的一个或多个计算机可读存储介质,所述指令在被所述一个或多个处理器执行时,致使所述计算机系统执行一种用于将在内容递送网络(CDN)的边缘数据中心处的服务器资源分配给由所述边缘数据中心服务的财产的方法,包括以下:基于近似实时数据,通过趋势流量在所述边缘数据中心处对多个财产进行排序;以及基于从长期趋势开发的一个或多个规则,为在所述边缘数据中心处经排序的多个财产的至少一个财产分配服务器资源,所述长期趋势基于作为配置值改变的性能影响的结果作出的对长期趋势的显式调整以及作为聚集趋势数据的结果作出的对长期趋势的隐式调整两者来开发,包括:为所述边缘数据中心处的分区中的至少一个财产计算服务器需求;以及将所述至少一个财产的所述服务器需求分配到所述分区中的一个或多个可用服务器。

说明书

说明书云中的CDN负载平衡
背景
许多基于因特网的服务提供者向全世界的客户机递送数字内容。数字内容可以包括web对象(例如,文本、图形、URL、脚本)、可下载对象(例如,媒体文件、软件、文档等)、web应用、流媒体(例如,音频和视频内容)等。给位于各种各样地理位置的大量客户机提供数字内容向服务提供者提出了挑战。例如,服务提供者可能不能够提供足够的服务器资源和/或网络带宽以在给定时间服务于请求数字内容的全部客户机。此外,因为服务提供者和地理上远离服务提供者的服务器的客户机之间的流量通过大量因特网服务器经极大的地理距离来路由,所以客户机可能经历高级别的等待时间和/或低传送率。
内容递送网络(CDN)旨在减轻服务提供者向大的和/或地理上不相同的客户机组递送数字内容的能力。CDN将服务器(或服务器群集)置于各种地理位置,并使用这些服务器来高速缓存并递送来自服务提供者的原始服务器的内容。如此,CDN可通过增加用于递送每个服务提供者的内容的总的可用服务器资源和带宽两者,还通过从地理上更接近正被服务的客户机的服务器递送每个服务提供者的内容,来改善服务提供者将内容递送到客户机的能力。
CDN通常为大量服务提供者提供内容递送服务。如此,CDN在各种服务提供者间分配CDN资源。例如,如果CDN正经历针对特定地理区域的特定服务提供者的流量激增,CDN可反应性地分配该特定地理区域中的附加服务器资源以用于递送该特定服务提供者的内容,而从一个或多个其它服务提供者移除在该特定地理区域的该附加服务器资源。
概述
在此描述的至少一些实施例利用实况的和历史的数据两者来抢先,而不是反应性地,重新配置CDN来处理当前的和预期的客户机负载。如此,基于实况的和历史的数据,在此描述的各实施例可在服务提供者的客户机负载达到尖峰 之前,抢先针对服务提供者和高速缓存的服务提供者的内容来设定服务器分配。
在一些实施例中,在CDN的边缘数据中心处的服务器资源被分配给由边缘数据中心服务的财产。基于近似实时数据,计算机系统根据趋势流量来在边缘数据中心处对财产进行排序。计算机系统基于从长期趋势开发的规则针对在边缘数据中心处经排序的财产的一个财产分配服务器资源。分配包括为边缘数据中心处的分区中的财产计算服务器需求的计算机系统。分配还包括计算机系统向该分区中的可用服务器分配该财产的服务器需求。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:
图1示出了促进抢先地和反应性地配置CDN以针对由CDN主存的各财产处理当前和预期的客户机负载的示例计算机体系结构。
图2示出了用于分隔、分区和/或分配示例CDN的资源的示例方案。
图3示出了用于将CDN的边缘数据中心处的服务器资源分配给由边缘数据中心服务的财产的示例方法的流程图。
图4示出了用于边缘数据中心处的负载平衡器代理将流量卸载到另一边缘数据中心的示例方法的流程图。
图5示出了用于使用孵化池来确定一个或多个财产的属性的示例方法的流程图。
详细描述
在此描述的至少一些实施例利用实况的和历史的数据两者来抢先,而不是反应性地,重新配置CDN来处理当前的和预期的客户机负载。如此,基于实况的和历史的数据,在此描述的各实施例可在服务提供者的客户机负载达到尖峰之前,抢先针对服务提供者和高速缓存的服务提供者的内容来设定服务器分配。
更具体地,各实施例涉及服务于多个财产并包括物理地位于不同地理位置(且潜在地在全世界的地理位置)的多个边缘数据中心的CDN。每个边缘数据中心包括用于高速缓存并提供各财产的内容的多个服务器。各实施例还涉及包括负载平衡器服务的CDN,该负载平衡器服务跟踪多个边缘数据中心的长期流量趋势,并且管理用于(基于该长期流量趋势)向各财产分配服务器资源的规则。各实施例还涉及包括在每个边缘数据中心处的负载平衡器代理的CDN。每个负载平衡器代理被配置来根据基于长期流量趋势的规则,以及关于在边缘数据中心处的当前活动的实时(或近似实时)数据,来作出服务器分配决定。如此,负载平衡器代理基于长期流量趋势和规则抢先地,并基于实时(或近似实时)数据反应性地作出服务器分配决定。
如在此使用的,“财产”是主存在原始服务器上的客户web应用。例如,“财产”可以是在线视频流网站、在线音频流服务、补丁/更新网站等。如在此使用的,“客户”是拥有一个或多个财产的个人、实体、服务提供者等。如在此使用的,“原始服务器”是由客户拥有和/或被用户操作的web服务器。
图1示出了促进抢先地和反应性地配置CDN以针对由CDN主存的各财产处理当前和预期的客户机负载的示例计算机体系结构100。参见图1,计算机体系结构100包括边缘数据中心102、与近似实时(NRT)数据相关的一个或多个组件108,以及与长期趋势和规则相关的一个或多个组件114。所描绘的组件和计算机系统中的每一个通过诸如例如局域网(“LAN”)、广域网(“WAN”)、因特网等的网络彼此连接(或作为网络的一部分)。相应地,所描绘的组件和计算机系统中的每一个可以创建与消息相关的数据并通过网络交换与消息相关的数据(例如,网际协议(“IP”)数据报和利用IP数据报的其他更高层协议,诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。
边缘数据中心12包括多个数据中心,每个数据中心位于不同地理位置。例如,图1描绘了边缘数据中心102a以及边缘数据中心102b,尽管如垂直省略号所指示的,计算机体系结构100可包括任何数量的边缘数据中心。如在此使用的,“pop”(point of presence(存在点))还指边缘数据中心,无论该边缘数据中心专用作CDN的一部分,或与其它服务搭配。
如所描绘的,每个边缘数据中心102包括被配置用来高速缓存与边缘数据中心相关联的财产的内容并将那个内容递送到客户机(例如地理地位于边缘数据中心附近的被高速缓存的财产的客户机)的多个服务器(例如服务器106a和106b)。边缘数据中心102还包括负载平衡器代理(例如,负载平衡器代理104a和104b)。负载平衡器代理(104a、104b)被配置用来作出关于在对应边缘数据中心处的服务器资源(106a、106b)如何被分配给不同财产的抢先的和反应性的决定两者。在这样做时,负载平衡器代理(104a、104b)使用(来自规则数据存储124的)基于长期趋势数据的规则,以及(来自NRT数据存储112的)NRT数据。
如在这里使用的,“NRT数据”意味着近似实时(诸如在几分钟或甚至在几秒钟内)收集和聚集的数据。在所描绘的实施例中,与NRT数据相关的组件108包括NRT聚集器110和NRT数据存储112。NRT聚集器110解析在边缘数据中心102处生成的日志以生成关于在每个边缘数据中心处的当前活动的NRT数据。NRT聚集器110将所生成的NRT数据存储在NRT数据存储112中。NRT数据存储112使得NRT数据对于在每个边缘数据中心处的负载平衡器代理(104a、104b)可用(如在NRT数据存储112和负载平衡器代理之间的箭头所指示的)。对应地,负载平衡器代理能够从NRT数据存储112检索NRT数据并将该NRT数据用作它们资源分配决定的一部分。通过使用NRT数据,负载平衡器代理能够对在边缘数据中心102处的当前流量作出反应,诸如处理非预期的在一个或多个财产处的流量激增。当与NRT数据相关的组件108被描绘成与边缘数据中心102分开时,这些组件的全部或部分,在一些实施例中,可在边缘数据中心102处实现。
在所描绘的实施例中,与长期趋势和规则相关的组件114包括日志数据存储120、趋势聚集器118,和长期趋势数据存储116。日志数据存储120被配置 来存储由边缘数据中心102生成的日志。趋势聚集器118被配置来解析这些日志以确定由边缘数据中心服务提供的财产的长期流量模式。趋势聚集器118将长期流量模式存储在长期趋势数据存储116中。
长期趋势可标识对财产的客户需求跨日、星期、月或甚至年的变化。例如,对于视频流财产,长期趋势可指示在该星期的特定日子(例如,对应于新内容发布)、在晚间、和在周末客户需求的增加。在另一示例中,对于补丁/更新财产,长期趋势可指示在该月的特定日子(例如,在新补丁/更新内容发布时)、和在一天内的特定时间(在许多客户机被配置来安装补丁/更新时)客户需求的增加。
在所描绘的实施例中,与长期趋势和规则相关的组件114还包括负载平衡器服务122和规则数据存储124。负载平衡器服务122配置用于分析长期趋势数据存储116中的流量模式数据,以创建/修改与将在边缘数据中心102处的服务器分派给各种财产相关的规则,并将规则存储在规则数据存储124中。规则数据存储124使得规则对于在每个边缘数据中心处的负载平衡器代理(104a、104b)可用(如在规则数据存储124和负载平衡器代理之间的箭头所描绘的)。对应地,负载平衡器代理能够从规则数据存储124检索规则并将该规则用作它们资源分配决定的一部分。
如长期趋势数据存储116和负载平衡器服务122之间的双箭头所指示的,负载平衡器服务122可从长期趋势数据存储116接收长期趋势数据,并还将反馈提供给长期趋势数据存储116。例如,负载平衡器服务122可细化/优化对长期趋势数据的收集。此外,如规则数据存储124和负载平衡器服务122之间的双箭头所指示的,负载平衡器服务122既可从规则数据存储124读取规则也可向规则数据存储124提供规则输入和调整。
在一些实施例中,CDN将财产分配给跨边缘数据中心(诸pop)的池。在属于特定池的特定pop处的一组服务器是那个池的分区。这些服务器服务于在pop处的池的财产。图2,例如,示出了用于分隔、分区和/或分配示例CDN的资源的示例方案。示例CDN包括三个pop(或边缘数据中心)。这些包括有50个服务器的“pop A”、有80个服务器的“pop B”,以及有100个服务器的“pop C”。如水平省略号所指示的,示例CDN可包括任何数量的pop。
如所描绘的,示例CDN将示例CDN资源分成多个池,包括“池1”、“池2”,和“池3”。如垂直省略号所指示的,示例CDN可包括任何数量的池。每个池包括在一个或多个pop处的一个或多个服务器的一分区。例如,池1包括在pop A处的分区1A(10个服务器)、在pop B处的分区1B(25个服务器),以及在pop C处的分区1C(20个服务器)。如所描绘的,池2包括在pop A、B、和C处的分区(2A、2B和2C),并且池3包括在pop A和B处的分区(3A和3B)。
各财产可被分配给各池。例如,五个财产可被分配到池1,10个财产可被分配到池2,4个财产可被分配到池3。对应地,每个池的各分区中的服务器被保留来服务于分配给池的财产。例如,在pop A,分区1A的10个服务器被保留来服务于分配给池1的五个财产,在pop B,分区1B的25个服务器被保留来服务于分配给池1的五个财产,以及在pop C,分区1C的20个服务器被保留来服务于分配给池1的五个财产。在一些实施例中,财产可被分配给多个池,并且那些池可被分配给同一pop。因此,财产可被分配给在单个pop处的(对应于不同池的)多个分区。
在图1和2的上下文内,存在多个可被用作管理服务器分配的一部分的方法用于服务于在CDN内的财产。
1.负载平衡算法
各实施例包括由在边缘数据中心102处的每个负载平衡器代理执行的负载平衡算法。通过使用该负载平衡算法,每个负载平衡器代理利用来自NRT数据存储112的NRT数据和来自规则数据存储124的规则两者来作出本地服务器分配决定。
图3示出了用于将CDN的边缘数据中心处的服务器资源分配给由边缘数据中心服务的财产的示例方法300的流程图。方法300将参考计算机架构100的组件和数据来描述。
方法300包括根据趋势流量对财产进行排序的动作(动作302)。动作302可包括,基于近似实时数据,通过趋势流量在边缘数据中心处对多个财产进行排序的动作。例如,负载平衡器代理104a可将来自NRT数据存储112的NRT数据与来自规则数据存储124的规则进行比较,以确定在边缘数据中心102处 一个或多个财产正在经受的流量模式的类型。负载平衡器代理104a可接着将正在经历流量激增的财产(例如以优先级降序)进行排序并将它们置于经排序的财产列表中。方法300的其余部分可接着根据经排序的财产列表作出资源分配分派,使得激增的财产在非激增财产之前被分配服务器资源106a。
方法300还包括在经排序财产列表中选择下一个财产的动作(动作304)以及为所选择的财产选择下一个分区的动作(动作306)。例如,负载平衡器代理104a可在经排序的财产列表中选择具有最大趋势流量的财产,并接着选择那个财产被分配的第一分区。
方法300还包括为所选分区中的所选择的财产计算服务器需求的动作(动作308)。动作308可包括基于从长期趋势中发展的一个或多个规则为在边缘数据中心处经排序的多个财产的至少一个财产分配服务器资源的动作,包括为在边缘数据中心处的分区中的至少一个财产计算服务器需求。例如,动作308可包括负载平衡器代理104a基于趋势流量改变财产的负载类型并基于新的负载类型为财产确定服务器需求。
在一些实施例中,基于诸如财产的过去流量模式(例如,如后面结合孵化描述的)、手动分派、或来自客户的指定,财产可被分派规则内的一般负载类型。例如,每个财产可在每个pop中基于其在那个pop处的典型客户机负载根据“T恤尺寸”(例如,S,M,L,XL)来分类。因此,在一个实施例中,动作308可包括负载平衡器代理使用NRT数据来确定当前趋势流量将导致财产达到将导致在pop处负载类型增加(例如从L到XL)或减少的点。基于对财产需要负载类型增加/减少的确定,负载平衡器代理可在pop向财产分派新负载类型。接着,负载平衡器代理可基于新负载类型为财产计算新服务器需求。
计算新服务器需求可包括从各规则中检索新负载类型的财产的一般服务器需求。例如,规则可指定负载类型XL的财产的一般服务器需求,如表1所示:
财产负载类型最小服务器需求倍数XL2010
表1
表1指定最小服务器需求和倍数。最小服务器需求是能够完成pop处的此类财产的100%需求的总的专用服务器的计数。倍数定义针对此类财产应当允许多少弹性余量。
计算新服务器需求还可包括计算财产的pop负载。例如,基于其池分派,财产可跨各pop来分配,如表2所示:
财产IDPop IDPop分配负载财产1Pop AXL财产1Pop BXL财产1Pop CXL财产1Pop DL财产1Pop EL财产1Pop FS
表2
此外,每个负载类型可对应于系数权重。例如,系数权重可以是如表3中指定的:
负载类型权重XL5L3S1
表3
基于表1-3,负载平衡器代理可针对每个负载类型的财产计算服务器需求计数,如表4所示:
负载类型计数 XL3*5(XL负载类型的数量乘以XL负载类型的权重)15L2*3(L负载类型的数量乘以L负载类型的权重)6S1*1(S负载类型的数量乘以S负载类型的权重)1总和 22
负载平衡器代理可接着使用以下等式为所选分区中的所选财产计算分配百分比:
分配百分比=((在一pop处的一负载类型的数量)*(来自表3的负载类型
的权重))/(来自表4的总和)
例如,对于pop A,分配百分比可被计算如:(1*5)/22=0.227或~22%。
表5示出了每个pop中的财产1的分配百分比:
财产IDPop ID分配百分比财产1Pop A(1*5)/22=~22%财产1Pop B(1*5)/22=~22%财产1Pop C(1*5)/22=~22%财产1Pop D(1*3)/22=~14%财产1Pop E(1*3)/22=~14%财产1Pop F(1*1)/22=~5%
表5
最后,每个pop中的财产1的所需服务器的数量可使用以下等式来计算:所需服务器数量=(来自表1的最小服务器需求)*(来自表1的倍数)*(分配百分比)
例如,在pop A中的财产1需要20*10*22%=44台服务器。因此,popA处的分区中的财产1的新服务器需求将是44台服务器。
在一些情况中,财产可被分派到两个或更多个重叠的池。在这样的情况中,负载平衡器代理可计算pop中的负载的池分区共享。例如,财产1可被分派到“北美池”和“国际池”两者,每个池被分派到至少一个公共pop。例如,表格6描绘了示例池分配方案,其中池被分派到至少一个公共pop:
池IDPop ID服务器计数北美池Pop A80北美池Pop B50北美池Pop C20国际池Pop A100国际池Pop G50
国际池Pop H35
表6
在这个池分配方案中,对于总共在pop A处180台服务器,财产1被分派到作为北美池的一部分的pop A中的一个分区(80台服务器),以及作为国际池的一部分的pop A中另一个分区(100台服务器)。计算pop A中的分区共享可使用至少两个策略之一来完成:单纯分区分配或按比例分区分配。
通过使用单纯分区分配,负载平衡器代理可将pop中财产所需的服务器均匀地分派给每个分区。例如,由于pop A中财产1需要44台服务器,负载平衡器代理可将服务器需求的一半(22台服务器)分派给对应于北美池的分区,并将服务器需求的一半(22台服务器)分派给对应于国际池的分区。
通过使用按比例分区分配,相反,负载平衡器代理可将pop中财产所需的服务器按比例地分派给每个分区。例如,对应于北美池的pop A处的分区具有对于pop A处的财产1可用的~44%(80台服务器/180台服务器)的服务器,而对应于国际池的pop A处的分区具有对于pop A处的财产1可用的~55%(100台服务器/180台服务器)的服务器。因此,由于pop A中财产1需要44台服务器,对于总共44台服务器,负载平衡器代理可按比例地将服务器需求的20台(44台服务器*44%)分派给对应于北美池的分区,并将服务器需求的24台(44台服务器*55%)分派给对应于国际池的分区。
返回图3,方法300还包括向所选分区中的可用服务器分配财产需求的动作(动作310)。动作308可包括基于从长期趋势中发展的一个或多个规则在边缘数据中心处为经排序的多个财产的至少一个财产分配服务器资源的动作,包括将对于至少一个财产的服务器需求分配到分区中的一个或多个可用服务器。例如,动作310可包括负载平衡器代理104a使用一个或多个不同准则将负载分摊分配到分区中的服务器。例如,在分配期间,负载平衡器代理104a可执行以下的一个或多个:(i)聚集服务器资源,(ii)考虑数据的粘性,或(iii)考虑财产的兼容性。
例如,动作308可包括根据资源聚集索引、高速缓存的数据的粘性的索引,和兼容性索引的加权平均对分区中作为要被分派到财产的候选服务器进行排序。例如,负载平衡器代理可为财产要被分派给的分区中的每个候选服务器计 算加权平均,并根据加权平均来排序那些服务器。经排序的服务器列表按次序提供最合适服务器以用于分派到财产。
资源聚集索引提供在服务器处剩余的可用资源的估计的指示,并可以以任何合适的方式被计算,用于估计服务器处的剩余资源。例如,负载平衡器代理可跟踪哪些财产被分配到分区中的哪些服务器,并给定这些财产的平均负载来估计每个服务器剩余可用资源。
高速缓存的数据的粘性的索引可指示数据已经被高速缓存在服务器多久了。例如,负载平衡器代理可跟踪高速缓存的数据在服务器已经存活了多久。数据被高速缓存越久,粘性越有价值,因为这个数据将显得更有价值。
兼容性索引可提供服务器处的不同财产的兼容性(或不兼容性)分数。例如,负载平衡器代理可基于被分派到服务器的财产的兼容性来给服务器打分,而把针对不兼容财产的出现的罚分考虑在内。负载平衡器代理可使用兼容性索引来最小化不兼容财产分派。例如,由于主要使用网络I/O资源的财产可与主要使用盘I/O资源的财产兼容,负载平衡器代理可将这些财产分派到同一服务器,而避免将同样重度使用网络I/O和盘I/O的其它财产分派到那个服务器。
计算兼容性索引可包括:(i)从各规则获取预定义的不兼容财产类型和大小的罚分系数;(ii)使用来自各规则的兼容性矩阵来获得主存在服务器上的全部不兼容财产的列表;(iii)标识服务器上的财产的负载类型(例如,S、M、L、XL)以及它们出现在服务器上的频率;以及(iv)对于每个不兼容财产类型,将它们的罚分系数提升到频率的幂。计算兼容性索引(compatibility index)可用以下等式汇总:
compatibility index=(Πi=1ncifi)*100]]>
其中:
n=特定负载类型的不兼容财产计数,
c=兼容性罚分系数,以及
f=特定负载类型的不兼容财产的出现频率。
例如,表7表示示例兼容性矩阵,它可被定义在各规则中,指定哪些财产 类型相互兼容:
类型1类型2T1T2T4T1T4T2T4T3
表7
例如,财产类型T1可以是主要使用盘I/O的财产,而财产类型T2是主要使用网络I/O的财产。此外,表8表示各规则中定义的示例罚分系数,它指定特定大小的不兼容财产的罚分:
负载类型兼容性罚分系数XL0.6M0.7S0.90
表8
如果,给定上面的兼容性索引,服务器要被分派三个不兼容的XL大小的财产,两个不兼容的M大小的财产,和一个不兼容的S大小的财产,服务器的兼容性系数索引将使用上面的公式来计算如:(0.6)3*(0.7)2*(0.9)*100=9.52%.
通过以最大化兼容性索引分数的方式作出服务器分派,负载平衡器代理可使兼容财产到服务器的分派最大化并更高效地使用服务器资源。
如前面讨论的,负载平衡器代理可为财产要被分派给的分区中的每个候选服务器计算加权平均,并根据加权平均来排序那些服务器。例如,如果财产需要被分派到五个服务器的一分区,针对一个服务器的加权平均的计算可被如表9指定的来执行:


表9
对分区中的其它四个服务器也可以计算类似的加权平均。五个服务器可接着根据它们的加权平均值来排序。表10示出一个排序示例:
服务器ID分数170%250%350%442%538%
表10
财产可接着根据经排序的次序来被分派到服务器,具有更高分数的服务器更合适将财产分派给它们。
财产可通过更新财产到服务器的映射来被分派到服务器。在作出财产分派之后,负载平衡器代理可为所分派的服务器调整聚集资源索引以考虑将被新分派的财产使用的资源。
方法300还可包括处理服务器缺陷的动作(动作312)。在一些实例中,在一分区中pop可能不具有足够的服务器资源以完全将财产分派到可用服务器。当这个发生时,动作312可包括在pop处的负载平衡器代理请求一些负载由在其它pop处的服务器分摊。这进一步结合代理间负载平衡来描述。如果没有其它pop可处理所请求的负载,财产可被分派到在该pop处的同一服务器多次。动作312还可包括诸如向CDN管理员发出一个或多个警报。
方法300还包括确定针对经选择的财产是否存在更多分区的动作(动作314)以及确定在经排序的财产列表中是否存在更多财产的动作(动作316)。当存在更多分区和/或财产时,方法300可跳回到动作304和/或306,确保全部财产和分区被考虑并且任何合适的服务器分派被作出。
2.含优先权的代理间负载平衡
在一些实施例中,在边缘数据中心处的负载平衡器代理可(基于规则)确定在边缘数据中心处的负载条件已经达到指示过载的特定参数。当这个发生时,负载平衡器代理可联系在一个或多个其它边缘数据中心处的其它负载平衡器代理,以试图将在该边缘数据中心处的一些流量平衡到一个或多个其它边缘数据中心。例如,图1包括边缘数据中心102a和边缘数据中心102b之间的双箭头,指示负载平衡器代理104a和负载平衡器代理104b可相互通信(并与在其它边缘数据中心处的其它负载平衡器代理通信)。
图4示出了用于边缘数据中心处的负载平衡器代理将流量卸载到另一边缘数据中心的示例方法400的流程图。方法400将参考计算机架构100的组件和数据来描述。
方法400包括确定流量应当被卸载的动作(动作402)。动作402可包括确定在边缘数据中心处的流量应当被卸载到一个或多个其它边缘数据中心。例如,负载平衡器代理104a可从规则数据存储124中查阅业务规则以确定流量是否应当被卸载。在一些实施例中,业务规则也采取以下形式:使用任何合适的结构化语言(例如XML、C#、Java),if<condition>then<action>(如果<条件>那么<动作>)。在一些实施例中,示例规则可包括:
●如果代理发现pop中的资源消耗达70%,那么就尝试将25%的流量卸载到其它pop。
●如果代理检测其pop的健康下降在30%-40%之间,那么就尝试将50%的流量卸载到其它pop。可根据NRT数据中的健康索引来测量健康,健康索引根据类似多少服务器在转/不转、多少服务器被加载等的因素给pop健康进行打分。
方法400还包括向其它边缘数据中心发送卸载请求的动作(动作404)。动作404可包括确定请求将流量卸载到其它边缘数据中心的优先级水平的动作。例如,负载平衡器代理104a可确定将流量卸载到其它边缘数据中心的紧急度,并据此确定优先级水平。在确定是否向负载平衡器代理104a出借资源时,其它负载平衡器代理可使用该优先级。在一些实施例中,优先级水平可包括在表11中指定的示例:

表11
动作404还可包括向每个其它边缘数据中心发送卸载请求的动作,每个卸载请求指示所确定的优先级水平。例如,负载平衡器代理104a可向在边缘数据中心102b处的负载平衡器代理104b发送卸载请求。负载平衡器代理104a还可向在未描绘的其它边缘数据中心处的一个或多个其它负载平衡器代理发送卸载请求。当一负载平衡器代理向多个其它负载平衡器代理发送卸载请求时,该负载平衡器代理可以以定时的、异步的方式来这样做。
方法400还包括向其它边缘数据中心发送卸载请求的动作(动作404)。动作404可包括从一个或多个其它边缘数据中心接收一个或多个回答的动作,包括指示资源可被该负载平衡器代理使用的一个或多个回答。例如,负载平衡器代理104a可从它向它们发送卸载请求的一个或多个边缘数据中心接收回答。回答可指示其它边缘数据中心具有可由该负载平衡器代理用于卸载流量的资源。在一些实施例中,回答包括在其它边缘数据中心处的可用的服务器的列表。在一些实施例中,回答指示资源保证有效并且被保留以供负载平衡器代理104a使用预定或协商的一段时间。动作404还可包括接收指示资源不能供负载平衡器代理使用(即,协助是不可能的)的一个或多个回答。
方法400还包括向至少一个边缘数据卸载流量的动作(动作408)。动作408可包括对一个或多个回答进行排序以标识至少一个边缘数据中心供卸载流量的动作。例如,如果负载平衡器代理104a从一个以上边缘数据中心接收肯定回答,负载平衡器代理104a可将这些回答进行排序以确定流量应当被卸载到哪个(些)边缘数据中心。在一些实施例中,对回答排序包括为每个数据中心计算各因素的加权平均。因素可包括,例如,边缘数据中心的(物理的或网络的) 距离、将流量卸载到该边缘数据中心的花费(例如,针对带宽的货币花费)、和/或已经在该边缘数据中心成为可用的资源。例如,即使一个边缘数据中心相对于其它可用边缘数据中心具有更高的货币花费,可能希望使用那个边缘数据中心,因为它相比其它可用边缘数据中心可提供更多数量的资源,和/或因为它比其它可用边缘数据中心更近。
动作408可包括向至少一个已标识的边缘数据中心卸载流量的动作。例如,一旦想要的边缘数据中心被选择,负载平衡器代理104a可向所标识的边缘数据中心发送想要使用的服务器的列表连同资源清单。负载平衡器代理104a可将一些流量卸载到一个边缘数据中心,并将其余的流量卸载到一个或多个其它边缘数据中心。
如果一个边缘数据中心已经使得资源对负载平衡器代理104a可用,且负载平衡器代理104a将不使用那些资源(例如,因为它选择使用在另一个边缘数据中心处的资源),负载平衡器代理104可通知该边缘数据中心那些资源可被释放。例如,负载平衡器代理104a可通知一边缘数据中心在该边缘数据中心处的成为可用/保留的一些或全部服务器可被释放。
因此,当边缘数据中心确定它进入或接近过载情况时,方法400允许该边缘数据中心利用在其它边缘数据中心处的资源。
3.在中央服务和规则数据库之间的反馈回路
如先前讨论的,负载平衡器服务122,在一些实施例中,是与长期趋势数据存储116和规则数据存储124进行双向通信的。因此,负载平衡器服务122可被配置来参与到反馈回路以基于长期趋势来自我评估和自我改善规则。通过将来自长期趋势数据存储116的长期数据用作主要输入,负载平衡器服务122可确定针对配置参数和在规则数据存储124中的业务规则的经优化的设置。
在一些实施例中,反馈回路显式地发生。例如,当对配置值(例如,兼容性罚分、排序准则权重)作出改变时,负载平衡器服务122可为CDN、为pop、为财产等作出性能数据快照。接着,负载平衡器服务122可随后分析该快照以确定对配置值的改变对相关组件的性能的影响。如果存在由改变引起的CDN中的性能下降,警报可被生成和/或配置值可被自动调整(例如,恢复原状)。
在附加或替换的实施例中,反馈回路隐式地发生。由于日志数据可(例如 被趋势聚集器118)持续聚集和(例如被负载平衡器服务122)分析,并且由于负载平衡器服务122被配置来识别并适应日志数据中的改变(例如,每天地),对财产的负载和/或由财产消费的资源的类型的改变应当最终被考虑。
反馈回路可在实况的和模拟的日志两者上工作,并且可在实况的和模拟的配置参数/规则两者上操作。表12指定反馈回路的隐式和显式元素如何在每种类型上工作。

表12
4.孵化
一些实施例包括一个或多个孵化池的使用。通常,当财产首先被添加到CDN时,CDN可将财产分派到孵化池。在孵化池中,财产被分析以确定财产的一个或多个属性,诸如T恤尺寸(例如S、M、L、XL)以及流量模式(例如,峰值流量周期,低流量周期等)。一旦财产已经在孵化池的上下文内被分析,该财产就可被分派到更一般的池。
图5示出了用于使用孵化池确定财产的一个或多个属性的示例方法500的流程图。方法500将参考计算机架构100的组件和数据来描述。
方法500包括确定孵化周期的动作(动作502)。动作502可包括基于对负载大小的估计和财产的流量类型并基于定义添加到孵化池的财产的最小和最大孵化时间的一个或多个规则来确定孵化周期的动作。例如,负载平衡器服务122或CDN内的另一个管理系统可为要被添加到该CDN的财产确定孵化周期。确定孵化周期可基于(例如从客户)所提供的关于财产的信息,并基于规则数据存储124中的一般业务规则。
在一些实施例中,确定孵化周期是基于可影响财产在孵化中花费的时间的 量的客户事实索引(CTI)。如果客户具有高CTI,意味着CDN具有关于客户如何特征化财产的高级别的信任,那么CDN可将那个客户的新添加的财产在孵化中留较短时间周期。相反,如果客户具有低CTI,意味着CDN具有关于客户如何特征化财产的低级别的信任,那么CDN可将那个客户的新添加的财产在孵化中留较长时间周期。
例如,当客户初次将一个财产登载到CDN时,CDN可询问客户关于该财产的一个或多个问题。这些问题可被设计来帮助CDN计算财产的属性的一般近似值(例如,负载大小和流量类型)。如果这是客户登载的第一个财产,CDN可对客户提供的回答应用相对低级别的信任,并将该财产在孵化中留较长时间段。
在财产进入孵化之后,CDN可基于对财产的实际使用的观察来计算先前估计的属性。如果计算得的属性类似于基于客户输入近似的那些,那么该客户可被分派高CTI。如果计算得的属性与基于客户输入近似的那些不类似,那么该客户可被分派低CTI。CDN可随时间,诸如在财产已经被释放到生产池之后通过重新计算属性并因此更新CTI来细化客户的CTI。
在一些实施例中,CTI是表示为百分比的合成索引。CTI可基于客户的说出关于财产特征的“事实”的跟踪记录。CTI也可以基于财产的实际性能。客户的跟踪记录和财产的实际性能可被不同地加权(例如,客户的事实的权重为1,而实际财产性能的权重为2)。例如,如果客户具有80%的历史CTI,并在新财产孵化期间,实际性能是客户估计的90%,新CTI可被计算为(80+(90*2))/3=~86%。
如所指示的,确定孵化周期是基于规则数据存储124中的业务规则。例如,规则可指定最小孵化周期和最大孵化周期。基于CTI,最终孵化周期可在最小和最大之间。例如,如果客户具有为90%或更大的CTI,那么客户的新财产可在孵化中仅被留最小周期。如果客户具有少于90%的CTI,那么客户的新财产可在孵化中被留大于最小周期,并随CTI分数变低接近最大周期。
方法500还包括向孵化池添加财产的动作(动作504)。动作504可包括向孵化池添加财产的动作,包括将孵化池的一个或多个服务器资源分配到该财产。例如,负载平衡器服务122或CDN内的另一个管理系统可将该财产分派 到被设置为与孵化池隔开的指定池。如此,财产可被分派到在边缘数据中心/pop处的对应分区。
动作504还可包括为所确定的孵化周期分析财产的负载和流量模式。例如,在其在孵化池中期间,负载平衡器服务122可分析客户机负载模式、财产提供的内容的类型、在服务客户机时在边缘数据中心的服务器处使用的资源的类型等等。动作504还可包括基于向孵化池添加财产来确定该财产的负载大小或流量类型的动作。例如,通过使用在孵化期间收集的数据(例如,客户机负载模式、财产提供的内容的类型、在边缘数据中心的服务器处使用的资源的类型),CDN可计算财产的大小和流量类型,并将此信息存储在规则数据存储124中。
方法500还可包括处理孵化溢出的动作(动作506)。例如,规则数据存储124中的规则可指定条件,在该条件下新孵化的财产可溢出其被分配的资源并使用附加资源。在一个示例中,规则可指定VIP客户的财产可自动被允许溢出,并且该溢出默认对非VIP财产禁止。在另一个示例中,规则可指定如果财产展现了超过了特定的阈值的持续的增长,对该财产溢出可被允许。规则还可为停止溢出指定条件。
动作506可包括确定财产超出一个或多个被分配的服务器资源并将一个或多个附加资源分配到该财产的动作。例如,负载平衡器服务122或CDN内的另一个管理系统可确定财产成长到大于其被分配的资源并因此它被允许溢出。作为响应,CDN可分配给该财产该孵化池内的更多资源,溢出到另一个孵化池内的资源,和/或溢出到非孵化池内的资源(例如针对VIP客户)。
方法500还可包括执行孵化后步骤的动作(动作508)。例如,在孵化周期结束后,可确定已收集到关于该财产的并不足够的信息。因此,对该财产的孵化周期可被延长。在另一个示例中,该财产的客户的CTI索引可被更新,如上面描述的。在又一个示例中,可为财产在孵化阶段花费的时间向客户开具账单,和/或收费规则可基于在孵化期间收集的信息来更新。
方法500还可包括对财产加压。例如,当财产在孵化中时,CDN可对财产运行压力测试负载。这样做可帮助确定在极端负载情形期间财产的行为模式以及财产对CDN的影响。在一些实施例中,如果客户选择经受压力测试,他们可被给予令人满意的收费待遇。例如,在登载期间,可向客户提供对执行针对 财产的压力测试的选项。客户可能能够指定压力测试参数,诸如压力测试时间段,用作压力测试的一部分的综合测试数据的类型,等。压力测试参数的类型和边界可在规则中被定义。CDN可使用CDN中未使用的或正在使用的资源、CDN中的专用资源、和/或从CDN中分离的资源来生成压力负载。
因此,在将财产释放到一般CDN资源上之前,孵化可帮助获得关于财产的数据并定义围绕财产的规则。这样做可帮助细化CDN的与客户的关系,并保护CDN资源的完整性。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作或上述动作的次序。更具体而言,所描述的特征和动作是作为实现权利要求书的示例形式而公开的。
本发明的各实施例可包括或利用专用或通用计算机系统,该专用或通用计算机系统包括诸如举例而言一个或多个处理器和系统存储器的计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其它计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令和/或数据结构的计算机可读介质是计算机存储介质。承载计算机可执行指令和/或数据结构的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同种类的计算机可读介质:计算机存储介质和传输介质。
存储计算机可执行指令和/或数据结构的计算机存储介质是物理存储介质。物理存储介质包括可记录型存储设备,诸如RAM、ROM、EEPROM、固态驱动器(“SSD”)、闪存、相变存储器(“PCM”)、光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的程序代码装置且可由通用或专用计算机系统访问的任何其他物理存储介质。
传输介质可包括可用于携带计算机可执行指令或数据结构形式的程序代码并可由通用或专用计算机系统访问的网络和/或数据链路。“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机系统时,该计算机系统将该连接视为传输介 质。以上介质的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在一个或多个处理器处执行时使通用计算机系统、专用计算机系统、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、平板、寻呼机、路由器、交换机等等。本发明也可以在通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。如此,在分布式系统环境中,计算机系统可包括多个组成部分计算机系统。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备两者中。
本领域技术人员还将理解本发明可在云计算环境中实践。云计算环境可以是分布式的,但这不是必须的。在分布时,云计算环境可以国际性地分布在一个组织内,和/或具有跨多个组织拥有的组件。在该描述和下面的权利要求书中,“云计算”被定义为用于允许对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可从这样的模型(在被合适地部署时)中获得的任何其他多个优点。
云计算模型可由各种特性组成,诸如按需自服务、广泛网络访问、资源池、快速灵活性、和所测定的服务等。云计算模型还可以以各种服务模型的形式出现,诸如例如软件即服务(“SaaS”)、平台即服务(“PaaS”)以及基础结构 即服务(“IaaS)。”云计算模型还可以使用不同的部署模型来部署,诸如私有云、社区云、公共云、混合云等。
一些实施例,诸如云计算环境,可包括一系统,该系统包括一个或多个主机,每个主机能够运行一个或多个虚拟机。在操作期间,虚拟机模拟可操作的计算系统,支持一个操作系统并且也许还支持一个或多个其他应用。在一些实施例中,每个主机包括管理程序,该管理程序使用从虚拟机的视角抽象出的物理资源来模拟虚拟机的虚拟资源。管理程序还提供各虚拟机之间的适当的隔离。因此,从任何给定的虚拟机的角度来看,管理程序提供该虚拟机正与物理资源对接的错觉,即便该虚拟机仅仅与物理资源的表象(例如,虚拟资源)对接。物理资源的示例包括处理容量、存储器、盘空间、网络带宽、媒体驱动器等等。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变都被权利要求书的范围所涵盖。

云中的CDN负载平衡.pdf_第1页
第1页 / 共23页
云中的CDN负载平衡.pdf_第2页
第2页 / 共23页
云中的CDN负载平衡.pdf_第3页
第3页 / 共23页
点击查看更多>>
资源描述

《云中的CDN负载平衡.pdf》由会员分享,可在线阅读,更多相关《云中的CDN负载平衡.pdf(23页珍藏版)》请在专利查询网上搜索。

云中的CND负载平衡。在内容递送网络的边缘数据中心处,服务器资源被分配给正由边缘数据中心服务的财产。基于近似实时数据,根据趋势流量在边缘数据中心处对财产排序。在边缘数据中心处,为所排序的财产的至少一个财产分配服务器资源。基于从长期趋势中开发的规则来分配服务器资源。资源分配包括计算在边缘数据中心处的分区中的财产的服务器需求,并将该财产的服务器需求分配到分区中的可用服务器。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1