在胖樹拓?fù)渲欣锰摂M通道的動(dòng)態(tài)分配減輕擁擠的系統(tǒng)和方法
【專利摘要】一種系統(tǒng)和方法可以在胖樹拓?fù)渲械木哂卸鄠€(gè)交換機(jī)的中間件機(jī)器環(huán)境中的防止業(yè)務(wù)擁擠。子網(wǎng)管理器可以掃描中間件機(jī)器環(huán)境中的子網(wǎng)以發(fā)現(xiàn)變化并且維護(hù)子網(wǎng)全部連接。性能管理器可以檢索來(lái)自于與子網(wǎng)中一個(gè)或多個(gè)組件相關(guān)聯(lián)的一個(gè)或多個(gè)性能管理代理中的性能和錯(cuò)誤相關(guān)的信息。然后,主機(jī)可以動(dòng)態(tài)地重新配置一個(gè)或多個(gè)虛擬通道以便改善網(wǎng)絡(luò)性能。
【專利說(shuō)明】在胖樹拓?fù)渲欣锰摂M通道的動(dòng)態(tài)分配減輕擁擠的系統(tǒng)和方法
[0001]版權(quán)聲明:
[0002]本專利文件的公開的一部分包含受版權(quán)保護(hù)的材料。版權(quán)所有者不反對(duì)任何人對(duì)專利文件或?qū)@_的傳真復(fù)制,因?yàn)樗霈F(xiàn)在專利商標(biāo)局專利文檔或記錄中,但在別的方面保留所有版權(quán)。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明一般涉及計(jì)算機(jī)系統(tǒng),并且具體地涉及在中間件機(jī)器環(huán)境中防止線頭阻塞和業(yè)務(wù)擁擠。
【背景技術(shù)】
[0004]互連網(wǎng)絡(luò)在下一代超極計(jì)算機(jī)、群、和數(shù)據(jù)中心中起著有益的作用。諸如無(wú)限帶(IB)技術(shù)之類的高性能網(wǎng)絡(luò)技術(shù)在高性能計(jì)算領(lǐng)域正代替專有的或低性能的解決方案,其中高帶寬和低延遲是關(guān)鍵要求。例如,IB安裝用于諸如Los Alamos National Laboratory的 Roadrunner> Texas Advanced Computing Center 的 Ranger、和 ForschungszcntrumJuelich的JuRoPa之類的巨型計(jì)算機(jī)中。
[0005]IB首次在2000年10月被標(biāo)準(zhǔn)化為稱為未來(lái)1/0和下一代1/0的兩個(gè)舊技術(shù)的合并。由于它的低延遲、高帶寬、和主機(jī)端處理資源的有效利用,它在高性能計(jì)算(HPC)社區(qū)內(nèi)已作為建立大型和可升級(jí)計(jì)算機(jī)群的解決方案而獲得公認(rèn)。事實(shí)上用于IB的系統(tǒng)軟件是OpenFabrics Enterprise Distribution (OFED),其由專家開發(fā)并且由 OpenFabrics 聯(lián)盟維護(hù)。OFED是公開資源并且可用于GNU/Linux和Microsoft Windows。
【發(fā)明內(nèi)容】
[0006]這里描述的是可以在胖樹拓?fù)渲芯哂卸鄠€(gè)交換機(jī)的中間件機(jī)器環(huán)境中防止線頭阻塞和業(yè)務(wù)擁擠的系統(tǒng)和方法。子網(wǎng)管理器可以掃描中間件機(jī)器環(huán)境中的子網(wǎng)以發(fā)現(xiàn)變化并且維持子網(wǎng)完全連接。性能管理器可以從與子網(wǎng)中的一個(gè)或多個(gè)組件相關(guān)聯(lián)的一個(gè)或多個(gè)性能管理代理中檢索性能和錯(cuò)誤相關(guān)的信息。然后,主機(jī)可以動(dòng)態(tài)地重新配置一個(gè)或多個(gè)虛擬通道以便改善網(wǎng)絡(luò)性能。
【專利附圖】
【附圖說(shuō)明】
[0007]圖1示出了根據(jù)本發(fā)明的實(shí)施例的在中間件環(huán)境中的優(yōu)化反饋循環(huán)的例示。
[0008]圖2示出了根據(jù)本發(fā)明的實(shí)施例的用于在中間件機(jī)器環(huán)境中減輕網(wǎng)絡(luò)擁擠的示范性流程圖。
[0009]圖3示出根據(jù)本發(fā)明的實(shí)施例的虛擬通道的動(dòng)態(tài)分配以減輕胖樹拓?fù)錉钪械膿頂D的例示。
[0010]圖4示出根據(jù)本發(fā)明的實(shí)施例的虛擬通道的動(dòng)態(tài)分配以減輕超額預(yù)訂的胖樹拓?fù)錉钪械膿頂D的例示。
【具體實(shí)施方式】
[0011]網(wǎng)絡(luò)業(yè)務(wù)模式的算法可預(yù)測(cè)性通過虛擬化和多核系統(tǒng)的引入而降低。當(dāng)多個(gè)虛擬化的客戶端駐留在相同的物理硬件上時(shí),網(wǎng)絡(luò)業(yè)務(wù)變?yōu)榭赡軐?dǎo)致網(wǎng)絡(luò)中的熱點(diǎn)的多個(gè)業(yè)務(wù)模式的重疊。如果多個(gè)流指向單個(gè)端點(diǎn),則熱點(diǎn)出現(xiàn)。用于熱點(diǎn)的公共源包括復(fù)雜的業(yè)務(wù)模式,歸因于虛擬化、虛擬機(jī)圖像的遷移、用于容錯(cuò)的檢查點(diǎn)和恢復(fù)機(jī)制、以及存儲(chǔ)和I/o業(yè)務(wù)。
[0012]當(dāng)熱點(diǎn)存在于網(wǎng)絡(luò)中時(shí),為該熱點(diǎn)指定的流可能降低不指定到該熱點(diǎn)的其它流(稱為犧牲者流)的性能。這是由于由擁擠的熱點(diǎn)產(chǎn)生的線頭(HOL)阻塞現(xiàn)象。
[0013]避免此問題的一種方法是使用諸如在硬件中評(píng)估的擁擠控制(CC)機(jī)制之類的CC機(jī)制。但是,硬件中評(píng)估的阻塞控制機(jī)制可能不總是可用的,例如由于同時(shí)存在于大規(guī)模群中的舊和新裝置的混合。此外,適當(dāng)?shù)腃C參數(shù)的選擇高度地依賴于拓?fù)洳⑶也徽_的參數(shù)可能導(dǎo)致性能降低。另外,由于擁擠控制機(jī)制在動(dòng)態(tài)地調(diào)整發(fā)送者的注入率,所以一些振蕩可能出現(xiàn)在流當(dāng)中。
[0014]根據(jù)本發(fā)明的實(shí)施例,系統(tǒng)和方法可以防止在諸如使用胖樹拓?fù)涞木哂卸鄠€(gè)交換機(jī)的中間件機(jī)器環(huán)境之類的互聯(lián)網(wǎng)絡(luò)中的線頭阻塞和業(yè)務(wù)擁擠。子網(wǎng)管理器可以掃描中間件機(jī)器環(huán)境中的子網(wǎng)以發(fā)現(xiàn)變化并且保持子網(wǎng)完全連接。性能管理器可以從與子網(wǎng)中一個(gè)或多個(gè)組件相關(guān)聯(lián)的一個(gè)或多個(gè)性能管理代理中檢索性能和錯(cuò)誤相關(guān)的信息。然后,主機(jī)可以動(dòng)態(tài)地重新配置一個(gè)或多個(gè)虛擬通道以便改善網(wǎng)絡(luò)性能。
[0015]無(wú)限帶(IB)結(jié)構(gòu)
[0016]根據(jù)本發(fā)明的實(shí)施例,可以在無(wú)限帶(IB)結(jié)構(gòu)中防止業(yè)務(wù)擁擠,其是串行點(diǎn)對(duì)點(diǎn)技術(shù)。每個(gè)IB網(wǎng)絡(luò)、或子網(wǎng)可以包括利用交換機(jī)和點(diǎn)到點(diǎn)鏈路互連的一組主機(jī)。單個(gè)子網(wǎng)可升級(jí)到多于一萬(wàn)個(gè)節(jié)點(diǎn)并且兩個(gè)或更多個(gè)子網(wǎng)可以利用IB路由器互連。子網(wǎng)內(nèi)的主機(jī)和交換機(jī)利用局部標(biāo)識(shí)符(LIDs)編址,例如單個(gè)子網(wǎng)被限制在48151個(gè)單播地址。
[0017]IB子網(wǎng)可以采用負(fù)責(zé)初始化和起動(dòng)子網(wǎng)的至少一個(gè)子網(wǎng)管理器(SM),所述子網(wǎng)包括位于子網(wǎng)中的交換機(jī)、路由器和主機(jī)信道適配器(HCA)上的所有IB端口的配置。SM的職責(zé)也包括路由表計(jì)算和部署。網(wǎng)絡(luò)的路由目的在于獲得所有源與目的地對(duì)之間的完全連接、死鎖自由、和負(fù)載平衡。路由表可以在網(wǎng)絡(luò)初始化時(shí)間被計(jì)算,并且每當(dāng)拓?fù)渥兓瘯r(shí)可以重復(fù)此處理以便更新路由表并保證最佳性能。
[0018]在初始化時(shí),在發(fā)現(xiàn)階段SM開始,其中SM進(jìn)行網(wǎng)絡(luò)掃描以便發(fā)現(xiàn)所有交換機(jī)和主機(jī)。在發(fā)現(xiàn)階段期間,SM也可以發(fā)現(xiàn)任何其它SM存在并且協(xié)商誰(shuí)應(yīng)當(dāng)是主SM。當(dāng)完成發(fā)現(xiàn)階段時(shí),SM可以進(jìn)入主階段。在主階段中,SM繼續(xù)進(jìn)行LID分配、交換機(jī)配置、路由表計(jì)算和部署、以及端口配置。在這一點(diǎn)上,子網(wǎng)準(zhǔn)備好使用。
[0019]在子網(wǎng)被配置之后,SM可以監(jiān)視網(wǎng)絡(luò)變化(例如鏈路停止,添加設(shè)備,或移除鏈路)。如果在監(jiān)視進(jìn)程期間檢測(cè)到變化,則消息(例如,陷阱(trap))可以被轉(zhuǎn)發(fā)到SM并且SM可以重新配置網(wǎng)絡(luò)。重新配置處理、或繁重的掃描處理的一部分是網(wǎng)絡(luò)的重新路由,其可以被執(zhí)行以便保證所有源與目的地對(duì)之間的完全連接、死鎖自由、和適當(dāng)?shù)呢?fù)載平衡。
[0020]IB網(wǎng)絡(luò)中的HCA可以利用隊(duì)列對(duì)(QP)彼此通信。在通信安裝期間創(chuàng)建QP,并且提供諸如QP數(shù)目、HCA端口、目的地LID、隊(duì)列大小、和傳輸服務(wù)之類的一組初始屬性。另一方面,在通信中與HCA相關(guān)聯(lián)的QP在通信結(jié)束時(shí)被毀壞。HCA可以處理許多QP,每個(gè)QP由一對(duì)隊(duì)列,發(fā)送隊(duì)列(SQ)和接收隊(duì)列(RQ)構(gòu)成。在參與通信的每個(gè)終端節(jié)點(diǎn)處存在一個(gè)此類對(duì)。發(fā)送隊(duì)列保存工作請(qǐng)求以被傳輸?shù)竭h(yuǎn)程節(jié)點(diǎn),而接收隊(duì)列保存關(guān)于對(duì)從遠(yuǎn)程節(jié)點(diǎn)接收的數(shù)據(jù)做什么的信息。除了 QP之外,每個(gè)HCA可以具有與一組發(fā)送和接收隊(duì)列相關(guān)聯(lián)的一個(gè)或多個(gè)完成排隊(duì)(CQ)。CQ保存對(duì)發(fā)送和接收隊(duì)列發(fā)布的對(duì)于工作請(qǐng)求的完成通知。
[0021]子網(wǎng)管理員(SA)是與主SM相關(guān)聯(lián)以存儲(chǔ)關(guān)于子網(wǎng)的不同信息的子網(wǎng)數(shù)據(jù)庫(kù)。與SA的通信可以幫助終端節(jié)點(diǎn)通過經(jīng)由指定的QP(例如QPl)發(fā)送一般服務(wù)管理數(shù)據(jù)報(bào)(MAD)來(lái)建立QP。發(fā)送者和接收者需要諸如源/目的地LID、服務(wù)級(jí)別(SL)、MTU等等之類的信息以建立QP。此信息可以從SA提供的被稱為路徑記錄的數(shù)據(jù)結(jié)構(gòu)中檢索。為了獲得路徑記錄,終端節(jié)點(diǎn)可以對(duì)SA執(zhí)行路徑記錄查詢,例如利用SubnAdmGet/SubnAdmGetabIe操作。然后,SA可以將請(qǐng)求的路徑記錄返回到終端節(jié)點(diǎn)。
[0022]SM也負(fù)責(zé)利用呈現(xiàn)在每個(gè)交換機(jī)和/或每個(gè)HCA中的子網(wǎng)經(jīng)營(yíng)代理商(SMA)監(jiān)視網(wǎng)絡(luò)變化。SMA利用陷阱和通告將諸如新的連接、斷開連接、和端口狀態(tài)變化之類的變化通信到SM。
[0023]陷阱是發(fā)送以提醒終端節(jié)點(diǎn)關(guān)于特定事件的消息。陷阱可以包含具有描述事件的細(xì)節(jié)的通告屬性。不同的陷阱可以被定義用于不同的事件。為了降低陷阱的不必要的分布,IB應(yīng)用事件轉(zhuǎn)發(fā)機(jī)制,其中終端節(jié)點(diǎn)需要明確地預(yù)訂它們想要被通知的陷阱。
[0024]用于性能管理的優(yōu)化反饋循環(huán)
[0025]圖1示出了根據(jù)本發(fā)明的實(shí)施例的在中間件環(huán)境中的優(yōu)化反饋循環(huán)的例示。如圖1所示,在中間件環(huán)境中的優(yōu)化反饋循環(huán)包括執(zhí)行器(例如子網(wǎng)管理器101)、監(jiān)視器(例如性能管理器102)、和優(yōu)化器(例如交換機(jī)104)。
[0026]子網(wǎng)管理器101可以周期性地掃描子網(wǎng)以發(fā)現(xiàn)變化并且維持完全連接的子網(wǎng)。此夕卜,性能管理器102可以從子網(wǎng)中的每個(gè)組件中周期性地收集信息以便分析網(wǎng)絡(luò)性能,并且主機(jī)端棧103可以動(dòng)態(tài)地重新配置用于網(wǎng)絡(luò)配置的尋址狀態(tài)信息。
[0027]另外,諸如交換機(jī)104或信道適配器105之類的子網(wǎng)中的每個(gè)設(shè)備可以執(zhí)行性能管理代理(PMA) 106或107。每個(gè)PMA可以與一組性能監(jiān)視和誤差監(jiān)視寄存器相關(guān)聯(lián)。性能管理器102可以例如利用性能管理數(shù)據(jù)報(bào)(MAD)從這些寄存器中檢索性能和錯(cuò)誤相關(guān)信肩、O
[0028]性能管理是由IB提供的一般管理服務(wù)中的一個(gè)以從IB組件中檢索性能統(tǒng)計(jì)和誤差信息。每個(gè)IB設(shè)備可以執(zhí)行PMA和最少集合的性能監(jiān)視和誤差監(jiān)視寄存器。此外,IB規(guī)范也定義允許附加性能和誤差計(jì)數(shù)器的監(jiān)視的一組可選屬性。
[0029]通過向給定設(shè)備的PMA發(fā)出性能MAD,性能管理器(PM)可以從這些寄存器中檢索性能和錯(cuò)誤相關(guān)的信息。PM然后運(yùn)行檢索并且向PMA返回結(jié)果。PM可以使用此信息檢測(cè)初期故障并且基于此信息,PM可以向SM建議推薦或需要的路徑變化和性能優(yōu)化。
[0030]性能管理涉及性能調(diào)節(jié),包括找到并刪除瓶頸。如圖1所示的優(yōu)化反饋循環(huán)可以應(yīng)用于利用虛擬通道的動(dòng)態(tài)分配支持以借助于SM、PM、和具有主機(jī)端動(dòng)態(tài)再配置能力的主機(jī)棧減輕網(wǎng)絡(luò)擁擠。在子網(wǎng)中,SM周期性地掃描子網(wǎng)以發(fā)現(xiàn)變化并且維護(hù)全部連接的子網(wǎng)。PM可以周期性地從子網(wǎng)中的每個(gè)組件收集信息以便分析網(wǎng)絡(luò)性能。在分析之后,PM將有關(guān)信息轉(zhuǎn)發(fā)到重新配置虛擬通道以便改善網(wǎng)絡(luò)性能的主機(jī)棧。
[0031]根據(jù)本發(fā)明的實(shí)施例,路由算法可以在熱點(diǎn)存在期間使用多個(gè)虛擬通道(VL)以改善性能。VL可以在路由表生成期間被靜態(tài)地分配并且可以避免阻塞的負(fù)面影響,假設(shè)拓?fù)涫瞧胶獾摹⑼耆畛涞牟o(wú)故障的胖樹。另外,利用虛擬通道的動(dòng)態(tài)分配以減輕網(wǎng)絡(luò)擁擠的機(jī)制可以被設(shè)計(jì)為識(shí)別熱點(diǎn)流并且動(dòng)態(tài)地分配虛擬通道。
[0032]與IB擁擠控制相比較,利用虛擬通道的動(dòng)態(tài)分配以減輕網(wǎng)絡(luò)擁擠,消除了對(duì)貢獻(xiàn)者的源扼殺的需要。此外,因?yàn)镮B CC可以動(dòng)態(tài)地調(diào)整發(fā)送者的注入率,所以IB CC參數(shù)可以導(dǎo)致所有流之間的振蕩。結(jié)果,IB CC解決方案可能不適合于更持久性質(zhì)的擁擠問題,因?yàn)檎袷幙梢越档涂傮w網(wǎng)絡(luò)吞吐量。當(dāng)多個(gè)作業(yè)在相同的系統(tǒng)上運(yùn)行并且競(jìng)爭(zhēng)網(wǎng)絡(luò)資源時(shí)、或當(dāng)系統(tǒng)不被平衡在它上運(yùn)行的應(yīng)用時(shí),此類持久的擁擠問題在業(yè)務(wù)已經(jīng)離開失敗的鏈路時(shí)出現(xiàn)。持久的擁擠問題可以通過以下方法被處理:首先檢測(cè)它們,并且此后動(dòng)態(tài)地重新分布VL資源以便獲得可以是在系統(tǒng)啟動(dòng)時(shí)不可能靜態(tài)地實(shí)現(xiàn)的平衡。
[0033]根據(jù)本發(fā)明的實(shí)施例,SM可以隨著PM啟動(dòng)而被使用。由于PM周期性地查詢子設(shè)備內(nèi)的每個(gè)組件中的性能計(jì)數(shù)器引起的額外開銷可以對(duì)數(shù)據(jù)業(yè)務(wù)具有最小影響,只要SM運(yùn)行在專用節(jié)點(diǎn)上。
[0034]根據(jù)本發(fā)明的實(shí)施例,中間件機(jī)器環(huán)境中的子網(wǎng)處于胖樹拓?fù)渲?。?yōu)選地,中間件機(jī)器環(huán)境中的胖樹拓?fù)涫呛?jiǎn)單的胖樹拓?fù)?。?yōu)選地,中間件機(jī)器環(huán)境中的胖樹拓?fù)涫浅~預(yù)訂的胖樹拓?fù)洹?br>
[0035]根據(jù)本發(fā)明的實(shí)施例,中間件機(jī)器環(huán)境中的一個(gè)或多個(gè)交換機(jī)使用路由算法以保證用于從源節(jié)點(diǎn)轉(zhuǎn)發(fā)到目的地節(jié)點(diǎn)的分組的死鎖自由。
[0036]優(yōu)選地,中間件機(jī)器環(huán)境中的一個(gè)或多個(gè)交換機(jī)允許路由算法經(jīng)由源節(jié)點(diǎn)和目的地節(jié)點(diǎn)的最小共同祖先節(jié)點(diǎn)轉(zhuǎn)發(fā)分組。優(yōu)選地,主機(jī)允許路由算法包括向上階段和向下階段,在向上階段中,分組被從源節(jié)點(diǎn)轉(zhuǎn)發(fā)到最小共同祖先節(jié)點(diǎn),在向下階段中,分組被從最小共同祖先節(jié)點(diǎn)轉(zhuǎn)發(fā)到目的地。
[0037]優(yōu)選地,中間件機(jī)器環(huán)境中的一個(gè)或多個(gè)交換機(jī)配置中間件機(jī)器環(huán)境中的一個(gè)或多個(gè)物理鏈路以與多個(gè)虛擬通道相關(guān)聯(lián)。
[0038]優(yōu)選地,性能管理器使用一個(gè)或多個(gè)性能計(jì)數(shù)器作為在網(wǎng)絡(luò)操作期間識(shí)別熱點(diǎn)和到熱點(diǎn)的貢獻(xiàn)者的度量。優(yōu)選地,性能管理器可以在性能掃描之后識(shí)別熱點(diǎn)流。在發(fā)現(xiàn)熱點(diǎn)之后性能管理器可以將重新指定路徑(repath)消息轉(zhuǎn)發(fā)到所有貢獻(xiàn)者。
[0039]中間件機(jī)器可以將熱點(diǎn)流再分配到分類為慢通道的虛擬通道。如果犧牲者流與熱點(diǎn)流共享向上階段,則中間件機(jī)器可以允許簡(jiǎn)單胖樹拓?fù)渲械臒狳c(diǎn)流被分配到分類為慢通道的虛擬通道。如果犧牲者流與熱點(diǎn)流共享向上階段和向下階段的至少一個(gè),則中間件機(jī)器可以允許超額預(yù)訂的胖樹拓?fù)渲械臒狳c(diǎn)流被分配到分類為慢通道的虛擬通道。中間件機(jī)器可以將熱點(diǎn)流再分配到分類為慢通道的虛擬通道。中間件機(jī)器可以在確定節(jié)點(diǎn)不再是熱點(diǎn)之后將所有流引導(dǎo)到從慢通道到快通道的節(jié)點(diǎn)。中間件機(jī)器可以利用擁擠控制機(jī)制允許犧牲者流避免線頭阻塞。
[0040]圖2示出了根據(jù)本發(fā)明的實(shí)施例的用于在中間件機(jī)器環(huán)境中減輕網(wǎng)絡(luò)擁擠的示范性流程圖。此流程圖所示的處理可以由處理器執(zhí)行。如圖2所示,在步驟201處,子網(wǎng)管理器掃描中間件機(jī)器環(huán)境中的子網(wǎng)以發(fā)現(xiàn)變化并且完成子網(wǎng)完全連接;然后,在步驟202處,性能管理器可以從與在子網(wǎng)中可以是硬件的一個(gè)或多個(gè)組件相關(guān)聯(lián)的一個(gè)或多個(gè)性能管理代理中檢索性能和錯(cuò)誤相關(guān)信息。最后,在步驟203處,系統(tǒng)允許主機(jī)動(dòng)態(tài)地重新配置網(wǎng)絡(luò)連接,諸如尋址狀態(tài)信息,以便改善網(wǎng)絡(luò)性能。
[0041 ] 減輕胖樹拓?fù)渲械淖枞?br>
[0042]根據(jù)本發(fā)明的實(shí)施例,優(yōu)化反饋循環(huán)機(jī)制可以應(yīng)用于任何拓?fù)浜吐酚伤惴?。在一個(gè)示例中,由于相對(duì)于免于死鎖的簡(jiǎn)單性,可以使用胖樹。系統(tǒng)可以動(dòng)態(tài)地更新?lián)頂D的連接并且將擁擠的業(yè)務(wù)流移動(dòng)到結(jié)構(gòu)中不同的虛擬通道,并且從而保證擁擠效果對(duì)不遭受擁擠的連接沒有影響。
[0043]圖3示出根據(jù)本發(fā)明的實(shí)施例的虛擬通道的動(dòng)態(tài)分配以減輕胖樹拓?fù)錉钪械膿頂D的例示。如圖3所示,中間件機(jī)器環(huán)境300包括多個(gè)葉交換機(jī),例如交換機(jī)301到303,和多個(gè)節(jié)點(diǎn),諸如在胖樹拓?fù)渲羞B接到葉交換機(jī)的服務(wù)器節(jié)點(diǎn)1-6。另外,葉交換機(jī)301-303可以利用一個(gè)或多個(gè)物理鏈路1-VI連接到中間交換機(jī)或根交換機(jī)310。
[0044]根據(jù)本發(fā)明的實(shí)施例,每個(gè)物理鏈路可以支持一個(gè)或多個(gè)虛擬通道(VL)。VL是在相同物理鏈路上的具有單獨(dú)的緩沖、流控制、和擁擠管理資源的邏輯信道。如圖3所示,每個(gè)物理鏈路1-VI可以具有多個(gè)虛擬通道,諸如慢通道(虛擬通道I)和快通道(虛擬通道O),并且所有分組流可以被配置為最初在快通道上運(yùn)行。
[0045]路由算法可以保證在胖樹拓?fù)渲械乃梨i自由。路由算法可以包括兩個(gè)階段:其中分組被從源轉(zhuǎn)發(fā)的向上階段,和當(dāng)分組被向目的地轉(zhuǎn)發(fā)時(shí)的向下階段。這兩個(gè)階段之間的轉(zhuǎn)變出現(xiàn)在最小共同祖先處,其是可以經(jīng)由它的向下端口到達(dá)源和目的地的中間交換機(jī)或根交換機(jī)310。
[0046]當(dāng)多個(gè)虛擬化的客戶端駐留在相同的物理硬件上時(shí),網(wǎng)絡(luò)業(yè)務(wù)變?yōu)榭赡軐?dǎo)致在網(wǎng)絡(luò)中的熱點(diǎn)的多個(gè)業(yè)務(wù)模式的重疊。在如圖3所示的示例中,當(dāng)來(lái)自于諸如節(jié)點(diǎn)1、節(jié)點(diǎn)3和節(jié)點(diǎn)6之類的貢獻(xiàn)者的多個(gè)流(在點(diǎn)線中)被運(yùn)往終端節(jié)點(diǎn)5時(shí),終端節(jié)點(diǎn)5可以變?yōu)閳?zhí)占。
[0047]為熱點(diǎn)指定的流可以降低其它流的性能。在上述示例中,可以存在從節(jié)點(diǎn)2到節(jié)點(diǎn)3的另一個(gè)流。從節(jié)點(diǎn)I到節(jié)點(diǎn)5的流和從節(jié)點(diǎn)2到節(jié)點(diǎn)3的流的向上階段共享物理鏈路I,因?yàn)槲锢礞溌稩被指定處理從葉交換機(jī)301到葉交換機(jī)302和303的業(yè)務(wù)。由于線頭(HOL)阻塞現(xiàn)象,從節(jié)點(diǎn)2到節(jié)點(diǎn)3的阻塞可以變?yōu)闋奚吡?虛線)。
[0048]系統(tǒng)可以通過在相同物理鏈路上的不同虛擬通道分布兩個(gè)流的兩個(gè)向上階段,例如通過將網(wǎng)絡(luò)流分割成為慢通道和快通道業(yè)務(wù)。在發(fā)現(xiàn)節(jié)點(diǎn)5是熱點(diǎn)之后,系統(tǒng)可以觸發(fā)將例如重新指定路徑陷阱的消息轉(zhuǎn)發(fā)到諸如節(jié)點(diǎn)1、3、和6之類的所有潛在貢獻(xiàn)者。然后,系統(tǒng)可以引導(dǎo)從節(jié)點(diǎn)I到節(jié)點(diǎn)5的流以經(jīng)過物理鏈路I上的虛擬通道0,其被指定為慢通道。另外,如果新的流被引導(dǎo)到現(xiàn)有熱點(diǎn),即節(jié)點(diǎn)5,則新的流可以被移動(dòng)到慢通道。相反,如果節(jié)點(diǎn)5不再是熱點(diǎn),則指向節(jié)點(diǎn)5的所有流可以被移動(dòng)回到分類為物理鏈路I上的快通道的虛擬通道I。
[0049]圖4示出根據(jù)本發(fā)明的實(shí)施例的虛擬通道的動(dòng)態(tài)分配以減輕超額預(yù)訂的胖樹拓?fù)錉钪械膿頂D的例示。如圖4所示,中間件機(jī)器環(huán)境400包括多個(gè)葉交換機(jī),例如交換機(jī)401到404,和多個(gè)節(jié)點(diǎn),諸如在胖樹拓?fù)渲羞B接到葉交換機(jī)的服務(wù)器節(jié)點(diǎn)1-12。另外,葉交換機(jī)401-403可以利用一個(gè)或多個(gè)物理鏈路1-VI連接到中間交換機(jī)或根交換機(jī)410。[0050]在此超額預(yù)訂的胖樹中,用于轉(zhuǎn)發(fā)分組的向下路徑由若干目的地共享,而不是如圖3所示專用于單個(gè)目的地。圖4中超額預(yù)訂的胖樹是2:1超額預(yù)訂的胖樹,因?yàn)槊總€(gè)向下路徑由兩個(gè)目的地共享。
[0051]如圖4所示,從節(jié)點(diǎn)1、5、和10到節(jié)點(diǎn)9的業(yè)務(wù)流可以在超額預(yù)訂的胖樹中產(chǎn)生HOL阻塞的負(fù)面影響。因此,熱點(diǎn)處于節(jié)點(diǎn)9處,并且節(jié)點(diǎn)1、5和10是貢獻(xiàn)者。
[0052]可以存在兩個(gè)當(dāng)鏈路被超額預(yù)訂時(shí),犧牲者流可以遭受HOL阻塞的情況,一個(gè)在向上階段并且一個(gè)在向下階段。
[0053]如圖4所示,從節(jié)點(diǎn)2到節(jié)點(diǎn)7的犧牲者流與從貢獻(xiàn)者節(jié)點(diǎn)I到節(jié)點(diǎn)9的熱點(diǎn)流經(jīng)由物理鏈路I共享從葉交換機(jī)401到中間/根交換機(jī)410的向上階段。這與如圖3所示的示例相似,其中性能下降是由于上游鏈路被與擁擠貢獻(xiàn)者節(jié)點(diǎn)I共享。
[0054]也如圖4所示,從節(jié)點(diǎn)2到節(jié)點(diǎn)11的犧牲者流與從貢獻(xiàn)者節(jié)點(diǎn)I到節(jié)點(diǎn)9的熱點(diǎn)流經(jīng)由物理鏈路I共享從葉交換機(jī)401到中間/根交換機(jī)410的向上階段。另外,從節(jié)點(diǎn)2到節(jié)點(diǎn)11的犧牲者流與所有熱點(diǎn)貢獻(xiàn)者共享從中間/根交換機(jī)410到葉交換機(jī)403的向下階段。在這種情況下,性能下降發(fā)生在與擁擠貢獻(xiàn)者節(jié)點(diǎn)I共享的下流鏈路處,即使?fàn)奚吡鞯哪康牡毓?jié)點(diǎn)即節(jié)點(diǎn)11是與熱點(diǎn)不同的節(jié)點(diǎn)。
[0055]系統(tǒng)可以例如通過將網(wǎng)絡(luò)流分割成為慢通道和快通道業(yè)務(wù),通過在相同物理鏈路上的不同虛擬通道分布流。
[0056]dFtree 算法
[0057]根據(jù)本發(fā)明的實(shí)施例,例如dFtree算法的路由算法可以被使用以在利用優(yōu)化反饋循環(huán)的網(wǎng)絡(luò)操作期間動(dòng)態(tài)地執(zhí)行VL的分配。性能管理器利用硬件端口計(jì)數(shù)器監(jiān)視網(wǎng)絡(luò)以檢測(cè)擁擠并且通過將流分類為或者慢通道(對(duì)擁擠的貢獻(xiàn)者)或者快通道(擁擠的犧牲者)來(lái)優(yōu)化當(dāng)前VL分配。然后,可以使用主機(jī)端動(dòng)態(tài)再配置方法應(yīng)用優(yōu)化。此方法的效果是對(duì)擁擠做出貢獻(xiàn)的所有流被遷移到單獨(dú)的VL (慢通道)以便避免對(duì)擁擠沒有做出貢獻(xiàn)的流(犧牲者流)的線頭阻塞的負(fù)面影響。
[0058]路由算法可以使用各種度量以動(dòng)態(tài)地識(shí)別熱點(diǎn)流,諸如IB性能計(jì)數(shù)器=XmitWait和XmitData。IB計(jì)數(shù)器XmitWait是當(dāng)選擇的端口有數(shù)據(jù)要發(fā)送,但是例如由于不足的信用或由于缺少仲裁而在整個(gè)計(jì)時(shí)單元(tick)期間實(shí)際上沒有發(fā)送數(shù)據(jù)時(shí)的計(jì)時(shí)單元的數(shù)目。這里,計(jì)時(shí)單元是對(duì)時(shí)鐘周期采樣的IB架構(gòu)硬件。此外,IB計(jì)數(shù)器XmitData是在所有VL上發(fā)送的以雙字的數(shù)據(jù)的總數(shù)。另外,路由算法可以使用諸如間隔之類的其它度量,其是每個(gè)性能掃描之間的秒的數(shù)目,以識(shí)別熱點(diǎn)流。
[0059]基于公式AxmitWait/間隔,可以對(duì)于終端節(jié)點(diǎn)的遠(yuǎn)程交換機(jī)端口計(jì)算擁擠指示值。擁擠指示值將標(biāo)準(zhǔn)化的端口擁擠定義為每秒XmitWaits的數(shù)目。如果擁擠指示值超過閾值,則它指示終端節(jié)點(diǎn)是熱點(diǎn)。
[0060]具有高擁擠指示值的超額預(yù)訂的終端節(jié)點(diǎn)或者是對(duì)擁擠的貢獻(xiàn)者或者是犧牲者流。例如,在圖4中在終端節(jié)點(diǎn)1、5、10處的貢獻(xiàn)者和在終端節(jié)點(diǎn)2處的犧牲者,所有可以具有高擁擠指示值。另一方面,對(duì)于它的遠(yuǎn)程交換機(jī)端口具有高擁擠指示值的終端節(jié)點(diǎn)指示它是終端點(diǎn)熱點(diǎn)。例如,在圖4中連接到終端節(jié)點(diǎn)9的遠(yuǎn)程交換機(jī)端口可以具有高擁擠指示值。
[0061]可以基于公式,例如AxmitWait*4/間隔,為每個(gè)端口測(cè)量發(fā)送者端口帶寬。此公式源自于表示性能掃描之間傳輸?shù)淖止?jié)數(shù)的XmitData性能計(jì)數(shù)器。在公式中,XmitData性能計(jì)數(shù)器乘以4,因?yàn)閄mitData計(jì)數(shù)器是以32位字為單位測(cè)量的。
[0062]端口利用可以被定義為實(shí)際帶寬與最大支持的鏈路帶寬之間的比率。
[0063]根據(jù)本發(fā)明的實(shí)施例,dFtree實(shí)施方式包括兩個(gè)算法:用于識(shí)別熱點(diǎn)流的第一算法(例如如下面所示的算法I)和用于再分配熱點(diǎn)流到分類為慢通道的虛擬通道的第二算法(例如如下面所示的算法2)。
【權(quán)利要求】
1.一種用于在一個(gè)或多個(gè)微處理器上操作的中間件機(jī)器環(huán)境中減輕業(yè)務(wù)擁擠的方法,包括: 經(jīng)由子網(wǎng)管理器,掃描中間件機(jī)器環(huán)境中的子網(wǎng)以發(fā)現(xiàn)變化并且維持子網(wǎng)完全連接;經(jīng)由性能管理器從與子網(wǎng)中的一個(gè)或多個(gè)組件相關(guān)聯(lián)的一個(gè)或多個(gè)性能管理代理中檢索性能和錯(cuò)誤相關(guān)的信息;以及 允許主機(jī)動(dòng)態(tài)地重新配置尋址狀態(tài)信息以便改善網(wǎng)絡(luò)性能。
2.如權(quán)利要求1所述的方法,還包括: 在中間件機(jī)器環(huán)境中支持胖樹拓?fù)洹?br>
3.如權(quán)利要求2所述的方法,還包括: 允許中間件機(jī)器環(huán)境中的胖樹拓?fù)涫呛?jiǎn)單的胖樹拓?fù)洹?br>
4.如權(quán)利要求2所述的方法,還包括: 允許中間件機(jī)器環(huán)境中的胖樹拓?fù)涫浅~預(yù)訂的胖樹拓?fù)洹?br>
5.如前面任一權(quán)利要求所述的方法,還包括: 使用路由算法以對(duì) 于從源節(jié)點(diǎn)轉(zhuǎn)發(fā)到目的地節(jié)點(diǎn)的分組保證死鎖自由。
6.如權(quán)利要求5所述的方法,還包括: 允許路由算法經(jīng)過源節(jié)點(diǎn)和目的地節(jié)點(diǎn)的最少共同祖先節(jié)點(diǎn)轉(zhuǎn)發(fā)該分組。
7.如權(quán)利要求6所述的方法,還包括: 允許路由算法包括向上階段和向下階段,在向上階段中分組被從源節(jié)點(diǎn)轉(zhuǎn)發(fā)到最少共同祖先節(jié)點(diǎn),在向下階段中分組被從最少共同祖先節(jié)點(diǎn)轉(zhuǎn)發(fā)到目的地。
8.如前面任一權(quán)利要求所述的方法,還包括: 在中間件機(jī)器環(huán)境中配置一個(gè)或多個(gè)物理鏈路以與多個(gè)虛擬通道相關(guān)聯(lián)。
9.如前面任一權(quán)利要求所述的方法,還包括: 使用一個(gè)或多個(gè)性能計(jì)數(shù)器作為在網(wǎng)絡(luò)操作期間識(shí)別熱點(diǎn)和對(duì)熱點(diǎn)的貢獻(xiàn)者的度量。
10.如前面任一權(quán)利要求所述的方法,還包括: 在性能掃描之后識(shí)別熱點(diǎn)流。
11.如權(quán)利要求10所述的方法,還包括: 在發(fā)現(xiàn)熱點(diǎn)之后將重新指定路徑消息轉(zhuǎn)發(fā)到所有貢獻(xiàn)者。
12.如權(quán)利要求10或11所述的方法,還包括: 將熱點(diǎn)流重新分配到分類為慢通道的虛擬通道。
13.如權(quán)利要求10或11所述的方法,還包括: 如果犧牲者流與熱點(diǎn)流共享向上階段,則允許簡(jiǎn)單胖樹拓?fù)渲械臒狳c(diǎn)流被分配到分類為慢通道的虛擬通道。
14.如權(quán)利要求10或11所述的方法,還包括: 如果犧牲者流與熱點(diǎn)流共享向上階段和向下階段的至少一個(gè),則允許超額預(yù)訂的胖樹拓?fù)渲械臒狳c(diǎn)流被分配到分類為慢通道的虛擬通道。
15.如權(quán)利要求10或11所述的方法,還包括: 在確定節(jié)點(diǎn)不再是熱點(diǎn)之后,將所有流從慢通道到快通道引導(dǎo)到節(jié)點(diǎn)。
16.如前面任一權(quán)利要求所述的方法,還包括: 使用擁擠控制機(jī)制允許犧牲者流避免線頭阻塞。
17.一種計(jì)算機(jī)程序,包括在由一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)執(zhí)行時(shí)使得所述一個(gè)或多個(gè)系統(tǒng)執(zhí)行如任何一個(gè)前述權(quán)利要求所述的方法的程序指令。
18.一種計(jì)算機(jī)程序產(chǎn)品,包括在其上存儲(chǔ)有如權(quán)利要求17所述的計(jì)算機(jī)程序的機(jī)器可讀存儲(chǔ)介質(zhì)。
19.一種用于在一個(gè)或多個(gè)微處理器上操作的中間件機(jī)器環(huán)境中防止業(yè)務(wù)擁擠的系統(tǒng),包括: 子網(wǎng)管理器,其在中間件機(jī)器環(huán)境中掃描子網(wǎng)以發(fā)現(xiàn)變化并且維持子網(wǎng)完全連接; 性能管理器,其從與子網(wǎng)中的一個(gè)或多個(gè)組件相關(guān)聯(lián)的一個(gè)或多個(gè)性能管理代理中檢索性能和錯(cuò)誤相關(guān)的信息;以及 主機(jī)端棧,其能夠動(dòng)態(tài)地重新配置尋址狀態(tài)信息以便改善網(wǎng)絡(luò)性能。
20.如權(quán)利要求19所述的系統(tǒng),其中: 所述中間件機(jī)器環(huán)境中的子網(wǎng)處于胖樹拓?fù)渲小?br>
21.一種非瞬時(shí)機(jī)器可讀存儲(chǔ)介質(zhì),在其上存儲(chǔ)有指令,所述指令在被執(zhí)行時(shí)使得系統(tǒng)執(zhí)行如下步驟: 經(jīng)由子網(wǎng)管理器,掃描中間件機(jī)器環(huán)境中的子網(wǎng)以發(fā)現(xiàn)變化并且維持子網(wǎng)完全連接; 經(jīng)由性能管理器從與子網(wǎng)中的一個(gè)或多個(gè)組件相關(guān)聯(lián)的一個(gè)或多個(gè)性能管理代理中檢索性能和錯(cuò)誤相關(guān)的信息;以及 允許主機(jī)動(dòng)態(tài)地重新配置一個(gè)或多個(gè)虛擬通道以便改善網(wǎng)絡(luò)性能。
22.—種程序,在被執(zhí)行時(shí)使得系統(tǒng)執(zhí)行以下步驟: 經(jīng)由子網(wǎng)管理器掃描中間件機(jī)器環(huán)境中的子網(wǎng)以發(fā)現(xiàn)變化并且維持子網(wǎng)完全連接; 經(jīng)由性能管理器從與子網(wǎng)中的一個(gè)或多個(gè) 組件相關(guān)聯(lián)的一個(gè)或多個(gè)性能管理代理中檢索性能和錯(cuò)誤相關(guān)的信息;以及 允許主機(jī)動(dòng)態(tài)地重新配置一個(gè)或多個(gè)虛擬通道以便改善網(wǎng)絡(luò)性能。
【文檔編號(hào)】H04L12/707GK103907321SQ201280052890
【公開日】2014年7月2日 申請(qǐng)日期:2012年11月14日 優(yōu)先權(quán)日:2011年11月15日
【發(fā)明者】倪威麟, B-D·約翰遜 申請(qǐng)人:甲骨文國(guó)際公司