用于在中間件機(jī)器環(huán)境中支持發(fā)現(xiàn)和路由退化胖樹的系統(tǒng)和方法
【專利說明】用于在中間件機(jī)器環(huán)境中支持發(fā)現(xiàn)和路由退化胖樹的系統(tǒng) 和方法
[0001] 版權(quán)聲明
[0002] 本專利文獻(xiàn)中的一部分公開內(nèi)容包含受版權(quán)保護(hù)的素材。當(dāng)專利文獻(xiàn)或?qū)@_ 出現(xiàn)在可公開獲得的美國(guó)專利商標(biāo)局文件或檔案中時(shí),版權(quán)所有人不反對(duì)任何人影印再現(xiàn) 專利文獻(xiàn)或?qū)@_,不過保留其它方面的所有版權(quán)。
技術(shù)領(lǐng)域
[0003] 本發(fā)明一般地涉及計(jì)算機(jī)系統(tǒng),具體涉及中間件機(jī)器環(huán)境。
【背景技術(shù)】
[0004] 胖樹拓?fù)浔挥糜诟咝阅苡?jì)算(HPC)集群,并且被用于基于無限帶寬(IB)技術(shù)的集 群。和大部分其它拓?fù)湟粯?,?duì)胖樹來說,路由算法有益于網(wǎng)絡(luò)資源的高效利用。然而,當(dāng) 涉及交換機(jī)到交換機(jī)通信時(shí),現(xiàn)有的路由算法存在局限性。現(xiàn)有的路由算法都不支持有益 于高效系統(tǒng)管理的無死鎖和全連接的交換機(jī)到交換機(jī)通信。這些是本發(fā)明的實(shí)施例意圖針 對(duì)的一般領(lǐng)域。
【發(fā)明內(nèi)容】
[0005] 這里描述可以支持具有多個(gè)交換機(jī)的架構(gòu)中的發(fā)現(xiàn)和路由的系統(tǒng)和方法。所述系 統(tǒng)允許架構(gòu)中的一或多個(gè)交換機(jī)被標(biāo)記以交換機(jī)角色。隨后,架構(gòu)中的子網(wǎng)管理器可以檢 測(cè)與所述一或多個(gè)交換機(jī)相關(guān)聯(lián)的交換機(jī)角色。此外,可基于所檢測(cè)的與所述一或多個(gè)交 換機(jī)相關(guān)聯(lián)的交換機(jī)角色在架構(gòu)上應(yīng)用路由算法。
【附圖說明】
[0006] 圖1表示根據(jù)本發(fā)明的實(shí)施例的在網(wǎng)絡(luò)環(huán)境中支持交換機(jī)角色機(jī)制的示例。
[0007] 圖2圖解根據(jù)本發(fā)明的實(shí)施例的用于在網(wǎng)絡(luò)環(huán)境中支持交換機(jī)角色機(jī)制的示例 流程圖。
[0008] 圖3表示根據(jù)本發(fā)明的實(shí)施例的網(wǎng)絡(luò)環(huán)境中的退化胖樹的例示。
[0009] 圖4表示根據(jù)本發(fā)明的實(shí)施例的修復(fù)網(wǎng)絡(luò)環(huán)境中的退化胖樹的例示。
[0010] 圖5表示根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)的示意框圖。
【具體實(shí)施方式】
[0011] 附圖中舉例而非限制地圖解了本發(fā)明,附圖中相同的附圖標(biāo)記指示相似的元件。 應(yīng)注意本公開中對(duì)"一個(gè)"或"一些"實(shí)施例的引用不一定指的是相同實(shí)施例,并且這樣的 引用意味至少一個(gè)。
[0012] 本發(fā)明的如下說明利用無限帶寬(IB)網(wǎng)絡(luò)作為高性能網(wǎng)絡(luò)的例子。對(duì)本領(lǐng)域的 技術(shù)人員來說,顯然可以無限制地使用其它種類的高性能網(wǎng)絡(luò)。另外,如下的本發(fā)明的說明 利用胖樹拓?fù)渥鳛榧軜?gòu)拓?fù)涞睦?。?duì)本領(lǐng)域的技術(shù)人員來說,顯然可以不受限制地使用 其它種類的架構(gòu)拓?fù)洹?br>[0013] 這里描述的是可以支持具有多個(gè)交換機(jī)的架構(gòu)中的發(fā)現(xiàn)和路由的系統(tǒng)和方法。
[0014] 無限帶寬(IB)體系結(jié)構(gòu)
[0015] 根據(jù)本發(fā)明的實(shí)施例,IB網(wǎng)絡(luò)可被稱為子網(wǎng),其中子網(wǎng)由利用交換機(jī)和點(diǎn)對(duì)點(diǎn)鏈 路互連的一組主機(jī)組成。IB架構(gòu)可構(gòu)成一或多個(gè)子網(wǎng),每個(gè)子網(wǎng)可利用路由器互連。子網(wǎng) 內(nèi)的主機(jī)和交換機(jī)是利用本地標(biāo)識(shí)符(LID)尋址的,一個(gè)子網(wǎng)局限于49151個(gè)LID。
[0016] IB子網(wǎng)可具有至少一個(gè)子網(wǎng)管理器(SM),子網(wǎng)管理器(SM)負(fù)責(zé)初始化和培養(yǎng) (bring up)網(wǎng)絡(luò),包括存在于子網(wǎng)中的交換機(jī)、路由器和主機(jī)通道適配器(HCA)上的所有 IB端口的配置。在初始化時(shí),SM始于發(fā)現(xiàn)狀態(tài),在發(fā)現(xiàn)狀態(tài)下,SM進(jìn)行網(wǎng)絡(luò)的掃描,以便發(fā) 現(xiàn)所有交換機(jī)和主機(jī)。在發(fā)現(xiàn)狀態(tài)期間,SM可以發(fā)現(xiàn)其它SM,并且可以協(xié)商哪個(gè)SM應(yīng)是主 SM。當(dāng)發(fā)現(xiàn)狀態(tài)完成時(shí),該SM進(jìn)入主狀態(tài)。在主狀態(tài)中,SM繼續(xù)進(jìn)行LID分配、交換機(jī)配 置、路由表計(jì)算和部署和端口配置。一旦主狀態(tài)結(jié)束,該子網(wǎng)就正常運(yùn)行并隨時(shí)可用,在子 網(wǎng)被配置之后,SM負(fù)責(zé)監(jiān)視網(wǎng)絡(luò)的變化。
[0017] 另外,SM可負(fù)責(zé)計(jì)算路由表,所述路由表維持全連接、無死鎖,和所有源和目的地 對(duì)之間的適當(dāng)負(fù)載均衡??稍诰W(wǎng)絡(luò)初始化時(shí)計(jì)算路由表,并且每當(dāng)拓?fù)渥兓瘯r(shí)可以重復(fù)該 處理,以便更新路由表并且確保最佳性能。
[0018] 在正常操作期間,SM執(zhí)行網(wǎng)絡(luò)的定期光掃描(light swe印),以檢查拓?fù)渥兓?件,比如當(dāng)鏈路故障時(shí),當(dāng)增加設(shè)備時(shí),或者當(dāng)鏈路被移除時(shí)。如果在光掃描期間發(fā)現(xiàn)變化 事件,或者如果SM收到以信令通知網(wǎng)絡(luò)變化的消息(陷阱)時(shí),SM可按照發(fā)現(xiàn)的變化重新 配置網(wǎng)絡(luò)。這種重新配置還可包括在初始化期間使用的步驟。此外,存在于各個(gè)設(shè)備上的 子網(wǎng)管理代理(SMA)可生成響應(yīng)以控制分組(子網(wǎng)管理分組(SMP)),并且可以配置用于子 網(wǎng)管理的本地組件。
[0019] IB是無損連網(wǎng)技術(shù),其中可以每個(gè)虛擬通道(VL)地進(jìn)行流量控制。VL是相同物 理鏈路上的具有獨(dú)立的緩存、流量控制和擁塞管理資源的邏輯信道。VL的概念使得可以在 物理拓?fù)渲辖⑻摂M網(wǎng)絡(luò)。這些虛擬網(wǎng)絡(luò)或?qū)涌捎糜谥T如高效路由、死鎖避免、容錯(cuò)和服 務(wù)差異化之類的各種用途。
[0020] 胖樹路由
[0021] 根據(jù)本發(fā)明的實(shí)施例,胖樹拓?fù)涫欠謱拥木W(wǎng)絡(luò)拓?fù)洌?,平衡的胖樹可在每一?具有相同的鏈路容量。此外,通過建立具有多個(gè)根的樹,例如,可利用XGFT符號(hào)描述的m端 口 n樹定義或k叉n樹定義,可以實(shí)現(xiàn)胖樹拓?fù)洹?br>[0022] 為了構(gòu)成更大的拓?fù)?,可基于將幾個(gè)胖樹連接在一起,而不是建立單一的大胖樹 來建立系統(tǒng)。從幾個(gè)單一胖樹建成的這種胖樹可被稱為多核胖樹。使用水平鏈路通過葉交 換機(jī)可以互聯(lián)多核胖樹,或者通過在胖樹底部使用附加層交換機(jī)可以互連多核胖樹,在胖 樹底部,每個(gè)這種附加層的交換機(jī)被連接到構(gòu)成多核胖樹的所有胖樹。
[0023] 胖樹路由算法可采用可用的網(wǎng)絡(luò)資源。胖樹路由算法可包括兩個(gè)階段:其中從源 轉(zhuǎn)發(fā)分組的上行階段,和當(dāng)分組被轉(zhuǎn)發(fā)給目的地時(shí)的下行階段。在最低的共同先輩處,發(fā)生 這兩個(gè)階段之間的轉(zhuǎn)變,所述共同先輩是通過其向下端口可到達(dá)源和目的地的交換機(jī)。這 種路由實(shí)現(xiàn)確保無死鎖,并且所述實(shí)現(xiàn)還確保朝向相同目的地的每條路徑會(huì)聚于相同的根 (頂端)節(jié)點(diǎn),以致朝向所述目的地的所有分組沿向下方向的單一專用路徑而行。通過針對(duì) 每個(gè)目的地都具有專用的下行路徑,下行階段中的競(jìng)爭(zhēng)被有效消除(轉(zhuǎn)移到上行階段),以 致去往不同目的地的分組只爭(zhēng)用其路徑上的一半交換機(jī)中的輸出端口。另外,過度定制的 胖樹中的下行路徑不是專用的,可被幾個(gè)目的地共享。
[0024] 此外,優(yōu)化的胖樹路由算法的架構(gòu)發(fā)現(xiàn)復(fù)雜度可被表示成0(m+n),其中m是邊(鏈 路)的數(shù)目,n是頂點(diǎn)(節(jié)點(diǎn))的數(shù)目。路由復(fù)雜度為〇(k*n),其中k是端節(jié)點(diǎn)的數(shù)目,n 是交換機(jī)的數(shù)目。
[0025] 根據(jù)本發(fā)明的實(shí)施例,不同的路由算法,比如分層最短路徑(LASH)、無死鎖單源最 短路徑(DFSSSP)和最小跳數(shù)路由可用于支持胖樹拓?fù)渲械穆酚伞?br>[0026] LASH路由是一種用于不規(guī)則網(wǎng)絡(luò)的確定性最短路徑路由算法??梢岳米钚÷?徑路由所有分組,通過找出并斷開經(jīng)由虛擬通道(VL)的循環(huán),所述算法實(shí)現(xiàn)無死鎖。此外, LASH不可以按任何方式均衡通信量,這在胖樹架構(gòu)中是顯然的。該算法目的在于利用最小 數(shù)目的VL,于是在同一層上,S卩,利用相同的鏈路,路由所有可能的無死鎖對(duì)。LASH的計(jì)算 復(fù)雜度為〇 (n3),其中n是節(jié)目的數(shù)目。
[0027] DFSSSP路由是一種用于任意拓?fù)涞母咝Ы⊥酚伞K锰摂M通道來保證無死 鎖,并且與LASH相比,其目的在于在路由處理期間不限制可能路徑的數(shù)目。與LASH相比, 它還利用改進(jìn)的啟發(fā)法來減少使用的虛擬通道的數(shù)目。DFSSSP的問題在于針對(duì)交換機(jī)到交 換機(jī)流量,它假設(shè)無死鎖,并且不會(huì)中斷針對(duì)交換機(jī)到節(jié)點(diǎn)對(duì)和交換機(jī)到交換機(jī)對(duì)來說可 能發(fā)生的任何循環(huán)。離線DFSSSP的計(jì)算復(fù)雜度為0(n 2 ? log(n)),其中n為節(jié)點(diǎn)的數(shù)目。
[0028] 最小跳數(shù)路由是用于OpenSM的默認(rèn)回退路由算法。它找出所有端點(diǎn)之間的最小 路徑,并試圖平衡本地交換機(jī)處的每條鏈路的路由數(shù)目。然而,利用最小跳數(shù)路由通常導(dǎo)致 信用回路,這會(huì)使架構(gòu)死鎖。最小跳數(shù)的復(fù)雜度為〇(n 2),其中n是節(jié)點(diǎn)的數(shù)目。
[0029] 交換機(jī)角色機(jī)制
[0030] 根據(jù)本發(fā)明的實(shí)施例,交換機(jī)角色機(jī)制可用于使架構(gòu)發(fā)現(xiàn)的復(fù)雜問題和路由問題 分開。
[0031] 圖1表示根據(jù)本發(fā)明的實(shí)施例,在網(wǎng)絡(luò)環(huán)境中支持交換機(jī)角色機(jī)制的例子。如圖 1中所示,網(wǎng)絡(luò)環(huán)境100可包括子網(wǎng)管理器(SM) 101,SM 101管理具有多個(gè)交換機(jī)(例如, 交換機(jī)111-114、121-124和131-134)和多個(gè)主機(jī)節(jié)點(diǎn)(例如,節(jié)點(diǎn)141-144)的架構(gòu)110, 例如,IB架構(gòu)。
[0032] 系統(tǒng)可實(shí)現(xiàn)用于明確地定義架構(gòu)110中的稍后可由SM 101檢測(cè)的交換機(jī)角色的 交換機(jī)角色機(jī)制。例如,廠商SMP屬性103可用于定義架構(gòu)110中的交換機(jī)角色104。經(jīng)由 廠商特有的SMP,可以查詢廠商SMP屬性103。
[0033] 此外,架構(gòu)110中的每個(gè)交換機(jī)可被分配主機(jī)名、IP地址和節(jié)點(diǎn)描述。通過利用 廠商屬性,系統(tǒng)可以使SM 101獲得交換機(jī)角色信息,而不依賴于SM 101配置輸入或者用于 動(dòng)態(tài)地提供配置信息的任何其它帶外接口。另外,交換機(jī)角色可被保存和恢復(fù)