分布式负载平衡器的利记博彩app

文档序号:7735984阅读:228来源:国知局
专利名称:分布式负载平衡器的利记博彩app
分布式负载平衡器背景现在诸如因特网等全球通信网络随着依赖这样的网络来通信和数据传送操作的 专用和公司用户数量的与日俱增而无处不在。随着通信安全的改进,期望更多的数据遍历 诸如服务器主机等源和目的地之间的全球通信数据骨干,因此对处理和存储数据的实体有 日益增长的需求。通常,这些增长的需求通过添加更多交换设备和服务器来处理负载而在 目的地解决。网络负载平衡器向客户机提供对服务器(例如,“主机”)的集合所主存的服务的 访问。客户机连接到(或通过)负载平衡器,从客户机的观点来看,负载平衡器根据一组规 则透明地将客户机转发到主机。一般而言,负载平衡上下文包括被表示为会话的序列的形 式的分组;其中这些会话通常应按“平衡”方式在可用主机之间分配。此外,只要主机是活 动的(例如,根据“会话亲和性”),每一会话的每个分组一般应针对相同的主机。为了解决这些问题,数据中心系统采用整体式负载平衡器,该整体式负载平衡器 监视主机的状态(例如,活跃度/负载)并且以所有活动会话的表的形式来维持状态。当 新会话到达时,负载平衡器选择可用的最小负载的主机,并且将会话分配给该主机。同样, 为了提供会话亲和性,负载平衡器必需通过将条目添加到其会话表来“记住”这一分配/路 由决定。当这个会话的后续分组到达平衡负载器时,单个表查找确定正确的主机。然而,各 个负载平衡器可以是单个故障点和瓶颈,其中它的会话表的大小(以及由此所维护的状态 量)随着增长的吞吐量而增加-并且现有会话通信量的路由决定需要状态查找(每一分组 一个)。规避这些限制需要串联工作(横向扩展)的多个整体式负载平衡器、和/或较大且 更强大的负载平衡器(纵向扩展)。然而,横向扩展这些负载平衡设备是复杂的,最值得注 意的是由于需要在负载平衡器之间维持一致的状态。同样,纵向扩展负载平衡设备是昂贵 的,因为固定硬件中的成本对吞吐量是非线性的(例如,具有两倍吞吐量能力的负载平衡 器花费的价格比两倍多得多)。此外,对于整体式负载平衡器的可靠性考虑进一步增加了所 涉及的挑战,因为没有相当的成本就不能容易地补偿这些系统的故障。概述以下提出了简化概述以便提供对在此描述的某些方面的基本理解。此小结不是所 要求保护的主题的详尽的概述。它既不旨在标识出所要求保护的主题的关键或重要的要 素,也不描绘其范围。其唯一的目的是以简化形式呈现一些概念,作为稍后呈现的更详细描 述的序言。本发明提供了分布式负载平衡器系统,该系统经由多路分解器(和/或多路复用 器)以及持续地适应于增加的需求的负载平衡器服务器的网络来允许数据中心的容量的 逐步缩放和增长_(而不是添加另一整体式/集成式负载平衡器,其中它的完全容量可保持 利用不足)。多路分解器可充当数据中心的交换系统与负载平衡器服务器之间的接口(例 如,多路分解器充当具有IOG端口的L2交换机和具有IG端口的PC之间的接口)。这些负 载平衡器服务器包括商品机器(例如,个人计算机、膝上型计算机等等),它们通常被认为 是通用类型机器而不是为特定负载平衡器目的特制的。负载平衡器服务器可还包括虚拟IP地址(VIP身份),使得应用程序可以将它们的请求定向到与其相关联的地址,而无需指 定要使用的特定服务器;其中负载平衡可通过将VIP映射到表示各个服务器的多个媒体访 问控制地址(MAC旋转)来发生。此外,这些负载平衡器服务器可以按对或较大的集合来安 排,以便允许从服务器故障中快速恢复。多路分解器基于对数据流分组的检查来将请求重 新定向到相应的负载平衡器服务器。多路分解器的故障可以通过将它们安排在附连到相应 的伙伴L2交换机的伙伴对中来对用户隐藏,并且在应用程序服务器故障的情况下,可以修 改或自动地设置配置,使得通信量不再被定向到发生故障的应用程序服务器。由此,并且从 用户的观点来看,维护了可用性。此外,多路分解器可以检查传入数据流(例如,5元组、源地址、源端口、目的地地 址、目的地端口、协议)的IP头部,以供经由映射组件将其随后传送到相应的负载平衡器服 务器。因此,数据分组可以基于分配给负载平衡器服务器的分组以及环境因素(例如,负载 平衡器服务器上的当前负载)的属性来划分。负载平衡器服务器进一步拥有关于服务器 (例如,请求服务服务器、POD服务器等等)的操作的知识,这些服务器对数据中心的传入请 求进行服务。因此,从客户机侧,采用单个IP地址来提交对数据中心的请求,这提供了作为 呈现给客户机的多个请求服务服务器的透明度。在一相关方面,与多路分解器相关联的映射组件可以检查传入数据流,并且将与 其相关联的所有分组分配给负载平衡器服务器(例如,无状态映射)_其中数据分组基于分 组和环境因素的属性来划分,环境因素诸如服务器上的当前负载等。随后,请求可以从负载 平衡器服务器转发到请求服务服务器。这一安排增加了系统的稳定性,同时增加了其缩放 的灵活性。因此,可以分解负载平衡功能/设计来增加负载平衡和交换机制的回复力和灵 活性。随着系统大小的增加,这一系统进一步便于维护恒定且稳态的每一主机的带宽。此 外,本发明的负载平衡方案快速地对系统中负载/通信量条件的改变作出响应。在一方面,请求可由L2交换机来接收并且由多路分解器在负载平衡器服务器上 分布(例如,物理和/或逻辑接口,其中多个MAC地址与VIP相关联)。此外,在又一方面,负 载平衡功能可以被集成为架顶式交换机的一部分,以便进一步增强它们的功能-其中VIP 身份可以驻留在这些TOR交换机中,这些TOR交换机使得服务器的机架能够担当具有对发 送到一个或多个VIP身份的请求可用的所有服务器的计算能力的单元。根据本发明的方法,首先请求被数据中心接收,其中这一传入请求经由零个或多 个交换机来路由到多路分解器。这一多路分解器进一步用多个负载平衡器服务器来与交 换机接口,其中多路分解器基于对数据流分组的检测来将请求重新定向到相应的负载平衡 器。本发明的分布式安排允许计算的缩放和增长操作,其中通过改变负载平衡器服务器的 数量来调整负载平衡操作的容量;因此减少了服务的利用不足。此外,尽管在概念上所有这 些请求被提交到与数据中心相关联的单个IP地址,但每一请求可以由不同的负载平衡器 服务器来处理。为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护的主题的某 些说明性方面。这些方面指示可实践本主题的各种方式,它们均落在所要求保护的主题的 范围之内。当结合附图阅读以下详细描述时,本发明的其他优点和新颖特征将变得显而易 见。附图简述


图1示出了根据本发明的一方面的分布式负载平衡器系统的框图。图2示出了采用整体式和/或集成式的服务平衡器作为数据中心操作的一部分的 现有技术系统。图3示出了根据本发明又一方面的具有负载平衡功能的架顶式交换机的特定方图4示出了根据本发明一方面的分布任务的方法。图5示出了根据本发明又一方面的具有映射组件的又一负载平衡器系统。图6示出了根据本发明又一方面的分布负载平衡功能来作为系统的一部分的特 定方法。图7示出了定位负载平衡器服务器来作为与请求服务服务器相关联的机架的一 部分的负载分布系统的特定方面。图8示出根据本发明又一方面的便于负载平衡的人工智能组件。图9示出了用于实现本发明的各方面的合适的操作环境的示意性框图。图10示出了用于本发明的示例计算环境的又一示意性框图。详细描述现在将参考附图描述本发明的各方面,全部附图中相同的标号指的是相同或相应 的元素。然而应该了解,附图及其相关详细描述不旨在将所要求保护的主题限于所公开的 具体形式。相反,其意图是覆盖落在所要求保护的主题的精神和范围内的所有修改、等效和 替换方案。图1示出了根据本发明一方面的分布式负载平衡器系统110的示意性框图,该分 布式负载平衡器系统允许数据中心100的容量的逐步缩放和增长。一般而言,数据中心100 表示便于分布式处理(例如,客户机/服务器)的中央储存库,其中应用程序和/或服务可 以据此被主存(例如,数据库、文件服务器、应用程序服务器、中间件等等)。例如,数据中 心100可包括任何数据、代码、或web服务、云服务、企业资源处理(ERP)、以及顾客关系管理 (CRM)的处理能力来便于其分布式处理。此外,这一数据中心100可包括服务器机架、电信 机架、功率分布单元、计算机室空调单元等等。类似地,与这一数据中心相关联的数据库可 包括机架布局表,该机架布局表包括机架项id、名称、数据中心、搭配、行、机柜、开始空位号 和项占用的空位数量。分布式负载平衡器系统100可被实现为多路分解器125和专用于负载平衡的服务 器(例如,负载平衡器服务器)111、113、115(1至n,其中η为整数)的安排的一部分。如本 申请中所描述的,术语多路分解器通常涉及描述请求服务服务器上的工作负载的分布。然 而,当提供外部用户或工作负载的源和请求服务服务器之间的连接时,则可进一步实现多 路复用器和/或多路分解器。多路分解器125可获得来自交换系统130的通信量,并且将 该通信量重新分布到负载平衡器服务器111、113、115,其中这些负载平衡器服务器可采用 商品机器,诸如个人计算机、膝上型计算机等等,它们通常被认为是不为特定负载平衡目特 制的通用类型机器。多路分解器125可包括硬件和软件组件,以供对传入数据流(例如,5 元组、源地址、源端口、目的地地址、目的地端口、协议)的IP头部的检测,以供将其随后传 送到相应的负载平衡器服务器,其中数据分组基于分组/环境因素(例如,负载平衡器服务 器上的当前负载)的属性来划分,并且被分配给负载平衡器服务器111、113、115。这一分配可经由与多路分解器125相关联的映射组件(未示出)来进一步促进。例如,映射组件可 使用诸如循环、随机或层3/4散列(以保留对给定会话的分组的按次序传递)等机制来将 数据分组分布到负载平衡器服务器111、113、115。同样,如路由函数所确定的,负载平衡器服务器111、113、115可随后将其服务的 分组路由到多个请求服务服务器^?^丨^^丨“至!!!,其中!!!为整数)。例如,对分组流的 路由可采用多个会话,其中在评估所有这些请求服务服务器117、119、121的活跃度和负载 之后发生请求服务服务器的分配。换言之,负载平衡器服务器111、113、115拥有关于请求 服务服务器117、119、121(例如,请求服务服务器、POD服务器等等)的操作的知识,这些服 务器对数据中心的传入请求进行服务。数据中心100中这一分布式负载平衡的安排基于数据中心100的要求增加了负载 平衡能力的缩放的灵活性。由此,可以分解负载平衡功能/设计来增加负载平衡和交换机 制的回复力和灵活性。随着系统大小的增加,这便于维护恒定且稳态的每一主机的带宽。此 外,本发明的负载平衡方案快速地对系统中负载/通信量条件的改变作出响应。可以理解, 图1本质上是示例性的,并且多路分解器还可以是交换机或路由器的一部分。在一相关方面,分布工作负载_诸如在多个服务器之间分配一系列请求_可以分 成两个阶段。在第一阶段,可使用第一类型的硬件、软件和工作负载分布算法来在多个负载 平衡服务器之间划分工作负载。在第二阶段,负载平衡服务器可经由第二类型的硬件、软件 和工作负载分布算法来在多个请求服务服务器之间进一步划分第一阶段所分配的工作负 载。例如,可选择第一类型的硬件、软件、和工作负载分布算法,通过采用主要用硬件 实现的基本上简单的操作来使性能最大化、减少所需的会话状态量、并且使处理较大工作 负载的成本最小化。由此,第一类型的硬件、软件、和工作负载分布算法可被称为多路分解 器125。如将在下文中详细地描述的,第一类型的硬件、软件、和工作负载分布算法的特定实 现可包括(1)将多个交换机或路由器作为硬件来使用,将链接状态协议作为软件(例如, 0SPF)来使用,将目的地IP地址作为会话ID来使用,并且将等价多径作为工作负载分布算 法来使用;(2)将单个交换机作为硬件来使用,将交换机的链接结合能力作为软件来使用 (在主要的交换机厂商的术语中还被称为端口通道),并且将交换机的链接结合实现所提 供的各种算法中的一个作为该算法来使用(例如,IP 5元组的散列、循环等等)。根据又一方面,可选择第二类型的硬件、软件、和工作负载分布算法来使负载平衡 服务器的通用性最大化。通常,期望负载平衡服务器能够实现任何工作负载分布算法,该 算法采用可用的信息(例如,与其服务的当前工作负载有关的信息;对应被定向到适当的 请求服务服务器的请求或工作负载项的深度检查;其他负载平衡服务器正在服务的工作负 载;实现多路复用器/多路分解器的组件的工作负载或状态;请求服务服务器的工作负载 或状态;对于未来时间的任何这些元素的工作负载或状态的预测等等)作为其决策过程的 一部分。此外,期望负载平衡服务器能够卸载来自请求服务服务器的功能,诸如加密、解密、 认证、或登录。第二类型的硬件的一特定方面可以是通用目的计算机,其类型通常被用作数 据中心服务器、台式/家庭计算机、或膝上型计算机,这是由于这些设备的成本低以及它们 能接受和执行实现任何所需功能的软件和算法。可以理解,例如取决于目标成本、目标性能、以及现有设备的配置,第一类型和第二类型的硬件、软件、和工作负载分布算法可以按多种方式来结合。还可以理解,本发明允 许基本上简单的高速机制(第一类型的硬件、软件、和工作负载分布算法)以供将工作负载 分解到可使用商品服务器的级别;实现请求到请求服务服务器的所需分布(例如,采用可 在个人计算机上运行的任意软件,而无需硬件的大量投入)。此外,根据本发明的一安排是 增量式可缩放的,使得随着工作负载的增加或减小,负载平衡服务器的数量可分别地增加 或减小来匹配该工作负载。容量被添加到或从分布式负载平衡系统110中减去的粒度是比 常规系统(例如,常规的整体式负载平衡器)的粒度精细得多的粒度。概念上,在多路分解器和负载平衡服务器之间可存在第一网络,并且在负载平衡 服务器和请求服务服务器之间可存在第二网络。这些网络的每一个可由任何数量的路由 器、交换机或链接(例如,包括无)来构建。此外,对第一网络或第二网络的类型通常不存 在限制。例如,网络可以是层2、层3、或层4网络或其任意组合。图2示出了采用整体式负载平衡器230、232、234的常规负载平衡系统-而不是本 发明的分布式负载平衡器服务器。整体式负载平衡器230、232、234通常在数据中心的各种 请求服务服务器之间传播服务请求。例如,整体式负载平衡器230、232、234将请求转发给 “后端”服务器240中的一个,后端服务器通常回复整体式负载平衡器230、232、234_而请求 数据的客户机不知道各功能的内部分开。当防止客户机与后端服务器直接联系时,通过隐 藏内部网络的结构并且阻止对内核网络栈的攻击或在其他端口上运行的不相关的服务来 获得附加的安全。随着数据中心200的容量的增长,另一整体式负载平衡器被添加_而与其相关联 的能力保持未使用,直到数据中心的下一扩展。然而,就硬件、软件、设置和管理而言,这可 能是昂贵的任务。因此,通过使用整体式负载平衡器,不能有效地特制对系统的增强以适应 数据的增量式增长。在一相关方面,这种整体式负载平衡器通常不知道后端服务器240的 操作,并且一般不易于在与后端服务器240相关联的机器之间提供智能的分布选择。图3示出了根据本发明又一方面的分解和分布式负载平衡器系统300的又一方 面。系统300使得负载平衡功能能够被集成为架顶式(TOR)交换机311、313、315(1至k,其 中k为整数)的一部分,以便进一步增强它们的功能并且形成增强的TOR。在系统300中,VIP身份可驻留在TOR交换机311、313、315中,后者可以进一步启 用例如层3功能。通常,TOR交换可提供各种体系结构的优点来帮助故障的隔离和包含,所 述体系结构的优点诸如机架内的服务器的快速端到端的交换、上行链路的可预测的超额订 阅以及较小的交换域(每一机架一个)等。在这一安排中,VIP 350可驻留在多个TOR中。 如图3中云示意图331所表示的,多路复用器/多路分解器的功能可以使用交换机和/或 路由器的等价多径路由能力来实现,以便创建分布式多路复用器/多路分解器。由此,负载 平衡器服务器的功能可驻留在增强的TOR中。图4示出了根据本发明的又一方面的实现分布式负载平衡器系统的又一方法 400。虽然该示例性方法此处被示出并描述为表示各种事件和/或动作的一系列框,但本发 明并不受所示出的这些框的排序的限制。例如,根据本发明,除了在此示出的次序之外,某 些动作或事件可以按不同的次序发生和/或与其他动作或事件同时发生。此外,不是所有 示出的框、事件或动作都是实施根据本发明的方法所必需的。此外,将会认识到根据本发明 的该示例性方法和其他方法可以与在此图示并描述的方法相关联地实现,也可与未示出或描述的其他系统和装置相关联地实现。首先,在410,数据中心接收请求,该请求例如作为具 有与其相关联的多个分组的数据流。接着,在420,可以检查这些传入数据分组来标识用于流量的标识的字段,其中,在 430,相同的流量中的每一分组可沿着相同的路径来在相同的负载平衡器服务器处终止。由 此,分组可基于分组和环境因素的属性来划分,诸如请求服务服务器的健康、可用性、服务 时间、或负载;负载平衡服务器的健康、可用性或负载;实现多路分解器的组件的健康或可 用性,其中将分组重新定向到负载平衡器服务器以涉及负载平衡器服务器的网络路径知晓 且服务知晓的智能方式发生。诸如一致散列等公知技术可用于以响应于因素的改变的方式 来将流量定向到负载平衡器,这些因素影响对负载平衡器的流量的分配。接着,在440,负载 平衡器服务器可以例如在多个服务请求服务器之间划分所涉及的任务。图5示出了根据本发明一方面的可以提供到负载平衡器服务器的无状态映射的 映射组件502。如路由函数508预定义的,映射组件502可以将每一会话分组定向到指定的 负载平衡器服务器。注意,会话是两个网络实体之间一逻辑系列的请求和响应,这些网络实 体可以横跨若干协议、许多个别连接,并且可以持续不确定的时间长度。某些公共会话类型 包括TCP (传输控制协议)、FTP (文件传输协议)、SSL (安全套接字层)、IPSec (IP安全)/ L2TP (第2层隧道协议)、PPTP (点对点隧道协议)、RDP (远程桌面协议)等等。大多数协 议的会话表征是明确定义的,使得存在每一会话的清楚的开始和结束、以及区分这一会话 的相关联的标识符。然而,某些会话类型可以具有不同的开始而推断的结束,诸如空闲超时 或最大会话持续时间。因此,对于每一会话分组,会话ID 512被用作到路由函数508的输入,会话亲和 性被保留;即,给定会话的每一分组可被路由到相同的负载平衡器服务器。此外,映射组件 502考虑所有负载平衡器服务器的当前负载状态来确定每一会话将被分配并且路由到负载 平衡器服务器中的哪一个。映射组件502检测并且向每一会话分组询问路由信息,路由信息包括例如,会话 ID 512和/或第一会话分组和最后一会话分组上的特殊标签。由此,非第一分组或最后分 组的任何分组被认为是中间会话分组。此外,当已经生成并且分配了会话ID,通常该会话 ID将不再用于后续会话,使得关于给定分组属于哪个会话将不存在模糊。一般地,可以假设 给定会话ID对于一个会话是唯一的,由此,唯一性由标准网络原理或组件来提供。因此,数据分组可以基于分组和环境因素(例如,负载平衡器服务器上的当前负 载)的属性来划分,并且被分配给负载平衡器服务器。负载平衡器服务器进一步拥有关于 其他服务器(例如,请求服务服务器、POD服务器等等)的操作的知识,这些其他服务器对 数据中心的传入请求进行服务。由此,系统500采用定义负载平衡器服务器中的一个或多 个的当前可用性的一个或多个路由函数。路由函数可进一步考虑目的地负载,使得相同会 话的分组继续被路由到相同的目的地主机以保持会话亲和性。图6示出了在多个TOR交换机之间分布负载平衡能力的方法。首先,在610,VIP身 份被分配给TOR交换机,其中当VIP被分配给多个TOR时,则等价多径路由可以将平衡加载 到多个TOR。多个MAC地址可以与VIP相关联,其中这种虚拟IP地址可将服务请求定向到 服务器,而无需指定要使用的特定服务器。由此,TOR可以使用散列或循环算法将通信量重 新定向到相关联的服务器。此外,在服务器发生故障的情况下,可以修改或自动设置配置,使得通信量不再被定向到发生故障的服务器。接着,在620,可以在各交换机之间分布负载 平衡功能,其中负载平衡服务器可以驻留为如此增强的TOR交换机的一部分。在630,服务 器数据中心所接收的请求可以被转发给TOR交换机,用于处理与服务请求相关联的分组。 此外,多路复用器/多路分解器能力可以用硬件和/或软件组件的形式被实现为TOR交换 机的一部分,以便如涉及负载平衡器服务器的用路径感知且服务感知的智能方式将请求定 向到相关联的服务服务器。图7示出了定位负载平衡器服务器702来作为与请求服务服务器704相关联的机 架的一部分的负载分布系统700的又一方面。这一安排允许附加的负载平衡作为服务请求 服务器的一部分,并且负载平衡器服务器可以进一步从请求服务服务器上卸载责任。多路 分解器710进一步允许将传入数据流隧穿到负载平衡器服务器702。可以建立从多路分解 器710到负载平衡器服务器702 (和/或从负载平衡服务器到请求服务服务器)的隧道,其 中会话通过这样的隧道来协商。这样的隧穿可以进一步伴有取决于所涉及的请求和/或交 换机(例如,L2/L3)的类型来建立到服务请求服务器的其他隧道。多路分解器710可以进 一步基于散列函数来指定负载平衡器服务器,其中,负载平衡器服务器可随后与服务请求 服务器通信。例如,多路分解器710可以生成相同的路由函数,该路由函数用平衡的方式将分 组负载分布到可用的负载平衡器服务器和/或服务请求服务器。指定的服务器例如根据常 规分组路由方案和技术来继续接收会话分组。由此,可以针对路由函数来处理会话信息以 便于负载平衡。多路分解器继续将相同会话的会话分组路由到相同的主机直到检测到最后 一分组,以便保留会话亲和性。图8示出了采用人工智能(Al)组件810的系统800,可以采用该人工智能组件来 便于推断和/或确定何时、何地、如何在负载平衡器服务器和/或服务请求服务器之间分布 传入请求。如此处所使用的,术语“推断”通常指的是根据经由事件和/或数据捕获的一组 观察结果来推出或推断系统、环境、和/或用户的状态的过程。可以使用推断来识别特定上 下文或动作,也可以生成例如状态上的概率分布。推断可以是概率性的,即,基于对数据和 事件的考虑计算所关注状态上的概率分布。推断也可以是指用于从一组事件和/或数据构 成较高级事件的技术。这样的推断导致从一组观察到的事件和/或存储的事件数据构建新 的事件或动作,而不管事件在时间接近度上是否紧密相关,以及事件和数据是来自一个还 是若干个事件和数据源。AI组件810可采用如上文中结合促进此处所描述的本发明的各方面描述的各种 合适的基于AI的方案中的任一种。例如,可以经由自动分类系统和过程来促进用于显式或 隐式地学习如何以智能方式来平衡任务和负载的过程。分类可采用基于概率和/或基于统 计的分析(例如,考虑到分析效用和成本)来预测或推断用户期望自动执行的动作。例如, 可采用支持向量机(SVM)分类器。可采用其他分类方法,包括贝叶斯网络、决策树、以及提 供不同独立性模式的概率分类模型。如这里所使用的分类还包括被用来开发优先级模型的 统计回归。如从本说明书中可以容易地理解的,本发明可以使用显式训练(例如,经由一般 训练数据)以及隐式训练(例如,经由观察用户行为、接收外来信息)的分类器,以使得使 用分类器来根据预定准则自动确定向问题返回哪一个答案。例如,对于公知的SVM,SVM经由分类器构造器和特征选择模块中的学习或训练阶段来配置。分类器是将输入属性矢量χ =(xl,x2,x3,x4,xn)映射到该输入属于一个类的置信度的函数,即f(χ)=置信度(类)。如在此所使用的,术语“组件”、“系统”等意指计算机相关实体,或者是硬件、硬件 和软件的组合、软件或执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、 处理器、对象、实例、可执行代码、执行的线程、程序和/或计算机。作为说明,在计算机上运 行的应用程序和计算机都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程 中,并且组件可以位于一个计算机内和/或分布在两个或更多计算机之间。在此使用词语“示例性”意指用作示例、实例或说明。在此被描述为“示例性”的 任何方面或设计并不一定要被解释为相比其他方面或设计更优选或有利。类似地,在此提 供的示例只是出于清楚和理解的目的并且并不意味着以任何方式限制本发明或其部分。可 以理解,本可呈现多个其他或替换示例,但已出于简明的目的而省略了。此外,本发明的全部或部分可以使用产生控制计算机以实现所公开的发明的软 件、固件、硬件或其任意组合的标准编程和/或工程技术而被实现为方法、装置或制品。例 如,计算机可读介质可以包括,但不仅限于,磁存储设备(例如,硬盘、软盘、磁条)、光盘(例 如,紧致盘(…⑶)、数字多功能盘(DVD)…)、智能卡,以及闪存设备(例如,卡、棒、键驱动 器…)。另外,应该理解,可以使用载波来携带计算机可读电子数据,诸如在传输和接收电子 邮件或在访问诸如因特网或局域网(LAN)之类的网络时所使用的那些。当然,本领域的技 术人员将会认识到,可在不背离所要求保护的主题的范围或精神的情况下对此配置进行许 多修改。为了对所公开的主题的各个方面提供上下文,图9和10以及以下讨论旨在提供对 其中可实现所公开的主题的各方面的合适的环境的简要、概括描述。尽管以上在运行在一 台和/或多台计算机上的计算机程序的计算机可执行指令的一般上下文中描述了本主题, 但本领域的技术人员将认识到,本发明也可结合其他程序模块实现。一般而言,程序模块包 括执行特定任务和/或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。而 且,本领域的技术人员可以理解,本发明的方法可用其他计算机系统配置实现,包括单处理 器或多处理器计算机系统、小型计算设备、大型计算机、以及个人计算机、手持式计算设备 (例如,个人数字助理(PDA)、电话、手表…)、基于微处理器或可编程消费产品或工业电子 设备等。所示各方面也可在任务由通过通信网络链接的远程处理设备中执行的分布式计算 环境中实现。然而,即使不是本发明的全部方面,至少也有本发明的部分方面可以在独立计 算机上实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。参考图9,描述了用于实现本发明的各方面的示例性环境910,其包括计算机912。 计算机912包括处理单元914、系统存储器916,以及系统总线918。系统总线918将系统组 件——包括但不仅限于系统存储器916——稱合到处理单元914。处理单元914可以是各 种处理器中的任一种。还可以使用双微处理器及其他多处理器体系结构作为处理单元914。系统总线918可以是若干类型的总线结构中的任一种,包括存储器总线或存储器 控制器、外围总线或外部总线、和/或使用各种可用的总线体系结构中的任一种的局部总 线,可用的总线体系结构包括,但不限于,11位总线、工业标准体系结构(ISA)、微通道体系 结构(MCA)、扩展ISA(EISA)、智能驱动器电子接口(IDE)、VESA局部总线(VLB)、外围部件 互连(PCI)、通用串行总线(USB)、高级图形接口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)以及小型计算机系统接口(SCSI)。系统存储器916包括易失性存储器920和非易失性存储器922。基本输入/输出 系统(BIOS)被存储在非易失性存储器922中,包含例如在启动过程中帮助在计算机912内 的元件之间传输信息的基本例程。作为说明而非限制,非易失性存储器922可以包括只读 存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或者闪存。 易失性存储器920包括充当外部高速缓冲存储器的随机存取存储器(RAM)。作为示例而非 限制,RAM以多种形式可用,诸如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍 数据速率SDRAM (DDR SDRAM)、增强型SDRAM (ESDRAM)、同步链路DRAM (SLDRAM)以及直接存 储器总线(Rambus)RAM(DRRAM)。计算机912还包括可移动的/不可移动的,易失性/非易失性的计算机存储介质。 图9示出了盘存储924,其中这一盘存储924包括但不限于诸如磁盘驱动器、软盘驱动器、磁 带驱动器、Jaz驱动器、Zip驱动器、LS-60驱动器、闪存卡、或者记忆棒等设备。另外,磁盘 存储器924可包括存储介质——分开地或与其他存储介质相结合——包括,但不限于,诸如 紧致盘ROM设备之类的光盘驱动器(CD-ROM)、⑶可记录驱动器(⑶-R驱动器)、⑶可重写 驱动器(⑶-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)。为便于磁盘存储设备924 连接到系统总线918,通常使用诸如接口 926之类的可移动或不可移动接口。应该明白,图9描述了在用户和在合适的操作环境910中描述的基本计算机资源 之间担当中介的软件。这样的软件包括操作系统928。可以存储在磁盘存储器924上的操 作系统928用于控制和分配计算机系统912的资源。系统应用程序930利用由操作系统 928通过存储在系统存储器916或者存储在磁盘存储器924上的程序模块932和程序数据 934对资源的管理。应该明白,在此描述的各个组件可以用各种操作系统或操作系统的组合 来实施。用户通过输入设备936向计算机912输入命令或信息。输入设备936包括,但不 限于,诸如鼠标、跟踪球、指示笔、触摸板之类的指示设备、键盘、麦克风、游戏杆、游戏手柄、 圆盘式卫星天线、扫描仪、TV调谐器卡、数码相机、数字视频摄像机、网络摄像头等等。这些 及其他输入设备通过系统总线918经由接口端口 938连接到处理单元914。接口端口 938 包括,例如,串行端口、并行端口、游戏端口,以及通用串行总线(USB)。输出设备940与输入 设备936使用一些相同类型的端口。如此,例如,可以使用USB端口来向计算机912提供输 入,以及从计算机912向输出设备940输出信息。提供输出适配器942是为了示出存在如 监视器、扬声器、和打印机以及其他输出设备940等需要特殊适配器的一些输出设备940。 输出适配器942包括,作为说明而不是限制,在输出设备940和系统总线918之间提供连接 手段的视频卡和声卡。应该注意,其他设备和/或设备的系统提供诸如远程计算机944之 类的输入和输出两种能力。计算机912可以使用到诸如远程计算机944之类的一个或多个远程计算机的逻辑 连接来在联网环境中操作。远程计算机944可以是个人计算机、服务器、路由器、网络PC、 工作站、基于微处理器的电器、对等设备或其他公共网络节点等等,并且通常包括就计算机 912所描述的许多或全部元件。出于简洁起见,与远程计算机944 一起,只示出了存储器设 备946。远程计算机944通过网络接口 948在逻辑上连接到计算机912,然后,经由通信连 接950在物理上连接。网络接口 948涵盖诸如局域网(LAN)和广域网(WAN)这样的通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜分布式数据接口(⑶DI)、以太网/IEEE 802. 3、令牌环/IEEE 802. 5等。WAN技术包括,但不限于,点对点链路、电路交换网,如综合 业务数字网(ISDN)及其变体,分组交换网络,以及数字订户线(DSL)。通信连接950是指用来将网络接口 948连接到总线918的硬件/软件。尽管为清 楚起见通信连接950被示为在计算机912内部,但是,它也可以位于计算机912外部。连 接到网络接口 948所需的硬件/软件包括,只作示例,内部和外部技术,诸如,调制解调器, 包括常规电话级调制解调器、电缆调制解调器和DSL调制解调器、ISDN适配器,以及以太网 卡。图10是根据本发明一个方面可被用作分布式负载平衡的一部分的示例计算环境 1000的示意性框图。系统1000包括一个或多个客户机1010。客户机1010可以是硬件和 /或软件(例如,线程、进程、计算设备)。系统1000还包括一个或多个服务器1030。服务 器1030也可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器1030可以容纳各 线程以通过例如利用在此描述的各组件执行转换。在客户机1010和服务器1030之间的一 种可能的通信能够以适合在两个或更多计算机进程之间传输的数据分组的形式进行。系统 1000包括通信框架1050,该通信框架1050可以被用来促进客户机1010和服务器1030之 间的通信。客户机1010可在操作上连接至一个或多个客户机数据存储1060,客户机数据存 储可用来存储对客户机1010本地的信息。同样地,服务器1030可在操作上连接到可以用 来存储对服务器1030本地的信息的一个或多个服务器数据存储1040。以上描述的内容包括各个示例性方面。当然,出于描绘这些方面的目的而描述每 一个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到, 许多进一步的组合和排列都是可能的。因此,在此描述的各方面旨在包括所有这些属于所 附权利要求书的精神和范围内的改变、修改和变型。此外,就在说明书或权利要求书中使用术语“包括”而言,这一术语旨在以与术语 “包含”在被用作权利要求书中的过渡词时所解释的相似的方式为包含性的。
权利要求
1.一种计算机实现的系统,包括以下计算机可执行组件将负载平衡器服务器(111、113、115)与数据中心(100)的交换系统(130)进行接口的 多路分解器组件(125);以及所述负载平衡器服务器(111、113、115)在多个请求服务服务器(117、119、121)之间分 布所述数据中心(100)所接收的请求。
2.如权利要求1所述的计算机实现的系统,其特征在于,还包括架顶(TOR)交换机,所 述架顶交换机包括所述多路分解器。
3.如权利要求1所述的计算机实现的系统,其特征在于,所述多路分解器是交换机或 路由器的一部分。
4.如权利要求1所述的计算机实现的系统,其特征在于,所述多路分解器还包括采用 路由函数将请求定向到所述负载平衡器服务器的映射组件。
5.如权利要求1所述的计算机实现的系统,其特征在于,所述多路分解器和所述负载 平衡器服务器与L2、L3、或L4网络或其组合相关联。
6.如权利要求1所述的计算机实现的系统,其特征在于,所述负载平衡器服务器选自 包括不是为负载平衡器功能特制的膝上型计算机、个人计算机或商品机器的组。
7.如权利要求4所述的计算机实现的系统,其特征在于,所述路由函数用可指定到多 个媒体访问控制(MAC)地址的IP地址来实现MAC旋转。
8.如权利要求1所述的计算机实现的系统,其特征在于,还包括便于负载平衡来作为 分布式系统的一部分的人工智能组件。
9.一种计算机实现的方法,包括以下计算机可执行动作经由多路分解器和负载平衡器服务器在数据中心内分布(620)负载平衡功能;以及经由所述多路分解器将接收的传入请求定向(640)到所述负载平衡器服务器。
10.如权利要求9所述的计算机实现的方法,其特征在于,还包括调整负载平衡器服务 器的数量来适应传入请求。
11.如权利要求9所述的计算机实现的方法,其特征在于,还包括采用商品计算机作为 负载衡器服务器的一部分来执行以软件代码的工作负载分布算法。
12.如权利要求9所述的计算机实现的方法,其特征在于,还包括由所述负载平衡器服 务器在请求服务服务器之间分布任务。
13.如权利要求9所述的计算机实现的方法,其特征在于,还包括基于环境因素将请求 分配给请求服务服务器。
14.如权利要求9所述的计算机实现的方法,其特征在于,还包括实现负载平衡功能作 为交换机、路由器、或架顶(TOR)交换机、或其组合的一部分。
15.如权利要求14所述的计算机实现的方法,其特征在于,还包括将VIP身份分配给 TOR交换机。
16.如权利要求9所述的计算机实现的方法,其特征在于,还包括由所述多路分解器来 检查数据流以便标识数据流量。
17.如权利要求9所述的计算机实现的方法,其特征在于,定位动作是以网络路径感知 且服务感知的智能方式来执行的。
18.如权利要求17所述的计算机实现的方法,其特征在于,还包括采用从所述多路分解器到所述负载平衡器服务器的隧穿和从所述负载平衡服务器到所述请求服务服务器的 隧穿中的至少一个。
19.如权利要求9所述的计算机实现的方法,其特征在于,还包括所述负载平衡服务器 从所述请求服务服务器卸载功能。
20.一种计算机实现的系统,包括以下计算机可执行组件用于将数据中心(100)的交换系统(130)与分布式负载平衡器系统(110)进行接口的 装置;以及用于在多个请求服务服务器(117、119、121)之间分布所述数据中心(100)所接收的请 求的装置。
全文摘要
在数据中心分布负载平衡功能的系统和方法。多路分解器和负载平衡器服务器的网络允许计算的缩放和增长操作,其中负载平衡操作的容量可以通过改变负载平衡服务器的数量来调整。因此,可以分解负载平衡功能/设计来增加数据中心的负载平衡和交换机制的回复力和灵活性。
文档编号H04L12/56GK102119512SQ200980131708
公开日2011年7月6日 申请日期2009年8月11日 优先权日2008年8月11日
发明者A·G·格林伯格, D·马尔茨, K·V·韦德, N·艾哈迈德, P·K·帕特尔, P·拉希瑞, S·森古普塔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1