專利名稱:編址方法、編址裝置、架構管理器、交換機和數據路由方法
技術領域:
本發明涉及數據中心網絡,更具體地,涉及一種用于數據中心網絡的編址方法、編址裝置、架構管理器、交換機和數據路由方法,適用于數據中心所采用的多種網絡拓撲,可實現位置地址的聚合,以減小轉發表,而且能夠容易地實現網絡負載均衡。
背景技術:
隨著互聯網和云計算服務等應用的發展,數據中心的規模日益增大,當前的數據中心包含著成千上萬臺的服務器和交換機。另外,數據中心通常同時支持多種不同的應用,其中一些應用要求數據中心內部不同服務器之間的大量的數據通信。數據中心的規模的增大和應用的發展對其網絡架構帶來了新的挑戰。數據中心網絡的目標是將大量的數據中心服務器進行互連,并為上層的應用提供高效和容錯的路由轉發服務。數據中心網絡架構主要有兩類選擇二層網絡(Layer 2 Network)和三層網絡(Layer 3 Network) 今在二層網絡架構中,整個數據中心成為一個大的以太網。以太網給網絡管理帶來了很大的方便,“即插即用”,無縫的虛擬機遷移等。但是,以太網不能擴展到成千上萬臺服務器的規模。今三層網絡架構具有很好的可擴展性,但是它不再具有以太網簡單方便的優點,給網絡管理帶來了負擔。針對這個問題,研究人員提出了新的系統和方法來解決以太網的擴展性問題,支持“即插即用”的大規模的數據中心網絡。以太網是當今最常用的局域網技術,它使用MAC地址來標識網絡中的節點。不同于IP地址的層次化結構,MAC地址是一種平面(flat)結構,并且是全球唯一的。交換機中的轉發表記錄了目的MAC地址到發送端口的映射。圖I是用于說明交換機通過自學習的方式構建轉發表的示意圖。當一個數據幀到達交換機的時候,交換機查看該數據幀的源MAC地址,并且將此源MAC地址和此數據幀進入的端口的映射存儲到轉發表。由于這種自學習機制以及MAC地址的使用,使得網絡管理非常方便,交換機可以“即插即用”。但是以太網不能擴展到成千上萬臺服務器的規模,主要有以下幾點原因。首先,MAC地址是非層次化的,不能將多個MAC地址聚合在一起。交換機的轉發表存儲的是目的MAC地址和發送端口的映射,因此每個交換機的轉發表里面就需要存儲整個網絡的所有主機的MAC地址。交換機的緩存大小的限制使得網絡中主機的個數不能無限制的增長。其次,如圖2所示,對于具有未知目的MAC地址的數據幀(轉發表中沒有存儲此目的MAC地址),交換機將其發送(廣播)至除了數據幀到達的端口以外的所有其他端口。另外,一些基本網絡服務(包括地址解析協議ARP、動態主機配置協議DHCP等)都是通過廣播的方式進行的。這種全網性的廣播機制也使得以太網不能擴展到太大規模。最后,以太網使用生成樹協議(Spanning Tree Protocol-STP)來避免環路,但是沿著單一的生成樹來轉發數據包會導致低效的路由選擇和鏈路負載的不均衡。這些原因使得數據中心網絡不能被直接構建成一個大的局域網。一個解決方法是使用二層三層混合的結構,數據中心被構建成多個局域網,這些局域網之間是由IP路由連接。每個局域網由幾十或者幾百臺機器組成,形成一個IP子網。這種二層三層混合的結構解決了可擴展性問題,但是不再具有以太網簡單方便的優點,給網絡管理帶來了負擔。本發明的目的在于解決以太網的擴展性問題,以支持“即插即用”的大規模數據中心網絡。參考文獻[I]提出了 PortLand協議——一種用于數據中心網絡的二層尋址、路由和轉發協議。根據該協議,給網絡中的主機分配一個假的MAC (PMAC)地址,用來編碼這些主機在網絡拓撲中的位置。PMAC地址可以用非常小的交換機的狀態來實現有效的路由轉發功能。以下,對PortLand系統進行更為詳細的描述。
圖3是示出了 PortLand系統的系統結構的示意圖。在PortLand系統中,終端主機被分配假的MAC地址(PMAC)(例如,如圖3所示,PMAC 地址 “00. 00. 01. 02. 00. 01” 被分配給 MAC 地址為 “00. 19. B9. FA. 88. E2”、IP 地址為“10. 5. I. 2”的終端主機),用來編碼這些終端主機在網絡拓撲中的位置。PMAC代替實際的MAC地址存儲在轉發表中,用于數據包的轉發。不同于MAC地址的平面結構,PMAC是層次化的,可以聚合,因此交換機只需要保存很小的轉發表。另外,PortLand引入了一個中心化的架構管理器(Fabric Manager-FM) 300。FM 300維護網絡配置信息和狀態(比如,拓撲結構等)。不同于傳統以太網中的純廣播機制,FM 300可以幫助進行ARP解析和提高容錯性能。Portland協議是基于Fat Tree網絡拓撲(參考文獻[3])的尋址、路由和轉發協議。在Fat Tree網絡拓撲中,交換機分成三層邊緣層、匯聚層和核心層。不同層中所有的交換機都是相同的,每個交換機包含k個端口。圖3示出了 k = 4的Fat Tree網絡拓撲結構。Fat Tree分為k個獨立的分塊(pod),如圖3中邊緣層和匯聚層的虛線框所示,每個框里面的k個交換機組成一個分塊。Fat Tree網絡拓撲結構可以支持k3/4臺主機,使用5k2/4個k 口交換機。邊緣交換機給其所有直接相連的主機分配一個48比特的PMAC地址。PMAC地址是層次化的,編碼了主機在網絡拓撲中的位置。PMAC地址的格式是pod, position, port, vmid,其中pod 16比特,表示此邊緣交換機所處的pod的序號,position 8比特,表示此邊緣交換機在此pod中所處的位置,port 8比特,表示此主機連接的邊緣交換機的端口號,vmid :16比特,表示此物理機上虛擬機的序號(因為一個物理機上可能運行多個虛擬機)。在圖3所示的例子中,左側第三個主機的PMAC地址是00. 00. 01. 02. 00. 01。其中,pod :00· 00,表不 pod O,position :01,表不 pod O 中位置 I,port :02,表示此主機連接在邊緣交換機的2號端口,
vmid 00. 01,表示此主機上的虛擬機序號為I。如圖3所示,PMAC地址代替實際的MAC地址存儲在轉發表(如圖3中最右側的表格所示)中,用于數據包的轉發。不同于MAC地址的平面結構,PMAC是層次化的,可以聚合,因此交換機只需要保存很小的轉發表。各層交換機的轉發表如下今核心層交換機:pod. * 發送端口。例如,圖3中最右端的核心交換機,它的端口 O和pod O相連,端口 I和pod I相連,等等。因此,所有目的MAC地址為00. 00. *送往端口 0,表示所有去往pod O的數據包都送往端口 O ;同理,所有去往pod I的數據包都送往端口 1,等等。今匯聚層交換機pod. position. * O·發送端口。例如,圖3中最右端的匯聚交換機,它屬于pod 3,即00. 11。所有目的MAC地址為00. 11. *的數據包都是發往本pod,其中00. 11. 00. *的數據包發往位置為O的邊緣交換機,所以發送往端口 0,所有00. 11. 01. *的數據包發往位置為I的邊緣交換機,所以發送往端口 I。其他的目的MAC地址的數據包是 發往其他pod的上行數據包,由端口 2或者端口 3發送。今邊緣交換機pod.position, port. * O·發送端口。例如,圖3中最右端的邊緣交換機,它屬于pod 3,位置1,即00. 11.01。它有兩個直接相連的主機,所有目的MAC為00. 11.01.00. *的數據包都發送往端口 0,所有目的MAC為00. 11. 01. 01. *的數據包都發送往端口 I。其他的目的MAC地址的數據包是發往其他主機的上行數據包,由端口 2或者端口 3發送。PortLand協議是一種用于數據中心網絡的二層尋址、路由和轉發協議。但是,PortLand協議局限于Fat Tree這一網絡拓撲,不能方便地應用到其他拓撲。例如,PortLand協議所使用的PMAC的形式pod. position, port, vmid不能直接應用于參考文獻[2]所提出的Clos網絡拓撲。圖4是示出了 Clos網絡拓撲的示意圖。Clos網絡拓撲也是分為三層,其中ToR(Topof Rack)交換機類似于Fat Tree網絡拓撲中的邊緣交換機,與終端主機直接相連。FatTree網絡拓撲中所有的交換機都是一樣的。但是,在Clos網絡拓撲中,核心交換機和匯聚交換機是10G 口的大交換機,而ToR交換機通過10G的上行口連接匯聚交換機,通過IG的下行口連接主機。在Clos網絡拓撲中不再有pod的概念,所以PMAC格式(pod. position, port.vmid)無法直接使用。如果將一個匯聚交換機對應于一個pod,例如,匯聚交換機S3為podO,匯聚交換機S4為podl,則無法編址ToR交換機。因為每個ToR交換機都與兩個匯聚交換機相連,例如,ToR交換機S7既與匯聚交換機S3相連,也與匯聚交換機S4相連,這樣,ToR交換機S7的pod序號可以為0,也可以為I。因此,參考文獻[I]提出的PortLand協議不能直接應用于參考文獻[2]提出的這種Clos網絡拓撲。參考文獻[I] “PortLand A Scalable Fault Tolerant Layer 2 Data CenterNetworkFabric,,,Radhika Niranjan Mysore etc. , in Sigcomm2009[2] “VL2 A Scalable and Flexible Data Center Network”,AlbertGreenbergetc. , in Sigcomm 2009[3] “A Scalable,Commodity Data Center Network Architecture”,M. Al-Faresetc. , in Sigcomm 2008
發明內容
考慮到現有技術的上述缺陷,本發明提出了一種用于數據中心網絡的編址方法、編址裝置、架構管理器、交換機和數據路由方法,適用于數據中心所采用的多種網絡拓撲,可實現位置地址的聚合,以減小轉發表,而且能夠容易地實現網絡負載均衡。本發明提出了一種用于數據中心網絡的編址方法、編址裝置、架構管理器、交換機和數據路由方法。網絡中的主機和交換機被分配一個或者多個位置地址(locator),位置地址是層次化的,編碼了主機和交換機在網絡拓撲中的位置。 當網絡拓撲提供了冗余的路徑時,給主機和交換機分配多個位置地址。位置地址代替MAC地址存儲在交換機的轉發表里,用于數據包的轉發。多個位置地址描述了多條路徑,在多條路徑中選擇合適的路徑可實現負載均衡。根據本發明的第一方案,提出了一種編址裝置,包括樹創建單元,用于依次以每個交換機為根,通過網絡拓撲發現功能,創建包含所有主機的樹,由此,得到多棵樹;樹選擇單元,用于從所述樹創建單元所創建的多棵樹中選擇具有最小高度的樹;以及地址分配單元,用于針對由所述樹選擇單元所選擇的每一棵具有最小高度的樹,為網絡中每個交換機和每個主機分配地址。優選地,當以一個交換機為根,能夠創建出多棵包含所有主機的樹時,所述樹創建單元選擇以此交換機為根、高度最小的任意一棵樹,作為所創建的樹。優選地,當以一個交換機為根,能夠創建出多棵包含所有主機的樹時,所述樹創建單元記錄所有這多棵樹,作為所創建的樹。優選地,當存在多棵高度相同的最小高度的樹時,所述樹選擇單元選擇所有這多棵最小聞度的樹。優選地,所述地址分配單元針對由所述樹選擇單元所選擇的每一棵具有最小高度H的樹,為位于所述樹的根節點的根交換機,也稱為第O層交換機,分配根交換機位置地址;從與所述根交換機直接相連的第I層交換機開始,針對與第i_l層交換機直接相連的每一個第i層交換機,找出從所述根交換機到達此第i層交換機的所有路徑,針對每條路徑,為此第i層交換機分配一個第i層交換機位置地址,其格式為“根交換機位置地址.第I層交換機地址.···.第i層交換機地址”,其中I < i < H-2 ;為每個主機分配主機位置地址,其格式為“邊緣交換機位置地址.主機地址”,其中邊緣交換機是與主機直接相連的第k層交換機,O彡k彡H-2。優選地,第i層交換機地址是第i_l層交換機與每一個第i層交換機相連的端口的端口號。優選地,主機地址是邊緣交換機與每一個主機相連的端口的端口號。根據本發明的第二方案,提出了一種編址方法,包括依次以每個交換機為根,通過網絡拓撲發現功能,創建包含所有主機的樹,由此,得到多棵樹;從所創建的多棵樹中選擇具有最小高度的樹;以及針對所選擇的每一棵具有最小高度的樹,為網絡中每個交換機和每個主機分配地址。優選地,當以一個交換機為根,能夠創建出多棵包含所有主機的樹時,選擇以此交換機為根、高度最小的任意一棵樹,作為所創建的樹。優選地,當以一個交換機為根,能夠創建出多棵包含所有主機的樹時,記錄所有這多棵樹,作為所創建的樹。優選地,當存在多棵高度相同的最小高度的樹時,選擇所有這多棵最小高度的樹。優選地,針對所選擇的每一棵具有最小高度H的樹,為位于所述樹的根節點的根交換機,也稱為第O層交換機,分配根交換機位置地址;從與所述根交換機直接相連的第I層交換機開始,針對與第i-Ι層交換機直接相連的每一個第i層交換機,找出從所述根交換機到達此第i層交換機的所有路徑,針對每條路徑,為此第i層交換機分配一個第i層交換機位置地址,其格式為“根交換機位置地址.第I層交換機地址.···.第i層交換機地址”,其中K i < H-2 ;為每個主機分配主機位置地址,其格式為“邊緣交換機位置地址.主機地址”,其中邊緣交換機是與主機直接相連的第k層交換機,OH-2。
優選地,第i層交換機地址是第i_l層交換機與每一個第i層交換機相連的端口的端口號。優選地,主機地址是邊緣交換機與每一個主機相連的端口的端口號。根據本發明的第三方案,提出了一種架構管理器,包括根據本發明第一方案所述的編址裝置;以及存儲器,用于存儲全局位置地址表,所述全局位置地址表包括了每一個主機的因特網協議地址與所述主機的所有主機位置地址之間的映射。優選地,所述架構管理器還包括調度單元,用于在收到地址解析協議請求時,以目的主機的因特網協議地址為索引查找所述全局位置地址表,并根據調度算法,從所找到的與目的主機的因特網協議地址對應的一個或者多個主機位置地址中選擇一個主機位置地址返回給源主機,完成地址解析協議地址解析。更優選地,當未能從所述全局位置地址表找到與目的主機的因特網協議地址對應的主機位置地址時,所述調度單元進行全網絡的廣播,獲得目的主機的一個或者多個主機位置地址,再根據調度算法,從所獲得的與目的主機的因特網協議地址對應的一個或者多個主機位置地址中選擇一個主機位置地址返回給源主機,完成地址解析協議地址解析。更優選地,所述架構管理器還包括故障處理單元,用于在交換機檢測到相鄰交換機或鏈路發生故障時,將全局位置地址表中相應的主機位置地址設為失效,其中所述調度單元在選擇與目的主機的因特網協議地址對應的主機位置地址時,不選擇被設為失效的主機位置地址。根據本發明的第四方案,提出了一種交換機,包括根據本發明第一方案所述的編
址裝置。根據本發明的第五方案,提出了一種數據路由方法,采用了根據本發明第二方案所述的編址方法編址的交換機位置地址和主機位置地址,所述數據路由方法包括根交換機/第O層交換機將包含了 “根交換機位置地址.第I層交換機地址/主機地址.*”作為目的主機的主機位置地址的數據包轉發至端口號為“第I層交換機地址/主機地址”的端口 ;第i層交換機將包含了“第i層交換機位置地址.第i+1層交換機地址/主機地址.作為目的主機的主機位置地址的數據包轉發至端口號為“第i+1層交換機地址/主機地址”的端口,其中I彡i彡H-2 ;以及第i層交換機將包含了 “根交換機位置地址.*”作為目的主機的主機位置地址的數據包轉發至與以具有“根交換機位置地址”作為根交換機位置地址的根交換機為根節點的第i_l層交換機相連的端口,其中H-2。本發明提出的新的編址/尋址方案適用于數據中心使用的多種網絡拓撲,例如,Fat Tree網絡拓撲、Clos網絡拓撲等。位置地址代替MAC地址存在交換機的轉發表里,用于數據包的轉發。因為位置地址是層次化的,可以聚合,因此交換機只需要保存很小的轉發表。當網絡拓撲提供了冗余的路徑時,主機和交換機具有多個位置地址,這多個位置地址分別描述了多條路徑,在多條路徑中選擇合適的路徑可以方便地實現負載均衡。
通過下面結合
本發明的優選實施例,將使本發明的上述及其它目的、特征和優點更加清楚,其中圖I是用于說明交換機通過自學習的方式構建轉發表的示意圖。 圖2是用于說明交換機轉發(廣播)具有未知目的MAC的數據幀的示意圖。圖3是示出了 PortLand系統的系統結構的示意圖。圖4是示出了 Clos網絡拓撲的示意圖。圖5是示出了根據本發明的編址裝置500的結構方框圖。圖6是示出了根據本發明的編址方法600的流程圖。圖7是再次示出了參考文獻[3]所提出的Fat Tree網絡拓撲的示意圖。圖8示出了基于Fat Tree網絡拓撲、通過網絡拓撲發現功能創建的一棵樹的示例。圖9示出了基于Fat Tree網絡拓撲、通過網絡拓撲發現功能創建的另一棵樹的示例。圖10示出了基于Fat Tree網絡拓撲、通過網絡拓撲發現功能創建的另一棵樹的示例。圖11示出了基于Fat Tree網絡拓撲的部分編址結果。圖12示出了基于Clos網絡拓撲的部分編址結果。圖13是示出了 Fat Tree網絡拓撲下數據包轉發的示例示意圖。圖14是示出了包含了根據本發明的編址裝置500的示例架構管理器1400的結構方框圖。圖15示出了多個位置地址分別對應多條路徑的示意圖。在本發明的所有附圖中,相同或相似的結構和步驟均以相同或相似的附圖標記標識。
具體實施例方式下面參照附圖對本發明的優選實施例進行詳細說明,在描述過程中省略了對于本發明來說是不必要的細節和功能,以防止對本發明的理解造成混淆。圖5是示出了根據本發明的編址裝置500的結構方框圖。根據本發明的編址裝置500可以位于圖3所示的架構管理器300中、也可以位于任何一個交換機中。如圖5所示,根據本發明的編址裝置500包括樹創建單元510、樹選擇單元520和地址分配單元530。樹創建單元510用于依次以每個交換機為根,通過網絡拓撲發現功能,創建一棵包含所有主機的樹,由此,得到多棵樹。因為網絡拓撲可能會提供冗余的路徑,不一定每棵樹都包含所有的交換機。另外,以一個交換機為根,可能會創建出多棵包含所有主機的樹,在這種情況下,可以先于樹選擇單元520的操作,由樹創建單元510先選擇以此交換機為根、高度最小的任意一棵樹,作為所創建的樹。也可以創建并記錄所有這些樹,由樹選擇單元520統一進行選擇。樹選擇單元520用于從樹創建單元510所創建的多棵樹中選擇具有最小高度的樹,如果存在多棵高度相同的最小高度的樹,則選出所有這多棵最小高度的樹。根據樹選擇單元520的操作,當存在多棵高度相同的最小高度的樹時,網絡拓撲將被構建成一個多根樹。地址分配單元530用于完成網絡中每個交換機和每個主機的編址操作。為了描述方便,先對網絡中的交換機的分層結構進行描述。
將位于每棵樹的根節點的交換機稱為根交換機(也稱為第O層交換機),將與第i-Ι層交換機直接相連的交換機稱為第i層交換機(l<i< H-2,H是樹的高度),將與主機直接相連的交換機稱為邊緣交換機(邊緣交換機可以是第k層交換機,OH-2)。首先,對于所選擇的每一棵具有最小高度的樹,為該樹的根交換機(也可以稱為第O層交換機)分配根交換機位置地址。然后,從與所述根交換機(第O層交換機)直接相連的第I層交換機開始,針對每一個第i層交換機,找出從根交換機到達此第i層交換機的所有路徑,針對每條路徑,為此第i層交換機分配一個第i層交換機位置地址,其格式為“根交換機位置地址.第I層交換機地址.···.第i層交換機地址”,其中第i層交換機地址可以是第i_l層交換機與第i層交換機相連的端口的端口號。最后,為每個主機分配主機位置地址,其格式為“邊緣交換機位置地址.主機地址”,其中主機地址可以是邊緣交換機與每一個主機相連的端口的端口號。圖6是示出了根據本發明的編址方法600的流程圖。在步驟S610,樹創建單元510依次以每個交換機為根,通過網絡拓撲發現功能,創建一棵包含所有主機的樹,由此,得到多棵樹。因為網絡拓撲可能會提供冗余的路徑,不一定每棵樹都包含所有的交換機。另外,以一個交換機為根,可能會創建出多棵包含所有主機的樹,在這種情況下,可以先于樹選擇單元520的操作,由樹創建單元510先選擇以此交換機為根、高度最小的任意一棵樹,作為所創建的樹。也可以創建并記錄所有這些樹,由樹選擇單元520統一進行選擇。在步驟S620,樹選擇單元520從樹創建單元510所創建的多棵樹中選擇具有最小高度的樹,如果存在多棵高度相同的最小高度的樹,則選出所有這多棵最小高度的樹。根據樹選擇單元520的操作,當存在多棵(R棵)高度相同的最小高度的樹時,網絡拓撲將被構建成一個多根樹。所述多根樹的高度為H。位于每棵樹的根節點的交換機稱為根交換機(也稱為第O層交換機),與第i_l層交換機直接相連的交換機稱為第i層交換機(l^i^ H-2),與主機直接相連的交換機稱為邊緣交換機(邊緣交換機可以是第k層交換機,O彡k彡H-2)。在步驟S630,地址分配單元530對于所選擇的每一棵具有最小高度H的樹,將該樹的根節點作為根交換機(也可以稱為第O層交換機),分配根交換機位置地址。例如,可以依次為每棵樹的根節點分配根交換機位置地址“O”、“I”、…、“R-ι”。在步驟S640,地址分配單元530從與每個根交換機直接相連的第I層交換機開始,針對每一個第i層交換機,找出從根交換機到達此第i層交換機的所有路徑,針對每條路徑,為此第i層交換機分配一個第i層交換機位置地址,其格式為“根交換機位置地址.第I層交換機地址.···.第i層交換機地址”,其中第i層交換機地址可以是第i-Ι層交換機與第i層交換機相連的端口的端口號。在步驟S640,地址分配單元530為每個主機分配主機位置地址,其格式為“邊緣交換機位置地址.主機地址”,其中主機地址可以是邊緣交換機與主機相連的端口的端口號。對于位置地址“根交換機位置地址.第I層交換機地址.第2層交換機地址.···.第i層交換機地址.···.邊緣交換機地址.主機地址”,每層地址可以用8比特表示。這樣當通過拓撲發現功能得到的多根樹的高度H小于等于6時,位置地址的長度不會 超過MAC地址的48比特的空間。當位置地址未用滿6層(48比特)時,用全I填充表示無效地址(可以由地址分配單元530完成)。例如,“O. I. 2. 3. 255. 255”表示這個主機的位置地址格式為“根交換機位置地址.第一層地址.第二層地址.主機地址”,具體值為“O. 1.2.3”。在本說明書的描述中,為了行文方便,無效地址通常被省略,即“O. L 2. 3”就表示“O. I. 2. 3. 255. 255”。“根交換機位置地址”的地址空間大小是由根交換機的個數決定的,8比特最多可以表示255個根交換機。核心層的交換機一般是IOG 口的大交換機,假設核心層交換機是128 口,共255個,那么可以支持255*128*10 = 326,400個主機的IG線速通信,這個數目完全可以滿足一個數據中心的最大規模。除“根交換機位置地址”以外,其他“第I層交換機地址”、“第2層交換機地址”、…、“第i層交換機地址”和“主機地址”的地址空間大小是由交換機的端口數決定的,8比特最多可以表示255個端口,也可以滿足現有交換機的需求。另一方面,當通過拓撲發現功能得到的多根樹的高度H大于6時,需要對位置地址“根位置地址.第I層交換機地址.第2層交換機地址.….第i層交換機地址.….邊緣交換機地址.主機地址”進行壓縮。假定某層地址的最大地址空間<2N-1,就把這層的比特數壓縮到N比特(可以由地址分配單元530完成)。因為每層不再由固定長度8比特表示,在這種情況下,在完成拓撲發現之后,架構管理器300 (圖3)需要將每層的比特長度通知給所有交換機。本發明提出的新的編址方案可適用于數據中心使用的多種網絡拓撲,下面給出幾種常用網絡拓撲下編址的例子。圖7示出了參考文獻[3]所提出的Fat Tree網絡拓撲。具體描述可參考對圖3的具體內容,為了行文簡潔,此處不再贅述。圖8示出了基于Fat Tree網絡拓撲、通過網絡拓撲發現功能創建的一棵樹的示例。如圖8所示,樹創建單元510以交換機SI為根,通過網絡拓撲發現功能,創建了一棵包含所有主機的樹,樹的高度H = 4(步驟S610)。圖9示出了基于Fat Tree網絡拓撲、通過網絡拓撲發現功能創建的另一棵樹的示例。如圖9所示,樹創建單元510以交換機S5為根,通過網絡拓撲發現功能,創建了另一棵包含所有主機的樹,樹的高度H = 5 (步驟S610)。圖10示出了基于Fat Tree網絡拓撲、通過網絡拓撲發現功能創建的另一棵樹的示例。如圖10所示,樹創建單元510以交換機S13為根,通過網絡拓撲發現功能,創建了另一棵包含所有主機的樹,樹的高度H = 6 (步驟S610)。按照以上操作,樹創建單元510針對圖7所示的Fat Tree網絡拓撲一共可以創建 至少20棵樹。圖11示出了基于Fat Tree網絡拓撲的部分編址結果。樹選擇單元520從樹創建單元510所創建的至少20棵樹中選擇具有最小高度的樹(H = 4)。一共有4棵高度H = 4的樹,分別以4個核心交換機S1、S2、S3和S4為根(步驟 S620)。因此,地址分配單元530分別將這4個核心交換機S1、S2、S3和S4作為根交換機,分配根交換機位置地址分別“0”、“1”、“2”、“3” (步驟S630)。交換機S5 S12直接和根交換機相連,是第I層交換機。對于每個第I層交換機,從根交換機出發到達這些交換機有兩條路徑,所以這些交換機被分配兩個位置地址。例如,交換機S5,一條路徑是SI — S5,假設交換機S5連接到根交換機SI的第O號端口,那么對應這條路徑,交換機S5得到的交換機位置地址是“O. O”。另外一條從根交換機到交換機S5的路徑是S2 — S5,假設交換機S5和根交換機S2的第O號端口相連,那么對應這條路徑,交換機S5得到的交換機位置地址是“ I. O”。交換機S13 S20和第I層交換機相連,是第2層交換機。對于每個第2層交換機,從根交換機出發到這些交換機有4條路徑,所以這些交換機被分配4個位置地址。例如,交換機S13,4條路徑分別為S1 — S5 — S13、S2 — S5 — S13、S3 — S6 — S13、S4 — S6 — S13,對應的4個交換機位置地址分別為:“0· O. 0,,、“1· O. O”、“ 2. O. O ” 和 “ 3. O. O ”(步驟 S630)。主機與邊緣交換機(第2層交換機)直接相連,對應邊緣交換機的每個交換機位置地址,主機被分配一個主機位置地址,因此,圖11中的每個主機有4個主機位置地址。例如,主機Hl與交換機S13的第O號端口相連,因此對應交換機S13的4個交換機位置地址“O. O. 0”、“1. O. 0”、“2. O. O”和“3. O. 0”,此主機Hl的主機位置地址分別為“O. O. O. O”、“I. O. O. O”、“2. O. O. O”和 “3. O. O. O”(步驟 S640)。圖12示出了基于Clos網絡拓撲的部分編址結果。樹創建單元510針對圖12所示的Fat Tree網絡拓撲一共可以創建至少10棵樹。樹選擇單元520從樹創建單元510所創建的至少10棵樹中選擇具有最小高度的樹(H = 4)。一共有2棵高度H = 4的樹,分別以2個核心交換機SI和S2為根(步驟S620)。因此,地址分配單元530分別將這2個核心交換機SI和S2作為根交換機,分配根交換機位置地址分別“O”和“I”(步驟S630)。交換機S3 S6直接和根交換機相連,是第I層交換機。對于每個第I層交換機,從根交換機出發到達這些交換機有兩條路徑,所以這些交換機被分配兩個位置地址。例如,交換機S3,一條路徑是SI — S3,假設交換機S3連接到根交換機SI的第O號端口,那么對應這條路徑,交換機S3得到的交換機位置地址是“O. O”。另外一條從根交換機到交換機S3的路徑是S2 — S3,假設交換機S3和根交換機S2的第O號端口相連,那么對應這條路徑,交換機S3得到的交換機位置地址是“I. O”。交換機S7 SlO和第I層交換機相連,是第2層交換機。對于每個第2層交換機,從根交換機出發到這些交換機有4條路徑,所以這些交換機被分配4個位置地址。例如,交換機S7,4條路徑分別為S1 — S3 — S7、S2 — S3 — S7、SI — S4 — S7、S2 — S4 — S7,對應的4個交換機位置地址分別為:“0· O. 0,,、“1· O. O”、“O. I. O,,和 “I. I. O” (步驟 S630)。主機與邊緣交換機(第2層交換機)直接相連,對應邊緣交換機的每個交換機位置地址,主機被分配一個主機位置地址,因此,圖12中的每個主機有4個主機位置地址。 例如,主機Hl與交換機S7的第O號端口相連,因此對應交換機S7的4個交換機位置地址“O. O. 0”、“1. O. 0”、“0. I. O”和“I. I. 0”,此主機Hl的主機位置地址分別為“O. O. O. O”、“I. O. O. 0,,、“0· I. O. O” 和 “I. I. O. O” (步驟 S640)。位置地址代替MAC地址存在交換機的轉發表里,用于數據包的轉發。圖13是示出了 Fat Tree網絡拓撲下數據包轉發的示例示意圖。各層交換機的轉發表如下今根交換機
self locator, port. * 端口 port。其中“selflocator”表示根交換機自身的根交換機位置地址,以及“port”表示位于根交換機位置地址后的下一地址字段。例如,根交換機SI,selflocator是“O”。它的端口 O和S5相連,分配給S5的第一層地址也是“0”,因此目的位置地址為“0. 0.*”的數據包都送往端口 O ;同理,所有目的位置地址為“0. I. *”的數據包都送往端口 I等。今第i層交換機
selflocator, port.氺P port;
parent's root. * <->與第i-1層交換機相連的端口。其中“selflocator”表示第i層交換機自身的第i層交換機位置地址,“port”表示位于第i層交換機位置地址后的下一地址字段,“parent’ s root”表示與第i層交換機相連的第i_l層交換機的根交換機的根交換機位置地址。例如,交換機S5,selflocator是“O. O”和“I. 0”,端口 O和交換機S13相連,分配給交換機S13的第2層地址也是“0”,因此,所有目的位置地址為“selflocator. 0.的數據包都送往端口 0,也就是“0.0.0.*”G端口 0、“1.0.0.*”<^端口 0;同理,所有目的位置地址為“selflocator. I.*”的數據包都送往端口 1,也就是“0.0.1.*” e端口 1,“1.0.1.*” e端口 I。交換機S5的端口 2和3為上行端口,連到第i_l層交換機,與其相連的第i_l層交換機稱為其父交換機(parent),交換機S5有兩個父交換機——交換機SI和交換機S2,假設交換機S2和交換機S5的端口 2相連,交換機S2的根節點為其自身(根交換機位置地址“I”(parent’ s root)),因此對應的轉發表項為“ I. G端口 2;同理,交換機SI和交換機S5的端口 3相連,交換機SI的根節點為其自身(根交換機位置地址“O”(parent’ S root)),因此對應的轉發表項為“O·*” ^ 端口 3。再例如,交換機S13, selflocator 是“O. O. 0,,、“1· O. 0,,、“2· O. O” 和“3.0.0”,端口 O和主機Hl相連,分配給Hl的主機位置地址也是0,因此所有目的位置地址為"selflocator. O. *”的數據包都送往端口 0,也就是“ 0. 0. 0. 0. * ” G端口 O、“1.0.0. 端口 O、“2. 0. 0. O.*,,G 端口 O、“3. 0. 0. 0.氺”
e端口 0;同理,所有目的位置地址為“selflocator· I·*”的數據包都送往端口 1,也就是 “0. 0. 0. l.*”e 端口 1、“1.0. 0. I.*”—> 端口 I、“2. 0.0.1·*” G 端口 1、“3. 0.0. I.*” O 端口 I。父換機 S13 的端口 2和3為上行端口,連到第i-Ι層交換機,與其相連的第i_l層交換機稱為其父交 換機(parent),交換機S13有兩個父交換機——交換機S5和交換機S6,假設交換機S6和交換機S13的端口 2相連,交換機S6的根節點為根交換機S3 (根交換機位置地址“2”(parent’ s root))或根交換機S4 (根交換機位置地址“3”(parent’ s root)),因此對應的轉發表項為“2.*” G端口 2和I “3.*” 0端口 2;同理,交換機S5和交換機S13的端口 3相連,交換機S5的根節點為根交換機SI (根交換機位置地址“O”(parent’ sroot))或根交換機S2(根交換機位置地址“I”(parent’s root)),因此對應的轉發表項為“O·*,,<-> 端口 3 和 “I.*” G 端口 3。當網絡拓撲提供了冗余的路徑時,主機和交換機分配多個位置地址。多個位置地址描述了多條路徑,在多條路徑中選擇合適的路徑可以實現負載均衡。圖14是示出了包含了根據本發明的編址裝置500的示例架構管理器1400的結構方框圖,以及圖15示出了多個位置地址分別對應多條路徑的示意圖。如圖14所示,包含了根據本發明的編址裝置500的示例架構管理器1400還包括存儲器1410、調度單元1420和故障處理單元1430。存儲器1410存儲了全局位置地址表。全局位置地址表包括了每一個主機的IP地址與由編址裝置500生成的所述主機的所有主機位置地址之間的映射。調度單元1420在收到地址解析協議(ARP)請求時,以目的主機的IP地址為索引查找所述全局位置地址表,并根據調度算法,從所找到的與目的主機的IP地址對應的一個或者多個主機位置地址中選擇一個主機位置地址返回給源主機,完成ARP地址解析。當未能從所述全局位置地址表找到與目的主機的IP地址對應的主機位置地址時,調度單元1420進行全網絡的廣播,獲得目的主機的一個或者多個主機位置地址(可以將這樣得到的一個或者多個主機位置地址與目的主機的IP地址之間的映射存儲到全局位置表中),再根據調度算法,從所獲得的與目的主機的IP地址對應的一個或者多個主機位置地址中選擇一個主機位置地址返回給源主機,完成ARP地址解析。故障處理單元1430在交換機檢測到相鄰交換機或鏈路發生故障時,將全局位置地址表中相應的主機位置地址設為失效。此時,調度單元1420在選擇與目的主機的IP地址對應的主機位置地址時,不再選擇被設為失效的主機位置地址。如圖15所示,主機Hl是源主機,主機H5是目的主機,主機H5具有4個位置地址,相對應地,主機Hl到主機H5之間有4條不同的路徑,如圖14中所示。全局位置地址表(存儲于存儲器1410中)中存儲了所有主機的所有主機位置地址。當架構管理器收到地址解析協議(ARP)請求的時候,調度單元1420可以從多個主機位置地址中選擇一個主機位置地址進行應答。對主機位置地址的選擇相當于從多個路徑中選擇一個路徑,選擇合適的路徑可以實現負載均衡。選擇方法可以是隨機選擇、RoundRobin、或者其他調度算法。針對ARP地址解析,架構管理器存儲有全局位置地址表。在收到ARP請求時,架構管理器在全局位置地址表中查找與目的主機的IP地址相對應的主機位置地址。如果找到了與目的主機的IP地址對應的一個或者多個主機位置地址,可以根據調度算法,從所找出的一個或者多個主機位置地址中選擇一個主機位置地址,并返回所選擇的目的主機的主機位置地址給源主機,完成ARP地址解析。如果在全局位置地址表沒有找到與目的主機的IP地址對應的主機位置地址,架構管理器可以進行全網絡的廣播,獲得目的主機的一個或者多個主機位置地址,并采用調度算法從所獲得的一個或者多個主機位置地址中選擇一個主機位置地址,并返回所選擇的目的主機的主機位置地址給源主機,完成ARP地址解析。由于架構管理器的參與,大部分情況下不需要進行全網廣播。
另外,因為數據中心中包含了成千上萬臺服務器和交換機,并且經常支撐著數據密集型應用,因此對數據中心網絡的容錯性要求比較高。本發明由于采用了與一個交換機對應的一個或多個交換機位置地址,可以方便地提供容錯性。交換機之間通過定期交換Keep Alive消息來檢測鄰居交換機的運行狀態(可以由交換機中的故障檢測單元完成)。當交換機或者鏈路出現故障時,相鄰交換機的故障檢測單元可以檢測到此故障并報告給架構管理器,故障處理單元1430將全局位置地址表中相應的主機位置地址設為失效。這樣,在處理稍后的ARP請求時,調度單元1420就不再選擇被設為失效的主機位置地址,而是選擇其他有效的主機位置地址,來完成ARP地址解析。這里所公開的本發明實施例的其他設置包括執行在先概述并隨后詳述的方法實施例的步驟和操作的軟件程序。更具體地,計算機程序產品是如下的一種實施例具有計算機可讀介質,計算機可讀介質上編碼有計算機程序邏輯,當在計算設備上執行時,計算機程序邏輯提供相關的操作,從而提供上述編址方案。當在計算系統的至少一個處理器上執行時,計算機程序邏輯使得處理器執行本發明實施例所述的操作(方法)。本發明的這種設置典型地提供為設置或編碼在例如光介質(例如CD-ROM)、軟盤或硬盤等的計算機可讀介質上的軟件、代碼和/或其他數據結構、或者諸如一個或多個ROM或RAM或PROM芯片上的固件或微代碼的其他介質、或專用集成電路(ASIC)、或一個或多個模塊中的可下載的軟件圖像、共享數據庫等。軟件或固件或這種配置可安裝在計算設備上,以使得計算設備中的一個或多個處理器執行本發明實施例所述的技術。結合諸如一組數據通信設備或其他實體中的計算設備進行操作的軟件過程也可以提供根據本發明的編址裝置。根據本發明的編址裝置也可以分布在多個數據通信設備上的多個軟件過程、或者在一組小型專用計算機上運行的所有軟件過程、或者單個計算機上運行的所有軟件過程之間。應該理解,嚴格地講,本發明的實施例可以實現為數據處理設備上的軟件程序、軟件和硬件、或者單獨的軟件和/或單獨的電路。至此已經結合優選實施例對本發明進行了描述。應該理解,本領域技術人員在不脫離本發明的精神和范圍的情況下,可以進行各種其它的改變、替換和添加。因此,本發明的范圍不局限于上述特定實施例,而應由所附權利要求所限定 。
權利要求
1.一種編址裝置,包括 樹創建単元,用于依次以每個交換機為根,通過網絡拓撲發現功能,創建包含所有主機的樹,由此,得到多棵樹; 樹選擇単元,用于從所述樹創建単元所創建的多棵樹中選擇具有最小高度的樹;以及地址分配単元,用于針對由所述樹選擇單元所選擇的每ー棵具有最小高度的樹,為網絡中每個交換機和每個主機分配地址。
2.根據權利要求I所述的編址裝置,其中 當以ー個交換機為根,能夠創建出多棵包含所有主機的樹時,所述樹創建単元選擇以此交換機為根、高度最小的任意ー棵樹,作為所創建的樹。
3.根據權利要求I所述的編址裝置,其中 當以ー個交換機為根,能夠創建出多棵包含所有主機的樹時,所述樹創建単元記錄所有這多棵樹,作為所創建的樹。
4.根據權利要求I 3之一所述的編址裝置,其中 當存在多棵高度相同的最小高度的樹時,所述樹選擇單元選擇所有這多棵最小高度的樹。
5.根據權利要求I 4之一所述的編址裝置,其中所述地址分配單元針對由所述樹選擇單元所選擇的姆ー棵具有最小高度H的樹,為位于所述樹的根節點的根交換機,也稱為第O層交換機,分配根交換機位置地址;從與所述根交換機直接相連的第I層交換機開始,針對與第i_l層交換機直接相連的每ー個第i層交換機,找出從所述根交換機到達此第i層交換機的所有路徑,針對每條路徑,為此第i層交換機分配ー個第i層交換機位置地址,其格式為“根交換機位置地址.第I層交換機地址.···.第i層交換機地址”,其中I彡i彡H-2 ; 為每個主機分配主機位置地址,其格式為“邊緣交換機位置地址.主機地址”,其中邊緣交換機是與主機直接相連的第k層交換機,O < k < H-2。
6.根據權利要求5所述的編址裝置,其中 第i層交換機地址是第i_l層交換機與每ー個第i層交換機相連的端ロ的端口號。
7.根據權利要求5或6所述的編址裝置,其中 主機地址是邊緣交換機與每ー個主機相連的端ロ的端ロ號。
8.—種編址方法,包括 依次以每個交換機為根,通過網絡拓撲發現功能,創建包含所有主機的樹,由此,得到多棵樹; 從所創建的多棵樹中選擇具有最小高度的樹;以及 針對所選擇的每ー棵具有最小高度的樹,為網絡中每個交換機和每個主機分配地址。
9.根據權利要求8所述的編址方法,其中 當以一個交換機為根,能夠創建出多棵包含所有主機的樹時,選擇以此交換機為根、高度最小的任意ー棵樹,作為所創建的樹。
10.根據權利要求8所述的編址方法,其中 當以ー個交換機為根,能夠創建出多棵包含所有主機的樹時,記錄所有這多棵樹,作為所創建的樹。
11.根據權利要求8 10之一所述的編址方法,其中 當存在多棵高度相同的最小高度的樹時,選擇所有這多棵最小高度的樹。
12.根據權利要求8 11之一所述的編址方法,其中 針對所選擇的每ー棵具有最小高度H的樹, 為位于所述樹的根節點的根交換機,也稱為第O層交換機,分配根交換機位置地址; 從與所述根交換機直接相連的第I層交換機開始,針對與第i_l層交換機直接相連的每ー個第i層交換機,找出從所述根交換機到達此第i層交換機的所有路徑,針對每條路徑,為此第i層交換機分配ー個第i層交換機位置地址,其格式為“根交換機位置地址.第I層交換機地址.···.第i層交換機地址”,其中I彡i彡H-2 ; 為每個主機分配主機位置地址,其格式為“邊緣交換機位置地址.主機地址”,其中邊緣交換機是與主機直接相連的第k層交換機,O < k < H-2。
13.根據權利要求12所述的編址方法,其中 第i層交換機地址是第i_l層交換機與每ー個第i層交換機相連的端ロ的端口號。
14.根據權利要求12或13所述的編址方法,其中 主機地址是邊緣交換機與每ー個主機相連的端ロ的端ロ號。
15.一種架構管理器,包括 根據權利要求I 7之一所述的編址裝置;以及 存儲器,用于存儲全局位置地址表,所述全局位置地址表包括了每ー個主機的因特網協議地址與所述主機的所有主機位置地址之間的映射。
16.根據權利要求15所述的架構管理器,還包括 調度單元,用于在收到地址解析協議請求時,以目的主機的因特網協議地址為索引查找所述全局位置地址表,井根據調度算法,從所找到的與目的主機的因特網協議地址對應的一個或者多個主機位置地址中選擇ー個主機位置地址返回給源主機,完成地址解析協議地址解析。
17.根據權利要求16所述的架構管理器,其中 當未能從所述全局位置地址表找到與目的主機的因特網協議地址對應的主機位置地址時,所述調度單元進行全網絡的廣播,獲得目的主機的一個或者多個主機位置地址,再根據調度算法,從所獲得的與目的主機的因特網協議地址對應的一個或者多個主機位置地址中選擇ー個主機位置地址返回給源主機,完成地址解析協議地址解析。
18.根據權利要求16或17所述的架構管理器,還包括 故障處理單元,用于在交換機檢測到相鄰交換機或鏈路發生故障時,將全局位置地址表中相應的主機位置地址設為失效, 其中所述調度単元在選擇與目的主機的因特網協議地址對應的主機位置地址時,不選擇被設為失效的主機位置地址。
19.一種交換機,包括根據權利要求I 7之一所述的編址裝置。
20.ー種數據路由方法,采用了根據權利要求14所述的編址方法編址的交換機位置地址和主機位置地址,所述數據路由方法包括 根交換機/第O層交換機將包含了 “根交換機位置地址.第I層交換機地址/主機地址.*”作為目的主機的主機位置地址的數據包轉發至端口號為“第I層交換機地址/主機地址”的端ロ ; 第i層交換機將包含了“第i層交換機位置地址.第i+1層交換機地址/主機地址.作為目的主機的主機位置地址的數據包轉發至端口號為“第i+1層交換機地址/主機地址”的端ロ,其中I≤i≤H-2 ;以及 第i層交換機將包含了 “根交換機位置地址.*”作為目的主機的主機位置地址的數據包轉發至與以具有“根交換機位置地址”作為根交換機位置地址的根交換機為根節點的第i-Ι層交換機相連的端ロ,其中I≤i≤H-2。
全文摘要
本發明提出了一種用于數據中心網絡的編址方法、編址裝置、架構管理器、交換機和數據路由方法。根據本發明的編址裝置,包括樹創建單元,用于依次以每個交換機為根,通過網絡拓撲發現功能,創建包含所有主機的樹,由此,得到多棵樹;樹選擇單元,用于從所述樹創建單元所創建的多棵樹中選擇具有最小高度的樹;以及地址分配單元,用于針對由所述樹選擇單元所選擇的每一棵具有最小高度的樹,為網絡中每個交換機和每個主機分配地址。本發明適用于數據中心所采用的多種網絡拓撲,可實現位置地址的聚合,以減小轉發表,而且能夠容易地實現網絡負載均衡。
文檔編號H04L29/12GK102694720SQ20111007713
公開日2012年9月26日 申請日期2011年3月24日 優先權日2011年3月24日
發明者劉永強, 夏勇, 胡艷, 黃權 申請人:日電(中國)有限公司