專利名稱:分布式負載平衡器的制作方法
分布式負載平衡器背景現在諸如因特網等全球通信網絡隨著依賴這樣的網絡來通信和數據傳送操作的 專用和公司用戶數量的與日俱增而無處不在。隨著通信安全的改進,期望更多的數據遍歷 諸如服務器主機等源和目的地之間的全球通信數據骨干,因此對處理和存儲數據的實體有 日益增長的需求。通常,這些增長的需求通過添加更多交換設備和服務器來處理負載而在 目的地解決。網絡負載平衡器向客戶機提供對服務器(例如,“主機”)的集合所主存的服務的 訪問。客戶機連接到(或通過)負載平衡器,從客戶機的觀點來看,負載平衡器根據一組規 則透明地將客戶機轉發到主機。一般而言,負載平衡上下文包括被表示為會話的序列的形 式的分組;其中這些會話通常應按“平衡”方式在可用主機之間分配。此外,只要主機是活 動的(例如,根據“會話親和性”),每一會話的每個分組一般應針對相同的主機。為了解決這些問題,數據中心系統采用整體式負載平衡器,該整體式負載平衡器 監視主機的狀態(例如,活躍度/負載)并且以所有活動會話的表的形式來維持狀態。當 新會話到達時,負載平衡器選擇可用的最小負載的主機,并且將會話分配給該主機。同樣, 為了提供會話親和性,負載平衡器必需通過將條目添加到其會話表來“記住”這一分配/路 由決定。當這個會話的后續分組到達平衡負載器時,單個表查找確定正確的主機。然而,各 個負載平衡器可以是單個故障點和瓶頸,其中它的會話表的大小(以及由此所維護的狀態 量)隨著增長的吞吐量而增加-并且現有會話通信量的路由決定需要狀態查找(每一分組 一個)。規避這些限制需要串聯工作(橫向擴展)的多個整體式負載平衡器、和/或較大且 更強大的負載平衡器(縱向擴展)。然而,橫向擴展這些負載平衡設備是復雜的,最值得注 意的是由于需要在負載平衡器之間維持一致的狀態。同樣,縱向擴展負載平衡設備是昂貴 的,因為固定硬件中的成本對吞吐量是非線性的(例如,具有兩倍吞吐量能力的負載平衡 器花費的價格比兩倍多得多)。此外,對于整體式負載平衡器的可靠性考慮進一步增加了所 涉及的挑戰,因為沒有相當的成本就不能容易地補償這些系統的故障。概述以下提出了簡化概述以便提供對在此描述的某些方面的基本理解。此小結不是所 要求保護的主題的詳盡的概述。它既不旨在標識出所要求保護的主題的關鍵或重要的要 素,也不描繪其范圍。其唯一的目的是以簡化形式呈現一些概念,作為稍后呈現的更詳細描 述的序言。本發明提供了分布式負載平衡器系統,該系統經由多路分解器(和/或多路復用 器)以及持續地適應于增加的需求的負載平衡器服務器的網絡來允許數據中心的容量的 逐步縮放和增長_(而不是添加另一整體式/集成式負載平衡器,其中它的完全容量可保持 利用不足)。多路分解器可充當數據中心的交換系統與負載平衡器服務器之間的接口(例 如,多路分解器充當具有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·森古普塔 申請人:微軟公司