本發(fā)明一般地涉及網絡連接技術。更具體地,本發(fā)明涉及一種用于構成聚合鏈路的交換機、設備和方法。
背景技術:
在當今的聯(lián)網技術中,商業(yè)信息交換的爆炸式增長要求網絡必須能夠提供高的接入帶寬、性能和冗余。聚合鏈路一直以來被用于提供較高的鏈路帶寬、鏈路傳輸彈性和冗余,已成為網絡連接中的重要技術。
圖1示出了一個典型的網絡連接拓撲結構100。
網絡連接拓撲結構100包括通信網絡102、路由器104、交換機106以及服務器池108。
通信網絡102是用于實現(xiàn)通信的介質。通信網絡102的例子可包括(但不限于)因特網、云網絡、無線保真(Wi-Fi)網絡、無線局域網(WLAN)、局域網(LAN)、電話線路(POTS)和/或城域網(MAN)。網絡連接拓撲結構100中的設備可按照各種有線和無線通信協(xié)議連接到通信網絡102。
路由器104用于為經過路由器104的數據幀尋找最佳傳輸路徑,并將該數據有效地傳送到目的站點。
交換機106包括多個物理端口,分別用于與作為對端的服務器池108中的每個服務器進行連接。
為了實現(xiàn)出/入流量在各成員端口中的負荷分擔,交換機106的多個物理端口可以被捆綁在一起,形成一個邏輯端口,以與服務器池108進行連接,這稱為聚合鏈路(trunk),在圖1中表示為聚合鏈路110。
在使用聚合鏈路110的情況下,交換機106會根據用戶配置的端 口負荷分擔策略來決定報文從哪個成員端口發(fā)送到對端服務器上。
在使用聚合鏈路110的情況下,交換機106還可以分派模式(dispatched mode)進行工作,其通過MAC交換等方式在服務器之間進行負載均衡。雖然分派模式要求服務器支持混雜的流量訪問,但是這能為例如一些時間關鍵的云服務提供極佳的流量交換。聚合鏈路能夠降低交換機負載并提供線速哈希分布(line-rate hash distribution),并能夠提供更短的等待時間、更高的帶寬和冗余。
在圖1所示的典型網絡連接拓撲結構100中,對端設備為服務器池108中的多個服務器,但是對端設備也可以是多個其他交換機。
如圖1所示,在鏈路聚合技術中,聚合鏈路一般需要連接在多個對端設備(交換機或服務器)之間、甚至是多個廠商的對端設備(交換機或服務器)之間。然而,不同廠商的設備可能運行不同的協(xié)議。
目前,尚不能支持在交換機與多個運行不同協(xié)議的對端設備之間建立聚合鏈路。因而,用戶在購買用于對端的交換機或服務器時會受到限制、不得不購買單一廠商的產品,以避免因協(xié)議不兼容而陷入困境。
因此,需要一種新的網絡連接技術,以解決來自不同廠商的對端設備的協(xié)議兼容性問題。
技術實現(xiàn)要素:
鑒于上述問題,根據本發(fā)明的實施方式,通過形成嵌套式聚合鏈路,以使得交換機能夠連接運行不同協(xié)議的多個對端設備(服務器或其他交換機),從而交換機能夠同時支持與多個廠商的對端設備的連接。
根據本發(fā)明的一個實施方式,提供一種用于與多個對端設備構建聚合鏈路的交換機,所述交換機包括:支持不同連接協(xié)議的多個端口,每個端口用于與一個對端設備進行連接的協(xié)議;子聚合鏈路構成單元,用于使運行相同協(xié)議的一個或多個端口聚合成一個子聚合鏈路;和控制單元,用于使所有子聚合鏈路構成一個聚合鏈路。
根據本發(fā)明的一個實施方式,所述交換機還包括:多個協(xié)議控制單元,每個所述協(xié)議控制單元對應于一個子聚合鏈路,用于運行該子聚合鏈路的協(xié)議和控制該子聚合鏈路與對端設備的協(xié)議交換。
根據本發(fā)明的一個實施方式,所述交換機還包括:基本運行單元,用于存儲聚合鏈路的端口成員表和關于運行時哈??刂频男畔ⅰ?/p>
根據本發(fā)明的一個實施方式,其中所述運行時哈??刂剖窍率鲋唬簡螌庸?刂坪投鄬庸?刂?。
根據本發(fā)明的一個實施方式,所述交換機還包括:配置單元,用于配置交換機的端口成員集合和每個端口運行的協(xié)議,以便子聚合鏈路構成單元能夠將運行相同協(xié)議的一個或多個端口聚合為一個子聚合鏈路。
根據本發(fā)明的一個實施方式,其中所述對端設備是交換機或服務器。
根據本發(fā)明的一個實施方式,其中所述交換機是物理交換機或虛擬交換機。
根據本發(fā)明的一個實施方式,其中在多個對端設備之一發(fā)生故障時,
發(fā)生故障的對端設備所在的子聚合鏈路的所述協(xié)議控制單元被配置為與發(fā)生故障的對端設備進行協(xié)議交換,并將所述故障通知控制單元;所述控制單元被配置為響應于收到所述協(xié)議控制單元的通知,重新編寫聚合鏈路的端口成員表和運行時哈??刂菩畔?,并將重新編寫的端口成員表和運行時哈??刂菩畔⑼ㄖ具\行單元;所述基本運行單元被配置為響應于收到所述控制單元的通知,移除與發(fā)生故障的對端設備的連接并運行新的哈希控制。
根據本發(fā)明的一個實施方式,其中在多個對端設備之一的故障恢復后,故障恢復后的對端設備所在的子聚合鏈路的所述協(xié)議控制單元被配置為與對端設備行協(xié)議交換,并將故障恢復通知控制單元;所述控制單元被配置為響應于收到所述協(xié)議控制單元的通知,重新編寫聚合鏈路的端口成員表和運行時哈??刂菩畔?,并將重新編寫的端口成 員表和運行時哈??刂菩畔⑼ㄖ具\行單元;所述基本運行單元被配置為響應于收到所述控制單元的通知,重新加入與故障恢復后的對端設備的連接并運行新的哈??刂?。
根據本發(fā)明的一個實施方式,提供一種連接交換機的設備,所述交換機包括支持不同連接協(xié)議的多個端口,每個端口用于與一個對端設備進行連接,所述設備包括:子聚合鏈路構成單元,用于使交換機中運行相同協(xié)議的一個或多個端口聚合成一個子聚合鏈路;和控制單元,用于使所有子聚合鏈路構成一個聚合鏈路。
根據本發(fā)明的一個實施方式,提供一種用于構建聚合鏈路的方法,包括如下步驟:配置交換機的支持不同連接協(xié)議的多個端口,每個端口用于與一個對端設備進行連接;使交換機中運行相同協(xié)議的一個或多個端口聚合成一個子聚合鏈路;和使所有子聚合鏈路構成一個聚合鏈路。
附圖說明
通過考慮下列與附圖結合而作出的描述,本發(fā)明的結構、操作以及優(yōu)勢將變得更加明顯。附圖是示例性的,而非限制性的。
在某些附圖中,為了說明的清晰性,特定的元件可能被省略或者不按比例示出。通常,相似的元件在不同的附圖中用相似的數字表示,其中典型的情形是最后兩位重要的數字可能相同,最重要的數字是附圖的數字。而且,為了清晰起見,在特定的圖中可能省略某些參考數字。
圖1示出了一個典型的網絡連接拓撲結構。
圖2示出了根據本發(fā)明的一個實施方式的交換機的示意性結構框圖。
圖3示出了根據本發(fā)明的另一個實施方式的交換機的示意性結構框圖。
圖4示出了根據本發(fā)明的實施方式在交換機和服務器池之間形成嵌套式聚合鏈路的示意性例子。
圖5示出了根據本發(fā)明的實施方式在第三方設備中進行控制以形成嵌套式聚合鏈路的示意性結構框圖。
圖6示出了根據本發(fā)明的實施方式的聚合鏈路的邏輯結構示意圖。
圖7示出用于形成聚合鏈路的方法的流程圖。
圖8示出了在聚合鏈路形成之后,有對端服務器出現(xiàn)故障致使某個鏈路的連接斷開時的方法的流程圖。
圖9示出了在對端服務器的故障恢復后再重新加入聚合鏈路的方法的流程圖。
圖10示出了可實現(xiàn)本發(fā)明的實施方式的計算機系統(tǒng)的方框圖。
具體實施方式
在對本發(fā)明的具體實施方式進行詳細說明之前,首先對可能使用的典型協(xié)議進行簡要說明。
1)靜態(tài)端口信道(Static Portchannel)
這是一種成熟的聚合鏈路協(xié)議。它能夠將多個物理端口聚合成一個邏輯端口,而無需與對端交換機或服務器進行協(xié)議交換。但是,靜態(tài)端口信道這種協(xié)議不支持動態(tài)邏輯鏈路連接檢測。
2)鏈路接入控制協(xié)議(LACP)
LACP能夠滿足用戶的聚合鏈路、甚至是分布式聚合鏈路邏輯鏈路連接檢測的需求。但是,LACP要求對端必須使用相同的邏輯或相同的物理交換機或服務器。對于邏輯對端交換機,這就意味著服務器必須在虛擬交換機或VM上支持分布式LACP,但這會非常復雜和昂貴。且這對于跨廠商的服務器來說是難以實現(xiàn)的。
在實際使用中,還會使用LACP的多種變形協(xié)議。
除以上兩種通常使用的標準協(xié)議及其變形外,目前還使用多種非標準的私有協(xié)議。如Cisco的vPC(虛擬端口信道)、IBM的vLAG(虛擬lag)以及Flex-links等。vPC、vLAG和Flex-links均是有源/有源或有源/無源連接解決方案。它們可用于在不多于兩個的物理服務器間支持分布式聚合鏈路連接。vPC和vLAG還要求連接的服務器必 須也是vPC或vLAG對端設備,它們是不能支持多廠商實現(xiàn)的閉環(huán)解決方案。
以下將參考附圖詳細描述用于實踐本技術的實施方式。
應當指出,將主要以物理交換機為例對本發(fā)明的具體實施方式進行說明。不過,本領域技術人員能夠理解,本申請不局限于此。相反,本申請的技術同樣適用于虛擬交換機。
在本發(fā)明的上下文中,交換機要與之建立聚合鏈路的設備(例如,服務器或其他的交換機)被稱為對端設備。以下將主要以服務器作為對端設備,對本發(fā)明的具體實施方式進行說明。不過,本領域技術人員能夠理解,本申請不局限于此。相反,本申請的技術適用于交換機與能夠支持聚合鏈路的任何對端設備(例如,物理交換機、虛擬交換機、個人計算機等)之間的聚合鏈路連接。
另外,以下將主要以LACP、靜態(tài)端口通道等協(xié)議為例對本發(fā)明的具體實施方式進行說明。不過,本領域技術人員能夠理解,本發(fā)明的實施與運行怎樣的協(xié)議不相關。
圖2示出了根據本發(fā)明的一個實施方式的交換機206的示意性結構框圖。
如圖2所示,交換機206包括多個端口1-n、子聚合鏈路構成單元2062和控制單元2064。
交換機206的多個端口1-n支持不同的連接協(xié)議,每個端口用于與多個對端設備(例如,服務器或其他的交換機)之一進行連接。這里,連接協(xié)議可以包括如前面提到的靜態(tài)端口信道協(xié)議、LACP協(xié)議及其變形,以及Cisco vPC和IBM vLAG等。
子聚合鏈路構成單元2062通過將交換機中運行相同協(xié)議的一個或多個端口捆綁在一起,形成一個邏輯端口,從而構成一個子聚合鏈路。由于本發(fā)明可運行于包括多種(例如,至少兩種)協(xié)議的環(huán)境,因而會形成例如至少兩個子聚合鏈路。
控制單元2064使所有子聚合鏈路構成一個聚合鏈路(即,嵌套式聚合鏈路)。本發(fā)明的嵌套式聚合鏈路可以被看組一個聚合鏈路組。
圖3示出了根據本發(fā)明的另一個實施方式的交換機306的示意性結構框圖。
與如圖2所示的交換機206相比,如圖3所示的交換機306除具有多個端口1-n、子聚合鏈路構成單元2062和控制單元2064外,還可以包括配置單元3066、多個協(xié)議控制單元3067和基本運行單元3068。這里,對于圖3和圖2中相同的部件,不再贅述,將僅描述圖3與圖2中不同的部分。
配置單元3066用來配置交換機306的端口成員集合和每個端口運行的協(xié)議。
在配置單元3066配置了各端口后,會將聚合鏈路端口成員表傳送到子聚合鏈路構成單元2062,以用于構成各子聚合鏈路;傳送到控制單元2064,以便由控制單元2064進行控制和更新。該聚合鏈路成員表還被傳送到基本運行單元4068進行存儲,如后所述。
根據需要,配置單元3066還可以配置協(xié)議的相關參數,以及進行驗證,以查看每個物理端口是否可以配置到集合鏈路中。這通常要求新的物理端口要和集合鏈路中已經存在的其它物理口具有相同的帶寬、流控、雙工/半雙工、所屬的VLAN配置等,也就是檢查一個新的物理端口能否添加到聚合鏈路的條件。這種配置操作例如可通過編程來實現(xiàn)。
盡管圖3示出配置單元3066位于交換機306中,不過本發(fā)明不局限于此,配置單元3066也可以不位于交換機306中,而是位于控制板(未示出)中、位于基于服務器的SDN控制器(未示出)中、位于云端或者位于服務器側。前述控制板和SDN控制器這兩者通常是第三方服務器,這個服務器運行SDN的控制軟件來控制其它的網絡交換機的協(xié)議運行。
在交換機306上,對應于每個子聚合鏈路,存在一個協(xié)議控制單元3067,用于運行該子聚合鏈路的協(xié)議以及控制該子聚合鏈路與對端設備的協(xié)議交換。通過每個協(xié)議控制單元3067與對端設備交換協(xié)議消息,使得每個子聚合鏈路可以運行它自己單獨的鏈路協(xié)議,并便 于該子聚合鏈路的形成或斷開,如后詳述。
基本運行單元3068用于存儲聚合鏈路端口成員表(即,交換機306的各端口)以及運行時哈??刂?即,流量分配)信息,以確定使用什么哈希算法以及在哪些端口成員上進行哈希算法。
基本運行單元3068可以通過硬件(例如,ASIC)實現(xiàn),也可以通過軟件實現(xiàn)。
哈??刂瓶捎苫具\行單元3068根據聚合鏈路成員表通過硬件編程自動生成,也可以由控制單元2064生成,用以在聚合鏈路中實現(xiàn)流量均衡,以充分利用每條鏈路的資源。具體而言,通過哈希控制,在服務器側,每個與子聚合鏈路連接的服務器將對于服務器的出口流量在每個子聚合鏈路之間進行本地流量均衡,而在交換機側,嵌套式聚合鏈路能夠在所有形成聚合鏈路的端口之間進行本地均衡。
本領域技術人員能夠理解,使用怎樣的算法進行流量分配以及如何進行流量分配與本發(fā)明的思想無關,這里不再詳述。
另外,哈??刂撇⒉痪窒抻趯π纬汕短资骄酆湘溌返乃形锢矶丝诘膯螌庸?刂疲沁€可以對子聚合鏈路級別以及在子聚合鏈路內進行哈??刂疲詫崿F(xiàn)多層哈??刂啤6鄬庸?刂聘鼮閺碗s,但是能對流量控制提供更高的靈活性。
在圖3中,以虛線框示出的服務器308通過其協(xié)議控制單元和基本運行單元與交換機側進行交互。協(xié)議控制單元和基本運行單元是現(xiàn)有服務器的標準配置,其可通過軟件或者硬件實現(xiàn)。由此可見,不需要對服務器進行額外配置,即可實現(xiàn)本發(fā)明。
另外,每個服務器只需要形成并維護其自身的子聚合鏈路或端口連接,而不需要與其他服務器進行同步,因而也可以使得服務器的實現(xiàn)盡可能簡單。
圖4示出了根據本發(fā)明的實施方式在交換機和服務器池之間形成嵌套式聚合鏈路的示意性例子。
如圖4所示,在服務器側,示意性地表示了服務器408-1、408-2......408-M(其中M為整數,示意性地表示服務器的數量)。假 定服務器408-1、408-2......408-M來自多個不同廠商(即,多廠商服務器環(huán)境)。應用在多個廠商的服務器上運行。這里,示意性地示出所述應用是基于云的應用,不過本發(fā)明并不局限于此,所述應用可以是任何適用的應用。
交換機406包括多個物理端口1-n。交換機406的配置單元(未示出)例如配置交換機406的端口1、2運行標準LACP協(xié)議key 1000,配置端口3-5運行LACP key 2000協(xié)議,配置端口n運行Cisco vPC協(xié)議。
隨后,交換機406的子聚合鏈路構成單元(未示出)將端口1、2捆綁為一個邏輯鏈路,從而形成一個子聚合鏈路410-1,以與同樣運行例如標準LACP協(xié)議key 1000的服務器408-1之間形成兩個物理鏈路(link)。
交換機406的子聚合鏈路構成單元(未示出)將端口3-5捆綁為一個邏輯鏈路,從而形成一個子聚合鏈路410-2,以與同樣運行例如LACP key 2000協(xié)議的服務器408-2之間形成三個物理鏈路。
交換機306的子聚合鏈路構成單元(未示出)將端口n捆綁為一個邏輯鏈路,從而形成一個子聚合鏈路310-M,以與同樣運行例如Cisco vPC協(xié)議的服務器308-M之間形成單個物理鏈路。
交換機306的控制單元(未示出)將各子聚合鏈路410-1、410-2......410-M聚合在一起,構成一個嵌套式聚合鏈路(統(tǒng)稱為聚合鏈路410)。
每當形成、斷開子聚合鏈路或子聚合鏈路有任何其他變化時,發(fā)生變化的子聚合鏈路對應的協(xié)議控制單元都會生成消息來通知控制單元,從而控制單元將進行控制以移除、加入所有或一些發(fā)生變化的端口,如后詳述。
在如上描述中,盡管示出了一個子聚合鏈路對應于一個服務器,但是本領域技術人員能夠理解,本發(fā)明并不局限于此。一個子聚合鏈路可以對應于多個服務器,只要這多個服務器運行相同的協(xié)議(例如,在分布式虛擬交換機的情況下即是如此。另外,對于不同的子聚合鏈 路,其協(xié)議需要不同或者能相互區(qū)分。例如,對于如上所述的子聚合鏈路410-1和410-2,它們都運行LACP協(xié)議,但是子聚合鏈路410-1使用LACP key#1000,而子聚合鏈路410-2使用LACP key#2000,從而這兩個子聚合鏈路運行不同種的協(xié)議。
以上參照圖2-4說明了在交換機側進行控制以形成嵌套式聚合鏈路的實施方式。但是,本發(fā)明并不局限于此,也可以在第三方設備或服務器側進行控制以形成嵌套式聚合鏈路。
以下將參照圖5說明根據本發(fā)明的實施方式,在第三方設備500中進行控制以形成嵌套式聚合鏈路的示意性結構框圖。
如圖5所示,第三方設備500包括子聚合鏈路構成單元562和控制單元564。子聚合鏈路構成單元562用于根據預先配置的交換機各端口運行的協(xié)議,使交換機中運行相同協(xié)議的一個或多個端口捆綁成一個邏輯端口,從而構成一個子聚合鏈路。如前所述,在本發(fā)明的實施方式中,至少使用兩種協(xié)議,因而構成例如至少兩個子聚合鏈路??刂茊卧?64使所有子聚合鏈路構成一個聚合鏈路(即,嵌套式聚合鏈路)。
除子聚合鏈路構成單元562和控制單元564外,如圖5所示的第三方設備500還可以根據需要包括配置單元566和多個協(xié)議控制單元567,如圖5中的虛線框所示。
配置單元566用來配置交換機的端口成員集合和每個端口運行的協(xié)議。根據需要,配置單元566還可以配置協(xié)議的相關參數。這種配置操作例如可通過編程來實現(xiàn)。
在配置單元566配置了交換機的端口后,會將聚合鏈路端口成員表傳送到子聚合鏈路構成單元562以及控制單元564,以便由子聚合鏈路構成單元562構成子聚合鏈路,并由控制單元564進行控制和更新。該聚合鏈路成員表還被傳送到交換機的基本運行單元進行存儲,如后所述。
盡管圖5示出配置單元566位于第三方設備500中,不過本發(fā)明不局限于此,配置單元566也可以不位于第三方設備500中,而是位 于控制板(未示出)中、位于基于服務器的SDN控制器(未示出)中、位于交換機側。這里的控制板或SDN控制器可以是能控制交換機的任何設備,例如可以第三方服務器,也就是獨立的一臺計算機,可以是作為專門設計的網絡控制器(或稱為控制板)的一臺獨特的計算機,或者是一臺運行者SDN控制軟件,如運行著openflow控制軟件的服務器,或甚至可以一臺虛擬的計算機。
在第三方設備500上,對應于每個子聚合鏈路,都存在一個協(xié)議控制單元567,用于運行該子聚合鏈路的協(xié)議以及控制該子聚合鏈路與對端設備的協(xié)議交換。通過每個協(xié)議控制單元567與對端設備交換協(xié)議消息,使得每個子聚合鏈路可以運行它自己單獨的鏈路協(xié)議,并便于該子聚合鏈路的形成或斷開,如后詳述。
在圖5所示的實施方式中,將聚合鏈路的控制轉交給第三方設備500進行,從而以虛線框示出的交換機506可以只具備簡單的配置。
不過,基本運行單元5068仍然位于交換機506側,用于存儲從配置單元566傳送的聚合鏈路成員表(即,交換機的各端口)以及運行時哈希控制(即,流量分配)信息,其可以通過硬件(例如,ASIC)實現(xiàn),其也可以通過軟件實現(xiàn)。
在子聚合鏈路形成、斷開或有任何其他變化時,發(fā)生變化的子聚合鏈路對應的協(xié)議控制單元567都會生成消息來通知控制單元564。于是,控制單元564會更新交換機端口成員表,并通知基本運行單元5068,以加入或刪除發(fā)生變化的端口成員。
哈??刂瓶梢杂苫具\行單元5068根據聚合鏈路成員表通過硬件編程自動生成,也可以由控制單元564生成,用以在聚合鏈路中實現(xiàn)流量均衡,以充分利用每條鏈路的資源。如前所述,使用怎樣的算法進行流量分配以及如何進行流量分配與本發(fā)明的思想無關,這里不再詳述。
在如圖5所示的實施方式中,也可以實現(xiàn)對聚合鏈路的單層或多層哈??刂?。
第三方設備500可以使用運行交換機管理軟件的服務器,比如 openstack的控制器,或者IBM FSM或Lenovo的SNSC等。
另外,如本領域技術人員能夠理解,也可以由交換機要與之建立聚合鏈路的多個對端服務器中的一個服務器充當所述第三方設備。在這種情況下,在嵌套式聚合鏈路還沒有協(xié)商起來之前,還需要額外構建一條其它的鏈接,以便該服務器能夠和交換機進行通信。
圖6示出了根據本發(fā)明的實施方式的聚合鏈路的邏輯結構示意圖。
如圖6所示,在邏輯上,根據本發(fā)明的實施方式的聚合鏈路600包括兩層:聚合鏈路控制層612和子聚合鏈路層614。在圖6中,示意地示出了三個子聚合鏈路614-1、614-2和614-3,但是本領域技術人員能夠理解,本發(fā)明的子聚合鏈路的數目并不局限于此,相反,其可以是根據實際需要配置的任意數量的子聚合鏈路。
根據本發(fā)明的一個實施方式,聚合鏈路控制層612可以包括例如如圖4所示的子聚合鏈路構成單元2062、控制單元2064、配置單元4066,和基本運行單元4068。而子聚合鏈路614-1、614-2和614-3中的每個則包括其對應的協(xié)議控制單元4067,以負責運行其協(xié)議。
根據本發(fā)明的另一個實施方式,聚合鏈路控制層612可以包括例如如圖5所示的子聚合鏈路構成單元562、控制單元564、配置單元566,和基本運行單元5068。而子聚合鏈路614-1、614-2和614-3中的每個則包括其對應的協(xié)議控制單元567,以負責運行其協(xié)議。
圖7示出用于形成聚合鏈路的方法700的流程圖。
圖7的步驟開始于步驟702,并在步驟704中配置交換機的支持不同連接協(xié)議的多個端口,每個端口用于與一個對端設備進行連接。這里,協(xié)議可以包括如前所述的多種協(xié)議。對端設備可以是服務器或其他的交換機。
在步驟706中,通過將交換機中運行相同協(xié)議的一個或多個端口捆綁成一個邏輯端口,從而構成一個子聚合鏈路。由于本發(fā)明可運行于包括多種(例如,至少兩種)協(xié)議的環(huán)境,因而會形成例如至少兩個子聚合鏈路
在步驟708中,使所有子聚合鏈路構成一個聚合鏈路(即,嵌套 式聚合鏈路)。
如前所示,如圖7所示的方法700可以由交換機執(zhí)行、由第三方設備執(zhí)行、或者由交換機與之建立連接的多個服務器中的一個服務器執(zhí)行。
以下將參照圖8、9描述在某個子聚合鏈路發(fā)生變化(斷開或加入)時進行的操作。
圖8示出了在聚合鏈路形成之后,多個對端設備之一出現(xiàn)故障致使某個子聚合鏈路的連接斷開時的方法800的流程圖。
該方法開始于步驟802,并在步驟804中檢測到有對端設備出現(xiàn)故障致使某個鏈路的連接斷開時,由發(fā)生故障的對端設備所在的子聚合鏈路的協(xié)議控制單元與對端設備進行協(xié)商。在步驟806,由協(xié)議控制單元將所述故障通知控制單元。在步驟808,控制單元重新編寫聚合鏈路的端口成員表和運行時哈希控制信息,并將重新編寫的端口成員表和運行時哈希控制信息通知基本運行單元,以使基本運行單元移除與發(fā)生故障的對端設備的連接并運行新的哈??刂?。隨后,該方法在步驟810中結束。
圖9示出了在多個對端設備之一的故障恢復后再重新加入聚合鏈路的方法900的流程圖。
該方法開始于步驟902,并在步驟904中檢測到發(fā)生故障的服務器修復之后,由故障恢復后的對端設備所在的子聚合鏈路的協(xié)議控制單元與對端設備進行協(xié)商。于是,在步驟906中,由協(xié)議控制單元將所述故障恢復通知控制單元。在步驟908中,由所述控制單元重新編寫存儲聚合鏈路的端口成員表和運行時哈希控制信息,并將重新編寫的端口成員表和運行時哈??刂菩畔⑼ㄖ具\行單元,以重新加入與故障恢復后的對端設備的連接并運行新的哈??刂?。該方法在步驟910中結束。
此外,本領域技術人員能夠理解,在如圖8、9所示的方法中,在端口成員發(fā)生變化(例如,在端口被刪除或加入的情況下),控制單元2064或控制單元564可以只重寫或刷新受影響的子聚合鏈路的端 口成員表,這樣不會影響其他子聚合鏈路的數據流。不過,控制單元2064或控制單元564也可以刷新整個聚合鏈路的成員表,這樣的好處是比較簡單、容易實現(xiàn)。
嵌套式聚合鏈路是一種簡單、靈活的分布式聚合鏈路解決方案,便于在多個服務器之間形成聚合鏈路連接。同時,其也能夠簡化云實施和維護。嵌套式聚合鏈路對子聚合鏈路實現(xiàn)聚合鏈路控制,簡化了服務器實現(xiàn),而無需任何分布式聚合鏈路協(xié)議的要求,從而使包括云實現(xiàn)在內的各種實現(xiàn)盡可能簡單并且成本盡可能低。
嵌套式聚合鏈路支持多廠商服務器之間的協(xié)議兼容性,因而用戶不會被困在其中。
嵌套式聚合鏈路對連接的服務器數量沒有限制。
通過本發(fā)明的嵌套式聚合鏈路機制,控制單元(例如,圖2、3所示的控制單元2064,圖5所示的控制單元564)能夠控制所有子聚合鏈路。而且,控制單元不需要運行任何其他復雜的聚合鏈路控制協(xié)議,它使復雜的子聚合鏈路協(xié)議交換透明化,從而為上層協(xié)議或應用提供了簡單的單個邏輯聚合鏈路。
根據本發(fā)明的實施方式,由不同的子聚合鏈路運行不同的子聚合鏈路協(xié)議,控制單元不需要運行每個子聚合鏈路的協(xié)議交換。每個子聚合鏈路能夠針對其連接的服務器運行和維護每個協(xié)議,而不需要與其他子聚合鏈路(與其他服務器或其他廠商的服務器連接)的協(xié)議交換進行同步或依賴于與其他子聚合鏈路(與其他服務器或其他廠商的服務器連接)的協(xié)議交換。這種機制確保每個服務器只需要與連接的子聚合鏈路獨立地運行其協(xié)議即可,而不需要支持分布式聚合鏈路協(xié)議或任何跨多個服務器或跨多個廠商的協(xié)作。例如,對于越來越普遍使用的Cloud Ready技術來說,這也確保了簡易性,且能夠支持多廠商。
由此可見,根據本發(fā)明的實施方式,在交換機側,通過將交換機端口與服務器之間的連接中、具有相同協(xié)議的物理鏈路聚合為一個子聚合鏈路,能夠使得交換機的所有端口共同形成一個異構的聚合鏈路 (或者說嵌套式聚合鏈路)。通過將所有交換機端口連接聚合成單個邏輯聚合鏈路,能夠提供分布式聚合鏈路連接、負載平衡、支持多廠商服務器連接,而不需要進行復雜的協(xié)議控制。
以下將參照圖10圖解說明可實現(xiàn)本發(fā)明的實施方式的計算機系統(tǒng)1000的方框圖。
按照一個實施方式,這里說明的技術是利用一個或多個專用計算設備實現(xiàn)的。所述專用計算設備可被硬連接,以實現(xiàn)所述技術,或者可包括數字電子設備,比如一個或多個專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA),所述數字電子設備被永久編程,以實現(xiàn)所述技術,或者可包括一個或多個通用硬件處理器,所述通用硬件處理器被編程,以按照固件、存儲器、其它存儲器或它們的組合中的程序指令,實現(xiàn)所述技術。這種專用計算設備還可結合定制的硬連線邏輯、ASIC或FPGA與定制的編程,以實現(xiàn)所述技術。專用計算設備可以是桌上型計算機系統(tǒng)、便攜式計算機系統(tǒng)、手持設備、連網設備、或者包含硬連線和/或程序邏輯,以實現(xiàn)所述技術的任何其它設備。
計算機系統(tǒng)1000包括總線1002或者用于傳送信息的其它通信機構,和與總線1002耦接,用于處理信息的硬件處理器1004。例如,硬件處理器1004可以是通用微處理器。
計算機系統(tǒng)1000還包括耦接到總線1002,用于保存信息和由處理器1004執(zhí)行的指令的主存儲器1006,比如隨機存取存儲器(RAM)或其它動態(tài)存儲設備。主存儲器1006也可用于在由處理器1004執(zhí)行的指令的執(zhí)行期間,保存臨時變量或其它中間信息。當被保存在處理器1004可訪問的存儲介質中時,這種指令使計算機系統(tǒng)1000變成為進行在指令中指定的操作而定制的專用機器。
計算機系統(tǒng)1000還包括耦接到總線1002,為處理器1004保存靜態(tài)信息和指令的只讀存儲器(ROM)1008或其它靜態(tài)存儲設備。設置諸如磁盤或光盤之類的存儲設備1010,并耦接到總線1002,以保存信息和指令。
計算機系統(tǒng)1000可通過總線1002,耦接到顯示器1012,比如陰 極射線管(CRT),以向計算機用戶顯示信息。包括字母數字鍵和其它鍵的輸入設備1014耦接到總線1002,以把信息和命令選擇傳送給處理器1004。另一種用戶輸入設備是光標控制器1016,比如鼠標、跟蹤球或光標方向鍵,以向處理器1004傳送方向信息和命令選擇,和控制顯示器1012上的光標移動。
計算機系統(tǒng)1000可利用與計算機系統(tǒng)結合,使計算機系統(tǒng)1000成為或者把計算機系統(tǒng)1000編程為專用機器的定制硬連線邏輯、一個或多個ASIC或FPGA、固件和/或程序邏輯,實現(xiàn)這里說明的技術。按照一個實施方式,響應處理器1004執(zhí)行包含在主存儲器1006中的一個或多個指令的一個或多個序列,計算機系統(tǒng)1000執(zhí)行這里的技術。這種指令可從另一個存儲介質,比如存儲設備1010被讀入主存儲器1006。包含在主存儲器1006中的指令序列的執(zhí)行導致處理器1004進行這里說明的處理步驟。在備選實施方式中,代替或者與軟件指令結合,可以使用硬連線電路。
這里使用的術語“存儲介質”指的是保存使機器按特定方式工作的數據和/或指令的任何介質。這種存儲介質可包含非易失性介質和/或易失性介質。例如,非易失性介質包括光盤或磁盤,比如存儲設備1010。易失性介質包括動態(tài)存儲器,比如主存儲器1006。例如,存儲介質的常見形式包括軟盤、硬盤、固態(tài)驅動器、磁帶、或者任何其它磁數據存儲介質、CD-ROM、任何其它光數據存儲介質、具有各種圖案的小孔的任何物理介質、RAM、PROM、EPROM、FLASH-EPROM、NVRAM、任何其它存儲芯片或盒式磁帶。
存儲介質不同于傳輸介質,但是可以和傳輸介質一起使用。傳輸介質參與在存儲介質之間傳送信息。例如,傳輸介質包括同軸電纜、銅線和光線,包括構成總線1002的導線。傳輸介質還可采取聲波或光波,比如在無線電波和紅外數據通信期間生成的聲波或光波的形式。
各種形式的介質可與把一個或多個指令的一個或多個序列傳送給處理器1004執(zhí)行有關。例如,指令最初可被攜帶在遠程計算機的磁盤或固態(tài)驅動器上。遠程計算機可把指令載入其動態(tài)存儲器中,隨后 利用調制解調器,通過電話線路發(fā)送所述指令。計算機系統(tǒng)1000本地的調制解調器可在電話線路上接收所述數據,并利用紅外發(fā)射器把數據轉換成紅外信號。紅外探測器可接收攜帶在紅外信號中的數據,適當的電路可把所述數據放在總線1002上??偩€1002把所述數據運送到主存儲器1006,處理器1004從主存儲器1006取回并執(zhí)行指令。主存儲器1006接收的指令可視情況在由處理器1004執(zhí)行之前或之后,被保存在存儲設備1010上。
計算機系統(tǒng)1000還包括耦接到總線1002的通信接口1018。通信接口1018提供耦接到網絡鏈路1020的雙向數據通信,網絡鏈路1020連接到局域網1022。例如,通信接口1018可以是綜合業(yè)務數字網(ISDN)卡、線纜調制解調器、衛(wèi)星調制解調器、或者調制解調器,以提供到對應類型的電話線路的數據通信連接。再例如,通信接口1018可以是提供到兼容LAN的數據通信連接的局域網(LAN)卡。也可實現(xiàn)無線鏈路。在任意這樣的實現(xiàn)中,通信接口1018發(fā)送和接收攜帶表示各種信息的數字數據流的電信號、電磁信號或光信號。
網絡鏈路1020一般提供通過一個或多個網絡,到其它數據設備的數據通信。例如,網絡鏈路1020可提供通過局域網1022,到主計算機1024或者到由因特網服務提供商(ISP)1026操作的數據設備的連接。ISP 1026又通過現(xiàn)在通常稱為“因特網”1028的全球分組數據通信網絡,提供數據通信服務。局域網1022和因特網1028都利用攜帶數字數據流的電信號、電磁信號或光信號。通過各種網絡的信號,和在網絡鏈路920上,并通過通信接口1018的往來于計算機系統(tǒng)1000傳送數字數據的信號是傳輸介質的例證形式。
計算機系統(tǒng)1000可通過網絡、網絡鏈路1020和通信接口1018,發(fā)送消息和接收數據,包括程序代碼。在因特網例子中,服務器1030可通過因特網1028、ISP 1026、局域網1022和通信接口1018,傳送請求的應用程序的代碼。
接收的代碼可在被接收時,由處理器1004執(zhí)行,和/或被保存在存儲設備1010或者其它非易失性存儲器中,供以后執(zhí)行。
在上面的說明書中,參考可因實現(xiàn)而異的眾多具體細節(jié),說明了本發(fā)明的實施方式。本發(fā)明的范圍由本申請?zhí)岢龅囊唤M權利要求(包括任何后續(xù)更正)限定。這里對于包含在所述權利要求中的術語明確記載的任何定義應決定在權利要求中使用的這種術語的含意。從而,未明確記載在權利要求中的限制、要素、性質、特征、優(yōu)點或屬性無論如何不應限制所述權利要求的范圍。從而,說明書和附圖應被視為是例證性的,而不是限制性的。