系統管理程序級的分布式負載平衡的製作方法
2023-07-15 11:18:36
專利名稱:系統管理程序級的分布式負載平衡的製作方法
技術領域:
本公開一般涉及軟體和虛擬機的技術領域,並且在一個實施例中,涉及系統管理程序級的分布式負載平衡的方法、系統和裝置。
背景技術:
在計算機聯網中,負載平衡是在兩個或更多計算機、網絡鏈路、CPU、硬碟驅動器、 或其它資源間均衡分配工作量的技術。負載平衡有助於使資源利用最優,吞吐量最大,響應時間最短,和/或避免過載。使用具有負載平衡的多個組件(例如,替代單個組件),可以通過冗餘提高可靠性。負載平衡服務可以由專用程序或硬體設備(例如,多層交換機、DNS伺服器)提供。負載平衡可以由物理硬體實現。硬體實現可能是昂貴的。
分布式負載平衡(DLB)是一種類型的負載平衡。與集中式負載平衡解決方案相比,DLB解決方案可以沒有中心負載平衡器,因此沒有性能瓶頸和單點故障。DLB可以在虛擬環境中在客戶機作業系統(OS)級上實現。在OS級上實現DLB的效率低,因為每個進網 (inbound network)分組可能需要被遞送到DLB群集的每個客戶機,並且分組的負載平衡決定可以在所有客戶機之間進行。在具有很多客戶機的環境中,這樣的決定可能在時間和/ 或資源上是擁塞的,並且可能限制DLB群集的可擴展性。另外,客戶機OS級實現可能對客戶機的OS不透明。
發明內容
本發明公開了管理程序級分布式負載平衡的方法和裝置。在一方面,一種方法包括確定位置以引導分組。所述方法還包括分發所述分組以通過處理器處理所述分組。分組 (或網絡分組)可以是具有包括數據段的目的地地址的相關聯的包絡(envelope)和/或元數據的數據段。所述方法還包括將所述分組分配給客戶機,從而使得將所述分組分發到所述客戶機是基於算法的。所述方法還包括將所述分組的第一目的地MAC地址改變為第二目的地MAC地址。所述第二目的地地址是基於所述客戶機的虛擬網絡接口的。所述方法還包括使得所述客戶機確信所述分組意在供客戶機使用。另外,所述方法包括調整將所述分組分發到所述客戶機。所述方法還包括通過所述調整減少所述客戶機的負載。所述方法還包括基於分組的分發(例如,決定),將分組引導到客戶機。在另一方面,一種方法包括基於減少客戶機負載的算法,在處理器上確定分組的分派。所述方法還包括基於所述分派,將所述分組分發到所述客戶機。所述方法還包括將所述分組的第一目的地MAC地址修改為第二目的地MAC地址。另外,所述方法還包括向所述客戶機指明所述分組是供所述客戶機使用的。所述方法還包括利用所述第二目的地MAC 地址將所述分組引導到所述客戶機。所述方法包括修改去往客戶機的入站ARP請求,或來自客戶機的出站ARP響應。在另一方面,一種裝置,包括管理過濾器模塊,其基於減少客戶機負載的算法確定分組的分發。所述裝置還包括調度(dispatch)過濾器模塊,其將分組引導到客戶機,以及將所述分組的第一目的地MAC地址修改為第二目的地MAC地址。另外,所述裝置還包括核心模塊,其基於所述第二主機的第二狀態(例如,當第二狀態示出為故障時)調整所述分組的分發,以減少將所述分組分發到所述第二主機,以及增加將所述分組分發到所述第一主機(例如,所述第一主機的第一狀態是活動的)。本文公開的方法、系統和裝置可以利用用於實現各個方面的任何手段實現,並且可以用機器可讀介質的形式執行,所述機器可讀介質包含一組指令,當由機器執行時,該組指令使得機器執行本文公開的任何操作。根據附圖和以下的詳細描述,其它特徵將是顯而易見的。
示例性實施例通過實例闡明,並且不限於附圖,在附圖中,相同的附圖標記表示相似的元件,並且其中圖1是示出根據一個或多個實施例的在主機(例如;系統管理程序級)上的分布式負載平衡器(DLB)的實現的系統圖。圖2是示出根據一個或多個實施例,執行負載分發的過程的系統圖。圖3是示出根據示例性實施例,通過使用主機的過濾器模塊進行負載平衡的系統圖。根據附圖和以下的詳細描述,本實施例的其它特徵將是顯而易見的。
具體實施例方式公開了系統管理程序級的分布式負載平衡的方法、系統和裝置。可以明白的是,本文討論的不同實施例不必屬於同一組的示例性實施例,並且可以分組為本文沒有明確公開的各個其它實施例。在以下描述中,為了說明的目的,詳盡解釋了許多具體細節,以便提供對各個實施例的全面理解。圖1是示出根據一個或多個實施例,在主機(例如;系統管理程序級)上的分布式負載平衡器(DLB)的實現的系統圖。例如負載平衡的資源優化技術可以使得企業能夠有效地管理所述過程和提供服務。負載平衡可以是在兩個或更多網絡段之間分發工作量(例如服務請求)的過程。網絡段可以包括,但不限於伺服器、虛擬機、計算機、處理器和數據存儲設備。根據一個實施例,本文描述的網絡段可以指客戶機118η,其可以處理到達的請求 102,以基於該請求提供響應。在一個或多個實施例中,本文描述的客戶機118η可以指虛擬環境中的虛擬機。DLB群集可以包括一個或多個客戶機IlS1T在一個或多個實施例中, DLB群集可以被配置為具有虛擬IP位址(VIP)和虛擬媒體訪問控制(VMAC)地址,其為到達的請求102的目的地IP和目的地MAC地址。在一個或多個實施例中,DLB可以是沒有中心負載平衡器的負載平衡的種類。客戶端設備可以使用外部網絡中的客戶機IlS1,的IP位址,將(例如,針對服務的)請求傳送到客戶機IlS1I到達的請求可以由客戶端設備傳送到外部網絡中的物理交換機104。物理交換機104從客戶端設備接收(例如,針對服務的)到達的請求102,以用於進一步處理。在一個或多個實施例中,物理交換機104可以是用於在網絡段之間(例如,通過有線或無線)傳送分組的硬體(例如,第2層設備)。物理交換機104可以將到達的請求 102 (例如,以分組的形式)廣播到可通信地耦合到物理交換機104的一個或多個物理網絡接口 106^。關於物理交換機104為何廣播到達的請求的原因將進一步說明。物理網絡接口 106i_N可以將分組傳送到與物理網絡接口 IOei,耦合的群集(例如,一組客戶機118^)。 應該注意,下標M和N表示整數。在一個或多個實施例中,物理網絡接口 106i_N可以是例如網絡接口卡(NIC)的硬體設備(例如,第2層設備),所述網絡接口卡使得能夠在網絡中的例如計算機、伺服器或任何其它適當設備的數據處理設備之間進行通信。在一個或多個實施例中,物理網絡接口 IOei,可以在客戶機118η和物理交換機104之間傳送請求102和響應。在一個或多個實施例中,客戶機IlS1,可以是數據處理系統,例如,被配置為虛擬機的伺服器。客戶機IlS1, 可以包括例如處理器、存儲器等的組件,以處理信息(例如,服務於所述請求)。此外,在一個或多個實施例中,物理網絡接口 106Ai_N和客戶機118^之間的通信可以通過主機12(VN路由。在一個或多個實施例中,主機12(VN可以是由配置為管理客戶機 1 IS1^m(例如,虛擬結合)的軟體(例如,平臺虛擬化軟體、主機12(VN的其它支持軟體和模塊)支持的硬體設備。另外,主機12(VN可以被配置為控制物理網絡接口 106Ai_N和客戶機 1182^之間的所有通信 。本文描述的主機12(VN可以包括虛擬交換機IOS1,和過濾器模塊 13(Vn。在一個或多個實施例中,主機12(VM可以是被配置為管理客戶機118η(例如,虛擬機)的系統管理程序(例如,虛擬機監視器)。負載平衡算法和相關軟體可以在主機12(VN中實現來進行數據分發和負載平衡。因此,分組分派、負載平衡和分組分發可以由主機12(VN執行。在一個或多個實施例中,負載平衡算法可以是基於源網際網路協議地址、第4層信息、和/或第7層信息等來確定分組分發的負載平衡程序。負載平衡算法協調和控制用於執行負載平衡的每個主機 120^,由此減少主機12(VN之間的協調和通信。具體地,負載平衡算法在主機12(VN中實現過濾器模塊13(VN,以在主機12(VN級(例如,系統管理程序級)上協調和實現負載平衡。在一個或多個實施例中,負載平衡算法可以減少用於在主機12(VN之間進行協調(例如,協商)的通信過程。本文描述的主機12(VN可以支持多種多樣的客戶機例如, Unix 、Linux 、Windows 等)。另外,主機12(VN能夠支持不同作業系統同時運行在主機120i_N上。具體地,負載平衡算法可以在主機i20i_N(例如,系統管理器、ESX )中實現過濾器模塊13(VN,以用於耦合到虛擬交換機108i_N的每個群集。在一個或多個實施例中,可以每個群集每個虛擬交換機IOS1,實現一個過濾器模塊13(Vn。在一個或多個實施例中,可以是每個主機多於一個虛擬交換機。在一個或多個實施例中,屬於群集的一個或多個客戶機可以通過一個或多個主機12(Vn的虛擬交換機IOSg連接。同樣,在一個或多個實施例中, 主機可以包括一個或多個虛擬交換機IOS1i此外,在一個或多個實施例中,當與客戶機118η關聯的第一虛擬網絡接口 106Η 與虛擬交換機IOS1,可通信地耦合時,過濾器模塊13(VN產生內部埠,該內部埠的MAC 地址可以是群集的VMAC,並且將過濾器模塊13(VN的管理過濾器模塊112i_N可通信地耦合到虛擬交換機108η。在一個或多個實施例中,對於每個DLB群集,在可通信地耦合到屬於所述群集的一個或多個客戶機(例如,虛擬機)的每個虛擬交換機上,可以存在內部埠和管理過濾器模塊。在一個或多個實施例中,群集的內部虛擬交換機埠共享VMAC。此外,任何新添加的虛擬網絡接口 1062_M可以相應地配置。則當屬於DLB群集的虛擬網絡接口 116^被可通信耦合時,過濾器模塊13(VN可以產生用於管理每個客戶機IlS1,的一個或多個調度過濾器模塊IH1T本文產生的調度過濾器模塊114^可以可通信地耦合到管理過濾器模塊112^管理過濾器模塊12(VN可以基於負載平衡算法,控制和/或協調與管理過濾器模塊112i_N關聯的調度過濾器模塊114η 的活動。此外,調度過濾器模塊114η可以可通信耦合到與客戶機118Η關聯的虛擬交換機 108^和虛擬網絡接口的埠。在一個或多個實施例中,物理交換機104可以採用任何單播模式或者多播模式 (例如,通過物理網絡接口 IOei,),將分組傳送到主機12(VN。主機12(VN還可以將分組傳送到客戶機IlS1^,如將進一步說明的。主機12(VN的虛擬交換機IOS1,可以從物理網絡接口 IOei,接收分組,以將分組傳送到客戶機118η。另外,主機12(VN的虛擬交換機IOS1^ 可以將其目的地MAC地址是VMAC的分組(例如入站客戶端請求)轉發到內部埠。在一個或多個實施例中,管理過濾器模塊112i_N可以攔截去往內部埠的分組,以基於負載平衡算法執行負載平衡。在一個或多個實施例中,負載平衡算法在群集中配置管理過濾器模塊 112^,以接受或拒絕到達的分組。在一個或多個實施例中,負載平衡算法確定分組的特定目的地。例如,負載平衡算法可以確定特定DLB群集的特定客戶機引導所述分組。在一個或多個實施例中,位置或目標可以是任何一個客戶機例如,目標虛擬機)。分組(其中VMAC是其目的地MAC)可以由指定的管理過濾器模塊(例如,僅僅一個管理過濾器模塊 112^)接受,並且被進一步引導到指定客戶機(例如,僅僅一個指定客戶機IlS1J。此外,基於負載平衡算法,管理過濾器模塊112i_N確定該分組是否應該由耦合到虛擬交換機IOS1,的任何一個客戶機IlS1-M(例如,通過虛擬網絡接口 106Η)接受。如果管理過濾器模塊112i_N確定該分組必須被傳送到客戶機118η,則基於負載平衡算法,管理過濾器模塊ii2i_N進一步確定該分組應該被(例如,通過虛擬網絡接口 Iie1-M)傳送到哪個客戶機IlS1T在一個或多個實施例中,在負載平衡過程期間,可能不需要主機之間的通信。在一個或多個實施例中,虛擬交換機108i_N上的管理過濾器模塊112i_N可以對平衡負載獨立地做出決定。基於負載平衡算法,管理過濾器模塊112i_N被配置為將所述分組(例如,通過虛擬網絡接口 Iie1J傳送(例如,分發)到特定的客戶機Iis1I在一個或多個實施例中,管理過濾器模塊112i_N可以通過負載平衡算法配置為丟棄應由另一個指定的主機120i_N接受來進行處理的分組的副本。在另一個實施例中,管理過濾器模塊112i_N可以將虛擬交換機 IOS1,配置為,如果所述分組已經由群集的另一個主機接受來進行處理,則拒絕該分組。在一個或多個實施例中,基於負載平衡算法,將分組分配給 客戶機118η。在一個或多個實施例中,管理過濾器模塊112i_N可以對來自虛擬交換機IOS1,的用於VIP的地址解析協議(ARP)請求進行響應,並且調度過濾器模塊IH1,可以被配置為丟棄這些ARP請求。 在替換實施例中,管理過濾器模塊112i_N可以被配置為不對ARP請求進行響應;而是客戶機 118η被配置為對ARP請求進行響應。然而,在客戶機IlS1,被配置為對ARP請求進行響應的實例中,響應於VMAC,調度過濾器模塊114η可以被配置為攔截出站ARP響應和修改所回答的MAC地址。
此外,管理每個主機12(VN的負載平衡算法確保被傳送來去往特定主機12(VN的特定分組應該由特定主機12(VN的特定管理過濾器模塊112i_N處理,並且其餘的管理過濾器模塊112i_N丟棄該分組。在一個或多個實施例中,基於例如分組的源IP位址、第4層信息、和/或第7層信息等的不同參數,負載平衡算法確定用於處理分組的特定管理過濾器模塊112^。主機12(VN的負載平衡算法可以確定處理該分組的特定客戶機118η。
此外,管理過濾器模塊112i_N可以將IP位址解析為MAC地址,以使得能夠將分組傳送到特定客戶機IlS1I在一個或多個實施例中,IP位址可以是群集的VIP,以及MAC地址可以是群集的VMAC (例如,第一目的地地址)。過濾器模塊13(VN的調度過濾器模塊IH1, 接收來自虛擬交換機108i_N的分組,該分組由管理過濾器模塊112i_N重新引導。此外,調度過濾器模塊1 H1^m可以將目的地MAC地址(例如,VMAC或管理過濾器模塊埠的地址)修改為第二 MAC地址(例如,虛擬網絡接口 116η的MAC地址)。此外,過濾器模塊13(VN的調度過濾器模塊IH1,可以(例如,通過虛擬網絡接口 Iie1J將分組傳送到指定的客戶機 IlS1-M,用於進一步處理。同時,調度過濾器模塊IH1,可以從虛擬交換機IOS1,接收ARP請求。然而,當管理過濾器模塊112i_N被配置為對ARP請求進行響應時,調度過濾器模塊IH1, 可以丟棄ARP請求,從而客戶端從管理過濾器模塊112i_N接收響應。使客戶機118η確信所述分組是供那個客戶機使用的。具有第二目的地MAC地址的分組可以被客戶機Iis1,解釋為是供那個客戶機使用的分組。此外,客戶機IlS1^可以基於請求102產生響應(例如,服務)。響應分組可以通過虛擬網絡接口 116η傳送到調度過濾器模塊IH1T響應分組可以由調度過濾器模塊114 收集,並且經由相同路由傳送回客戶端。 另外,核心模塊110i_N可以在每個過濾器模塊130i_N中實現。在一個或多個實施例中,核心模塊IlOg可以監測其它主機120i_N的健康(health)(例如,起作用、空閒、活動、癱瘓等)。在一個或多個實施例中,核心模塊IlO1,可以被實現為廣播或者多播協議。或者, 核心模塊IlO1,可以在用戶空間後臺程序中實現(例如,使用網際網路協議(IP)廣播/多播執行核心程序),或在管理過濾器模塊112i_N中實現(例如使用第2層廣播/多播執行核心程序)等。在一個或多個實施例中,核心模塊IlO1,執行核心協議以與其它核心模塊IlO1, 通信,從而確定其它主機12(VN的狀態(例如,健康),和保持多個主機12(VN上的群集的成員。核心模塊IlO1,也可以被配置為定期地監測其它主機12(VN的健康,和相應地傳送核心消息。 在一個或多個實施例中,DLB群集可以包括在一個主機和/或多個主機上的多個客戶機IlS1I核心模塊IlO1I可以將核心程序(例如,核心消息)傳送到其它主機120i_N 上的其它核心模塊IlO1,,以保持為群集成員。在一個或多個實施例中,當客戶機(例如,通過可通信地耦合到虛擬交換機的虛擬網絡接口)加入群集或(例如,通過斷開虛擬網絡接口)離開群集,主機或虛擬交換機IOS1,上的核心模塊IlO1I通知屬於該群集的其它主機 120i_N上的其它核心模塊IlO1I,然後負載平衡算法在主機120i_N上的核心模塊IlO1,之間進行協商以平衡負載。另外,核心模塊IlO1,監測屬於同一群集的其它主機的狀態。如果任何主機120i_N發生故障,則從該群集中丟棄所有與故障主機關聯的客戶機。在一個實施例中,如果核心模塊1 KVn檢測到群集中的主機發生故障,則負載平衡算法從分發過程中移除該發生故障的主機,並且和其它主機12(VN協商以平衡負載。
在一個或多個實施例中,核心模塊IlOg可以監測成員變化。成員變化的示例可以包括1)新的客戶機加入;2)客戶機離開;3)主機發生故障,從而移除該故障主機上的所有客戶機。負載分發中的變化可以由負載平衡算法管理。而且,在一個或多個實施例中, 核心模塊IIOh可以監測在它的主機上的客戶機的健康狀態(例如,虛擬機和它所提供的網絡服務),如果任何客戶機發生故障,則可以從群集中移除該故障客戶機(例如,如同正常的客戶機離開),並且可以向群集中的其它核心模塊提供通知。 此外,核心模塊IlO1,也可以被配置為(例如,通過保留整個群集的本地示圖以檢測與該群集中的其它示圖之間的不一致性)檢測群集中的不一致性,和基於負載平衡算法,通過協商解決該不一致性。核心模塊Iio1,可以基於主機的狀態調整分組的分發,以減少和/或增加將分組分發到主機。在一個或多個實施例中,當主機顯示故障或忙碌狀態時, 核心模塊Iio1,可以調整分組的分發,以減少(例如,或停止)將分組分發到主機。另外, 當其它主機的狀態是運行和/或健康時,核心模塊IlO1,可以調整分組的分發,以增加將分組分發到另一個主機。然而,增加和/或減少負載分發可以基於用於平衡負載分配的負載平衡算法。另外,核心模塊IIOh也可以被配置為檢測向現有群集增加和/或移除(例如,成員變化)資源(例如,客戶機),以與其它核心模塊IlO1,協商,從而基於負載平衡算法分擔工作量或重新分配工作量。核心模塊IlO1,可以檢測對任何客戶機的添加和/或移除,以及相應地啟動和/或停止相關協議。在一個或多個實施例中,除了有助於傳送和/或增加和/或刪除客戶機以外,核心模塊IlOg可以由增加和/或移除協議、協商協議、核心協議、 以及可以監測其它主機健康的其它協議支持。在一個或多個實施例中,核心模塊IlOg也可以被配置為通過將電子消息傳送到其它主機120i_N的其它核心模塊,監測與各個主機120i_N 關聯的每個客戶機IlS1,的健康狀態(例如,工作狀況)。基於負載的分組分發可以基於與主機12(VN關聯的健康的客戶機118η的數目而相應地調整。在一個或多個實施例中,客戶機118η可能需要從一個主機轉移到另一個主機。使用實時轉移(例如,VMware公司的VMotion ),客戶機可以在主機之間轉移而感覺不到當機時間。在一種情形中,轉移可以包括遷移到具有與源客戶機屬於同一群集的客戶機的目的主機。在另一種情形中,轉移可以包括遷移到不具有屬於同一群集的客戶機的目的主機。 在目的主機與源主機屬於同一群集的轉移的情形中,通過在目的主機的管理過濾器模塊 112i_N中記錄客戶機118η的信息,和將新的調度過濾器模塊分配給被轉移的客戶機IlS1^, 客戶機IlS1,連同其負載平衡狀態可以移動到目的主機。此外,在連接到目的主機後,客戶機IlS1,的負載平衡狀態可以存儲在目的主機上。在目的主機不具有屬於同一群集的客戶機的轉移的情形中,可以在目的主機中產生新的管理過濾器模塊,並且對應的調度過濾器模塊被分配給被轉移的客戶機。另外,客戶機118η的負載平衡狀態可以存儲在目的主機上。被轉移的客戶機的信息可以從源管理過濾器模塊清除,並且核心模塊IlOg可以基於負載平衡算法,使用適當的協議(例如,檢查狀態、發送核心消息、和協商一致性)協調負載平衡過程。同樣,主機可以被配置為支持轉移。此外,在一個或多個實施例中,過濾器模塊13(VN可以將硬體配置為以單播模式或多播模式傳送分組。在單播模式中,群集的VMAC是單播MAC地址。由於客戶機118^可以具有它們自己的MAC地址,物理交換機104不能根據出站分組知道VMAC。因此,如前面所述,物理交換機104將到達的請求102 (其目的地MAC地址是VMAC)傳送到主機12(VN。在一個或多個實施例中,在單播模式中,如果屬於同一群集的客戶機在不同主機上,並且所述主機由物理交換機104連接,則可以給每個管理過濾器模塊分配唯一 MAC地址,用作ARP響應的源MAC地址,以與群集中的其它管理過濾器模塊的MAC地址進行區別,從而避免第2層交換機中的衝突。 在多播模式中,由管理過濾器模塊112i_N共享的MAC(例如,群集的VMAC)是多播 MAC地址。因此,物理交換機104可以被配置為將客戶端請求轉發到主機12(VN。此外,過濾模塊13(VN可以將VMAC分配給與管理過濾器模塊112i_N關聯的內部埠。在一個或多個實施例中,VMAC可以由整個DLB群集共享。圖2是示出根據一個或多個實施例,執行負載分發的過程的系統圖。來自客戶端設備的分組可以通過物理交換機104傳送到主機12(VN。在一個或多個實施例中,所述分組可以被傳送(例如,廣播或多播)到群集中的主機12(VN。在一個或多個實施例中,分組 (例如進入的客戶端請求)可以由目的地為客戶機118η的群集中的主機12(VN(例如,使用分配給該群集的VIP)接收。然而,主機12(VN的特定主機可以處理(例如,接受和傳送到客戶機IlS1J由負載平衡算法選擇的包。特定選擇的虛擬交換機108^的過濾器模塊13(VN可以攔截被傳送到內部埠的分組(例如,傳送到VIP的分組和ARP分組)。此外,過濾器模塊13(VN可以利用虛擬MAC地址來對針對虛擬IP位址的ARP請求202進行響應(例如,VIP被解析到VMAC, VMAC在ARP響應中將虛擬MAC地址表現為MAC地址回答)。同一群集的客戶機可以共享外部虛擬IP202,以為客戶端提供服務。此外,過濾器模塊13(VN可以將分組的目的地 MAC地址從虛擬MAC地址修改為虛擬網絡接口 116UMAC地址(例如,虛擬媒體訪問控制地址210i和虛擬媒體訪問控制地址2102)。在一個或多個實施例中,(例如,調度過濾器模塊的)虛擬媒體訪問模塊204^可以執行將分組的目的地MAC地址從虛擬MAC地址修改為虛擬網絡接口 116UMAC地址。在一個實施例中,對於每個客戶機IlS1^,可能存在虛擬媒體訪問模塊204^。此外,虛擬網絡接口 Iie1-M將具有虛擬網絡接口 Iie1^MAC地址的分組傳送到指定的客戶機Iis1I此外,所指定的客戶機IlS1-M可以處理請求分組並產生響應分組。此外,所指定的客戶機IlS1-M可以將響應分組傳送到虛擬網絡接口 Iie1I此外,虛擬網絡接口 Iie1-M可以將響應傳送到過濾器模塊130i_N。然後,可以使用客戶端MAC地址,經由虛擬交換機108和物理網絡接口 106, 通過物理交換機104,將響應分組傳送到客戶端設備。圖3是示出根據示例性實施例,通過使用主機的過濾器模塊進行負載平衡的系統圖。特別地,圖3示出用於基於負載平衡算法執行由分發模塊304控制的負載平衡過程的過濾器模塊130。圖3示出了被引導到過濾器模塊130的到達的請求302i_N(例如,採用分組的形式)。客戶機IIS"(例如,虛擬機)可通信地耦合到(例如,主機的)的過濾器模塊 130^,以用於處理請求。算法模塊306的負載平衡算法可以管理分發模塊304,以平衡工作量或將形式為分組301^的到達的請求分發到客戶機118η,從而可以均衡地分發工作量。在一個示例性實施例中,附圖示出客戶機IlS1正在處理請求3021;同時兩個請求 3022_3在排隊等待。類似地,附圖示出客戶機IlS2正在處理請求3024,同時兩個其它請求 3025_6在排隊等待。然而,客戶機IlS3正在處理請求3027,同時僅有一個請求3028在排隊等待。探測到新的到達的請求3029的負載平衡算法,可以確定將所述到達的請求傳送到客戶機IlS3以平衡負載。負載平衡算法可以(例如,通過分發模塊304)與過濾器模塊130通信,以將請求傳送到客戶機1183。在一個或多個實施例中,分發模塊304可以控制負載平衡算法,以用於基於負載平衡算法將請求或負載傳送到特定客戶機。算法模塊306可以包括負載平衡算法,和用於在主機級上實現負載分發的其它算法(例如,管理核心模塊的算法等)。本文描述的實施例可以結合到虛擬基礎結構的管理模式中,來提供統一的管理接口(例如,vCenter )。此外,該架構可以與各種其它適當的管理概念結合。此外,在本文描述的架構中,群集成員客戶機(或虛擬機)可以在單播模式中使用不同的MAC地址,從而實現配置和部署客戶機。另外,本文描述的架構可以支持與虛擬技術的結合。主機級(系統管理程序級) DLB可以與其它虛擬技術和解決方案協調和結合,比如應用軟體健康檢查、轉移(例如, VMot ion )、高可用性(HA)和分布式資源調度程序(DRS)。另外,與其它架構相比,本文描述的架構可以實現分組流動,從而僅僅一個客戶機 (例如,虛擬機)可以接收和處理特定分組。換句話說,群集中的一個虛擬機可以接收供處理的分組。此外,通過特定虛擬機傳送和處理分組的決定可以由主機確定。雖然已經參考特定實施例描述了本發明,但是很明顯的是,可以對這些實施例進行各種修改和改變,而不脫離各個實施例的廣泛精神和範圍。因此,說明書和附圖被認為是說明性而不是限制性。
權利要求
1.一種方法,包括 確定位置來引導分組;分發所述分組以通過處理器處理所述分組;將所述分組分配給客戶機,從而使得將所述分組分發到所述客戶機是基於算法的; 將所述分組的第一目的地地址改變為第二目的地地址,其中所述第二目的地地址是基於所述客戶機的虛擬網絡接口的;基於所述第二目的地地址,使得所述客戶機確信所述分組是供所述客戶機使用的; 調整將所述分組分發到所述客戶機; 通過所述調整減少所述客戶機的負載;以及基於所述分組的分發決定,將所述分組引導到所述客戶機。
2.如權利要求1所述的方法,還包括對被弓丨導到虛擬網際網路協議地址的所述分組進行重新引導; 調整所述分組的分發;以及利用虛擬媒體訪問控制地址,對所述虛擬網際網路協議地址的地址解析協議請求進行響應。
3.如權利要求2所述的方法,還包括當第二過濾器模塊的分組接受所述分組時,拒絕第一過濾器模塊的分組;以及通過所述拒絕,防止所述第一過濾器模塊和所述第二過濾器模塊接受所述分組。
4.如權利要求3所述的方法,其中,所述算法是分布式負載平衡程序,用於基於源網際網路協議地址、第4層信息、和第7層信息中的一種確定所述分組的分發。
5.如權利要求4所述的方法,還包括拒絕所述虛擬交換機向調度過濾器模塊的地址解析協議請求;以及通過所述拒絕,確保地址解析協議響應從管理過濾器發出。
6.如權利要求1所述的方法,還包括當物理交換機接收到所述第一主機的第一地址解析協議響應和所述第二主機的第二地址解析協議響應時,減少所述物理交換機的衝突,以使用第一主機的第一媒體訪問控制地址和第二主機的第二媒體訪問控制地址。
7.如權利要求6所述的方法,還包括基於所述第二主機的第二狀態調整所述分組的分發;通過所述調整減少將所述分組分發到所述第二主機,其中所述第二狀態是故障和忙碌中的至少一種;以及增加將所述分組分發到所述第一主機,其中所述第一主機的第一狀態是活動的。
8.如權利要求7所述的方法,還包括轉移所述客戶機和所述客戶機的負載平衡狀態,以將所述客戶機從所述第一主機移動到所述第二主機。
9.如權利要求8所述的方法,還包括 在系統管理程序級上確定所述分組的分發;以及減少第一虛擬機和第二虛擬機之間的協商,其中系統管理程序允許所述第一虛擬機的第一作業系統和所述第二虛擬機的第二作業系統同時運行在所述第一主機上。
10.如權利要求9所述的方法,還包括使得所述客戶機確信所述分組是供所述客戶機使用的,以向所述客戶機提供具有所述第二目地的地址的所述分組,其中具有所述第二目的地地址的所述分組被認為是所述虛擬網絡接口的所述分組,並且所述虛擬網絡接口的所述分組被認為是供所述客戶機使用的所述分組。
11.如權利要求1所述的方法,還包括 實現所述主機的核心模塊;與所述主機的核心模塊和另一個主機的另一個核心模塊通信,以監測群集中的所述主機和所述另一個主機的會員狀態的變化,其中所述群集中的所述主機和所述另一個主機的會員狀態的變化基於客戶機加入所述主機、客戶機離開所述主機、和所述主機發生故障中的至少一種;監測在它的主機上的每個所述客戶機的第一健康狀態,和將電子消息發送到所述群集中的其它主機的其它核心模塊,以對在所述群集的所述主機中分發所述分組進行調整;以及通過在所述群集中的所述主機的核心模塊和所述另一個主機的另一個核心模塊之間定期傳送電子消息,監測在所述群集中的每個所述主機的健康狀態,其中所述主機和所述另一個主機的健康狀態基於所述主機和所述另一個主機傳送和響應所述電子消息的能力而確定。
12.一種方法,包括基於減少客戶機負載的算法,在處理器上確定分組的分派; 基於所述分派,將所述分組分發到所述客戶機; 將所述分組的第一目的地地址修改為第二目的地地址; 通過所述修改,向所述客戶機指明所述分組是供所述客戶機使用的;以及利用所述第二目的地地址,將所述分組引導到所述客戶機。
13.如權利要求12所述的方法,還包括 在系統管理程序級上確定所述分組的分派;以及減少第一虛擬機和第二虛擬機之間的協商,其中系統管理程序允許所述第一虛擬機的第一作業系統和所述第二虛擬機的第二作業系統同時運行在第一主機上。
14.如權利要求13所述的方法,還包括當物理交換機接收到所述第一主機的第一地址解析協議響應和所述第二主機的第二地址解析協議響應時,減少所述物理交換機的衝突,以使用所述第一主機的第一媒體訪問控制地址和所述第二主機的第二媒體訪問控制地址。
15.如權利要求14所述的方法,還包括基於源網際網路協議地址、第4層信息、和第7層信息中的一種,平衡所述客戶機的負載;以及通過所述平衡,調整去往所述客戶機的所述分組的分派。
16.一種裝置,包括管理過濾器模塊,用於基於減少客戶機負載的算法確定分組的分發; 調度過濾器模塊,用於將所述分組的第一目的地地址修改為第二目的地地址,以向所述客戶機指明所述分組是供所述客戶機使用的;以及核心模塊,用於基於所述第二主機的第二狀態調整所述分組的分發,以減少將所述分組分發到所述第二主機,其中所述第二狀態是故障和忙碌中的至少一種,以及增加將所述分組分發到所述第一主機,其中所述第一主機的第一狀態是活動的。
17.如權利要求16所述的裝置,其中,所述調度過濾器模塊用於 拒絕所述虛擬交換機的地址解析協議請求;以及通過所述拒絕,確保地址解析協議響應從所述管理過濾器發出。
18.如權利要求17所述的裝置,其中,所述管理過濾器模塊用於 對被弓丨導到虛擬網際網路協議地址的所述分組進行重新引導; 調整所述分組的分發;以及利用虛擬媒體訪問控制地址,對所述虛擬網際網路協議地址的地址解析協議請求進行響應。
19.如權利要求18所述的裝置,其中,所述算法是基於源網際網路協議地址、第4層信息、 和第7層信息中的一種而確定所述分組的分發的負載平衡程序。
20.如權利要求19所述的裝置,其中,所述管理過濾器模塊用於 在系統管理程序級上確定所述分組的分派;以及減少第一虛擬機和第二虛擬機之間的協商,其中所述系統管理程序允許所述第一虛擬機的第一作業系統和所述第二虛擬機的第二作業系統同時運行在第一主機上。
全文摘要
本發明公開了系統管理程序級的分布式負載平衡的方法和裝置。在一方面,方法包括確定位置以引導分組。所述方法還包括分發所述分組以通過處理器處理所述分組。所述方法還包括將所述分組分配給客戶機,從而使得將所述分組分發到所述客戶機是基於算法的。所述方法還包括將所述分組的第一目的地地址改變為第二目的地地址。所述第二目的地地址可以是基於所述客戶機的虛擬網絡接口的。所述方法還包括基於所述第二目的地地址,使得所述客戶機確信所述分組來自虛擬交換機。另外,所述方法包括調整將所述分組分發到所述客戶機。所述方法還包括通過所述調整減少所述客戶機的負載。
文檔編號G06F9/455GK102158386SQ201010108968
公開日2011年8月17日 申請日期2010年2月11日 優先權日2010年2月11日
發明者周曙東, 夏志鋒, 沈建軍, 邱模炯, 韓東海 申請人:威睿公司