版權(quán)聲明
本專利文檔公開的一部分包含受版權(quán)保護(hù)的素材。版權(quán)擁有者不反對任何人對專利文檔或?qū)@_按照在專利商標(biāo)局的專利文件或記錄中出現(xiàn)那樣進(jìn)行的傳真復(fù)制,但是除此之外在任何情況下都保留所有版權(quán)。
本發(fā)明一般而言涉及計(jì)算機(jī)系統(tǒng),并且具體而言,涉及多租戶(multi-tenant)集群環(huán)境。
背景技術(shù):
多租賃允諾對可用系統(tǒng)資源的高利用率,并且有助于維護(hù)服務(wù)提供商的成本有效(costeffective)的操作。然而,多租戶高性能計(jì)算(hpc)基礎(chǔ)設(shè)施帶來了獨(dú)特的挑戰(zhàn),這些挑戰(zhàn)與向租戶提供性能隔離以及實(shí)現(xiàn)跨網(wǎng)絡(luò)架構(gòu)的高效負(fù)載平衡這二者關(guān)聯(lián)。
技術(shù)實(shí)現(xiàn)要素:
系統(tǒng)和方法可以支持多租戶集群環(huán)境中的分區(qū)感知(partition-aware)路由。示例性方法可以支持多租戶集群環(huán)境內(nèi)的一個(gè)或多個(gè)租戶。該方法可以將一個(gè)或多個(gè)租戶中的每個(gè)租戶與多個(gè)分區(qū)中的分區(qū)關(guān)聯(lián)。然后該方法可以將該多個(gè)分區(qū)中的每個(gè)分區(qū)與多個(gè)節(jié)點(diǎn)中的一個(gè)或多個(gè)節(jié)點(diǎn)關(guān)聯(lián),該多個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)與多個(gè)交換機(jī)中的一葉子交換機(jī)關(guān)聯(lián),該多個(gè)交換機(jī)包括多個(gè)葉子交換機(jī)和多個(gè)根交換機(jī)。最后,該方法可以生成一個(gè)或多個(gè)線性轉(zhuǎn)發(fā)表,這一個(gè)或多個(gè)線性轉(zhuǎn)發(fā)表提供多個(gè)分區(qū)之間的隔離,其中這多個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)與一分區(qū)次序關(guān)聯(lián)。
根據(jù)實(shí)施例,在多租戶hpc系統(tǒng)中,每個(gè)租戶可以經(jīng)歷可預(yù)測的網(wǎng)絡(luò)性能,而不受其他租戶的工作負(fù)載的影響。
附圖說明
圖1示出了根據(jù)實(shí)施例的多租戶集群環(huán)境的圖示。
圖2示出了在其中可以實(shí)踐本公開的實(shí)施例的網(wǎng)絡(luò)環(huán)境中的樹形拓?fù)涞膱D示。
圖3示出了在其中可以實(shí)踐本公開的實(shí)施例的多租戶集群環(huán)境中的路由的圖示。
圖4示出了在其中可以實(shí)踐本公開的實(shí)施例的多租戶集群環(huán)境中的路由的圖示。
圖5示出了根據(jù)實(shí)施例的支持多租戶集群環(huán)境中的分區(qū)感知路由的圖示。
圖6示出了根據(jù)實(shí)施例的支持多租戶集群環(huán)境中的分區(qū)感知路由的圖示。
圖7示出了根據(jù)實(shí)施例的支持多租戶集群環(huán)境中的分區(qū)感知路由的圖示。
圖8示出了根據(jù)實(shí)施例的支持多租戶集群環(huán)境中的分區(qū)感知路由的圖示。
圖9示出了根據(jù)實(shí)施例的用于支持多租戶集群環(huán)境中的分區(qū)感知路由的方法的圖示。
具體實(shí)施方式
在下面的詳細(xì)描述中,將通過舉例而不是限制的方式在附圖的圖中說明本發(fā)明。應(yīng)當(dāng)指出,在本公開中對“一”或“一個(gè)”或“一些”實(shí)施例的引用不一定是對相同的實(shí)施例,并且這種引用意味著至少一個(gè)實(shí)施例。雖然討論了具體的實(shí)現(xiàn),但是應(yīng)當(dāng)理解,具體實(shí)現(xiàn)僅僅是為了說明的目的而提供的。相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識到,在不背離本發(fā)明的范圍和精神的情況下,可以使用其它部件和配置。
在整個(gè)附圖和詳細(xì)描述中,使用共同的引用標(biāo)號來指示相同的元件;因此,如果在其它地方對元件進(jìn)行了描述,則圖中所使用的引用標(biāo)號可以在特定于這個(gè)圖的具體描述中引用,或者可以不在特定于這個(gè)圖的具體描述中引用。
本發(fā)明的以下描述使用infinibandtm(ib)網(wǎng)絡(luò)作為高性能網(wǎng)絡(luò)的示例。對于本領(lǐng)域技術(shù)人員將清楚的是,可以使用其它類型的高性能網(wǎng)絡(luò)而不受限制。以下描述還使用胖樹拓?fù)渥鳛榧軜?gòu)拓?fù)涞氖纠?。對于本領(lǐng)域技術(shù)人員將清楚的是,可以使用其它類型的架構(gòu)拓?fù)涠皇芟拗啤?/p>
infinibandtm
infinibandtm(ib)是由infinibandtm貿(mào)易協(xié)會(huì)開發(fā)的開放標(biāo)準(zhǔn)無損網(wǎng)絡(luò)技術(shù)。該技術(shù)基于提供高吞吐量和低延遲通信的串行點(diǎn)對點(diǎn)全雙工互連,尤其適用于hpc應(yīng)用和數(shù)據(jù)中心。
infinibandtm體系結(jié)構(gòu)(iba)支持雙層拓?fù)鋭澐?。在下層,ib網(wǎng)絡(luò)被稱為子網(wǎng),其中子網(wǎng)可以包括使用交換機(jī)和點(diǎn)對點(diǎn)鏈路互連的一組主機(jī)。在上層,ib架構(gòu)構(gòu)成一個(gè)或多個(gè)子網(wǎng),該一個(gè)或多個(gè)子網(wǎng)可以使用路由器互連。
在子網(wǎng)內(nèi),使用交換機(jī)和點(diǎn)對點(diǎn)鏈路來連接主機(jī)。此外,存在一個(gè)主管理實(shí)體——子網(wǎng)管理器(sm),它駐留在子網(wǎng)中的指定的子網(wǎng)設(shè)備上。子網(wǎng)管理器負(fù)責(zé)配置、激活和維護(hù)ib子網(wǎng)。此外,子網(wǎng)管理器(sm)可以負(fù)責(zé)執(zhí)行ib架構(gòu)中的路由表計(jì)算。在這里,例如,ib網(wǎng)絡(luò)的路由的目的在于本地子網(wǎng)中的所有源和目的地對之間的恰當(dāng)?shù)呢?fù)載平衡。
通過子網(wǎng)管理接口,子網(wǎng)管理器與子網(wǎng)管理代理(sma)交換被稱為子網(wǎng)管理數(shù)據(jù)包(smp)的控制數(shù)據(jù)包。子網(wǎng)管理代理駐留在每個(gè)ib子網(wǎng)設(shè)備上。通過使用smp,子網(wǎng)管理器能夠發(fā)現(xiàn)架構(gòu),配置端節(jié)點(diǎn)和交換機(jī),以及接收來自sma的通知。
一般而言,除主子網(wǎng)管理器之外的所有其它子網(wǎng)管理器都在待機(jī)模式下起作用以用于容錯(cuò)。然而,在主子網(wǎng)管理器發(fā)生故障的情景中,由待機(jī)的子網(wǎng)管理器協(xié)商新的主子網(wǎng)管理器。主子網(wǎng)管理器還執(zhí)行對子網(wǎng)的周期性掃描(sweep),以檢測任何拓?fù)渥兓⑾鄳?yīng)地重新配置網(wǎng)絡(luò)。
此外,子網(wǎng)內(nèi)的主機(jī)和交換機(jī)可以使用本地標(biāo)識符(lid)來尋址,并且單個(gè)子網(wǎng)可以被限制為49151個(gè)lid。除了作為在子網(wǎng)內(nèi)有效的本地地址的lid,每個(gè)ib設(shè)備還可以具有被燒錄到其非易失性存儲器中的64位全局唯一標(biāo)識符(guid)。guid可以被用于形成全局標(biāo)識符(gid),全局標(biāo)識符是ib層三(l3)地址??梢酝ㄟ^將64位子網(wǎng)標(biāo)識符(id)與64位guid串接以形成類似于ipv6的128位地址來創(chuàng)建gid。例如,可以將不同的端口guid指派給連接到ib架構(gòu)的端口。
在網(wǎng)絡(luò)初始化時(shí),sm可以計(jì)算路由表(即,樹內(nèi)的每對節(jié)點(diǎn)之間的連接/路由)。此外,無論何時(shí)拓?fù)涓淖?,路由表都可以被更新,以便確保連接性和最佳性能。在正常操作期間,sm可以執(zhí)行對網(wǎng)絡(luò)的周期性輕掃描(lightsweep)以檢查拓?fù)渥兓H绻谳p掃描期間發(fā)現(xiàn)變化,或者如果sm接收到發(fā)信號通知網(wǎng)絡(luò)變化的信息(陷阱),則sm可以根據(jù)所發(fā)現(xiàn)的變化重新配置網(wǎng)絡(luò)。
例如,當(dāng)網(wǎng)絡(luò)拓?fù)涓淖儠r(shí),諸如當(dāng)鏈路斷開時(shí)、當(dāng)添加設(shè)備時(shí)或者當(dāng)鏈路被移除時(shí),sm可以重新配置網(wǎng)絡(luò)。重新配置步驟可以包括在網(wǎng)絡(luò)初始化期間執(zhí)行的步驟。此外,重新配置可以具有限于在其中發(fā)生網(wǎng)絡(luò)變化的子網(wǎng)的局部范圍。而且,使用路由器對大型架構(gòu)的分段會(huì)限制重新配置的范圍。
ib系統(tǒng)中的多租賃
從聯(lián)網(wǎng)角度來看,經(jīng)由分區(qū)的多租賃可以提供對網(wǎng)絡(luò)資源的高利用率,并有助于維護(hù)服務(wù)提供商的成本有效的操作。然而,多租戶基礎(chǔ)設(shè)施還強(qiáng)加了若干重要的安全問題,最具挑戰(zhàn)性的安全問題之一是與為租戶提供性能隔離關(guān)聯(lián)的。應(yīng)當(dāng)向每個(gè)租戶提供可預(yù)測的網(wǎng)絡(luò)性能,而不受系統(tǒng)中其他租戶的工作負(fù)載的影響。ib系統(tǒng)中的網(wǎng)絡(luò)隔離可以通過分區(qū)來提供。
根據(jù)實(shí)施例,分區(qū)是端口的邏輯組,使得組的成員只能與同一組的其他成員通信。在主機(jī)通道適配器(hca)和交換機(jī)處,可以使用分區(qū)成員資格信息來過濾數(shù)據(jù)包以實(shí)施隔離。數(shù)據(jù)包一到達(dá)傳入端口,就可以丟棄具有無效分區(qū)信息的數(shù)據(jù)包。在多租戶ib系統(tǒng)中,分區(qū)可以被用于創(chuàng)建租戶集群。在分區(qū)實(shí)施到位的情況下,節(jié)點(diǎn)不可以與屬于不同租戶集群的其它節(jié)點(diǎn)通信。以這種方式,即使在存在受損租戶節(jié)點(diǎn)或惡意租戶節(jié)點(diǎn)的情況下,也可以保證系統(tǒng)的安全性。
ib路由一般可以基于存儲在交換機(jī)中的線性轉(zhuǎn)發(fā)表(lft)。lft是由子網(wǎng)管理器(sm)在不考慮分區(qū)信息的情況下計(jì)算的。因此,中間網(wǎng)絡(luò)鏈路可能攜帶屬于不同分區(qū)的流量。中間鏈路的這種共享可能導(dǎo)致分區(qū)干擾。因此,租戶體驗(yàn)不可預(yù)測的網(wǎng)絡(luò)性能。此外,在分區(qū)的子網(wǎng)中路由算法的平衡特征也受到影響。這是因?yàn)椋词箍缭椒謪^(qū)邊界的鏈路不用于用戶流量,這些鏈路也與其它起作用的鏈路以相同的方式被路由(并且因此在平衡中被考慮)。變差的平衡會(huì)導(dǎo)致縮減的有效帶寬和次優(yōu)的網(wǎng)絡(luò)利用率。
ib一般提供服務(wù)質(zhì)量(qos)特征,該服務(wù)質(zhì)量特征可以被用于向每個(gè)分區(qū)保證可用帶寬的份額而無論其它分區(qū)中的節(jié)點(diǎn)如何。然后通過給每個(gè)分區(qū)指派被稱為服務(wù)層級(sl)的可用的差異化的流量類別來提供帶寬保證。然后根據(jù)sl到虛擬道(virtuallane,vl)映射表將每個(gè)sl映射到鏈路上可用的十五個(gè)vl中的一個(gè)。
在將sl指派給分區(qū)時(shí)可能出現(xiàn)問題,這是因?yàn)橄到y(tǒng)只可以利用15個(gè)vl在網(wǎng)絡(luò)中創(chuàng)建不同的分區(qū),而ib網(wǎng)絡(luò)一般可以具有大量的分區(qū)(例如,每個(gè)端口可以是最多達(dá)32768個(gè)分區(qū)的成員)。此外,在現(xiàn)有的ib硬件中,常見的是只支持九個(gè)vl(包括為子網(wǎng)管理保留的一個(gè)vl)。另外,由于sl是稀缺資源,所以可能期望盡可能多地留出它們以用于其它目的,例如,用以在網(wǎng)絡(luò)中提供容錯(cuò)或服務(wù)差異化。
ib體系結(jié)構(gòu)
根據(jù)實(shí)施例,ib是由ibta(infinibandtradeassociation,infiniband貿(mào)易協(xié)會(huì))開發(fā)的開放標(biāo)準(zhǔn)無損網(wǎng)絡(luò)技術(shù)。該技術(shù)定義了提供高吞吐量和低延遲通信的串行點(diǎn)對點(diǎn)全雙工互連。ib網(wǎng)絡(luò)可以由使用路由器互連的一個(gè)或多個(gè)子網(wǎng)組成。在子網(wǎng)內(nèi),使用交換機(jī)和點(diǎn)對點(diǎn)鏈路連接主機(jī)。在每個(gè)ib子網(wǎng)內(nèi),可以存在一個(gè)主管理實(shí)體——駐留在任何指定的子網(wǎng)設(shè)備上的子網(wǎng)管理器(sm),該子網(wǎng)管理器配置、激活和維護(hù)該ib子網(wǎng)。
通過子網(wǎng)管理接口,sm與駐留在每個(gè)ib設(shè)備上的子網(wǎng)管理代理(sma)交換被稱為子網(wǎng)管理數(shù)據(jù)包(smp)的控制數(shù)據(jù)包。通過使用smp,sm能夠發(fā)現(xiàn)架構(gòu)、配置端節(jié)點(diǎn)和交換機(jī),以及接收來自sma的通知。sm還可以執(zhí)行對子網(wǎng)的周期性輕掃描,以檢測任何拓?fù)渥兓⑾鄳?yīng)地重新配置網(wǎng)絡(luò)。
根據(jù)實(shí)施例,ib網(wǎng)絡(luò)中的子網(wǎng)內(nèi)路由可以基于存儲在交換機(jī)中的lft。lft由sm根據(jù)使用中的路由機(jī)制計(jì)算。在子網(wǎng)中,所有交換機(jī)以及端節(jié)點(diǎn)上的所有hca端口都使用本地標(biāo)識符(lid)來尋址。lft中的每個(gè)條目由目的地lid(dlid)和輸出端口組成。支持表中每個(gè)lid僅一個(gè)條目。當(dāng)數(shù)據(jù)包到達(dá)交換機(jī)時(shí),它的輸出端口是通過在該交換機(jī)的轉(zhuǎn)發(fā)表中查找dlid來確定的。路由是確定性的,因?yàn)閿?shù)據(jù)包在給定的源-目的地對(lid對)之間采用網(wǎng)絡(luò)中的相同的路徑。
根據(jù)實(shí)施例,分區(qū)是由ib支持的、用于提供共享網(wǎng)絡(luò)架構(gòu)的系統(tǒng)的邏輯組的隔離的安全機(jī)制。架構(gòu)中的節(jié)點(diǎn)上的每個(gè)hca端口可以是一個(gè)或多個(gè)分區(qū)的成員。分區(qū)成員資格由集中式分區(qū)管理器管理,該集中式分區(qū)管理器可以是sm的一部分。sm可以將關(guān)于每個(gè)端口的分區(qū)成員資格信息配置為16位分區(qū)鍵(p鍵)的表。sm還可以利用包含與lid關(guān)聯(lián)的p鍵信息的分區(qū)實(shí)施表來配置交換機(jī)和路由器。
根據(jù)實(shí)施例,對于節(jié)點(diǎn)之間的通信,除了管理隊(duì)列對(qp0和qp1)之外,可以將隊(duì)列對(qp)和端到端上下文(eec)指派給特定分區(qū)。然后可以將p鍵信息添加到所發(fā)送的每個(gè)ib傳送數(shù)據(jù)包。當(dāng)數(shù)據(jù)包到達(dá)hca端口或交換機(jī)時(shí),可以對照由sm配置的表驗(yàn)證該數(shù)據(jù)包的p鍵值。如果找到無效的p鍵值,則立即丟棄數(shù)據(jù)包。以這種方式,僅在共享分區(qū)的端口之間允許通信。
圖1中示出了ib分區(qū)的示例,圖1示出了根據(jù)實(shí)施例的多租戶集群環(huán)境的圖示。在圖1中所示的示例中,節(jié)點(diǎn)a-e即101-105使用infiniband架構(gòu)100經(jīng)由相應(yīng)的主機(jī)信道適配器111-115進(jìn)行通信。節(jié)點(diǎn)a-e被布置成分區(qū),即分區(qū)1110、分區(qū)2120和分區(qū)3130。分區(qū)1包括節(jié)點(diǎn)a101和節(jié)點(diǎn)d104。分區(qū)2包括節(jié)點(diǎn)a101、節(jié)點(diǎn)b102和節(jié)點(diǎn)c103。分區(qū)3包括節(jié)點(diǎn)c103和節(jié)點(diǎn)e105。由于分區(qū)的布置,節(jié)點(diǎn)d104和節(jié)點(diǎn)e105不允許通信,因?yàn)檫@些節(jié)點(diǎn)不共享分區(qū)。同時(shí),例如,節(jié)點(diǎn)a101和節(jié)點(diǎn)c103被允許通信,因?yàn)檫@些節(jié)點(diǎn)兩者都是分區(qū)2120的一部分。
根據(jù)實(shí)施例,ib是分層體系結(jié)構(gòu),其中可以使用vl將每個(gè)物理鏈路劃分成多個(gè)虛擬鏈路。每個(gè)vl可以具有自己的緩沖、流量控制和擁塞管理資源??梢酝ㄟ^一組差異化的流量類別(sl)來提供qos。sl表示數(shù)據(jù)包可以在網(wǎng)絡(luò)中接收的服務(wù)的類別。每個(gè)sl基于所配置的sl到vl映射表而映射到鏈路上的vl。ib支持最多達(dá)16個(gè)vl。然而,最后一個(gè)vl是為子網(wǎng)管理流量保留的并且一般不被用戶應(yīng)用使用。
胖樹(ftree)拓?fù)浜吐酚?/u>
根據(jù)實(shí)施例,基于ib的hpc系統(tǒng)中的一些采用胖樹拓?fù)湟岳门謽涮峁┑挠杏脤傩?。這些屬性包括由于每個(gè)源-目的地對之間的多個(gè)路徑的可用性而產(chǎn)生的固有的容錯(cuò)和完全的二分帶寬。胖樹背后的最初想法是,當(dāng)樹朝向拓?fù)涞母苿?dòng)時(shí),在節(jié)點(diǎn)之間采用具有更多的可用帶寬的較胖的鏈路。較胖的鏈路可以幫助避免上層交換機(jī)中的擁塞并且二分帶寬被維持。
圖2示出了其中可以實(shí)踐本公開的實(shí)施例的網(wǎng)絡(luò)環(huán)境中的樹形拓?fù)涞膱D示。如圖2中所示,在網(wǎng)絡(luò)架構(gòu)200中可以連接一個(gè)或多個(gè)端節(jié)點(diǎn)201-204。網(wǎng)絡(luò)架構(gòu)200可以基于胖樹拓?fù)?,該胖樹拓?fù)浒ǘ鄠€(gè)葉子交換機(jī)211-214以及多個(gè)脊交換機(jī)或根交換機(jī)231-234。此外,網(wǎng)絡(luò)架構(gòu)200可以包括一個(gè)或多個(gè)中間交換機(jī),諸如交換機(jī)221-224。
還如圖2中所示,端節(jié)點(diǎn)201-204中的每一個(gè)可以是多宿主節(jié)點(diǎn),即,通過多個(gè)端口連接到網(wǎng)絡(luò)架構(gòu)200的兩個(gè)或更多個(gè)部分的單個(gè)節(jié)點(diǎn)。例如,節(jié)點(diǎn)201可以包括端口h1和h2,節(jié)點(diǎn)202可以包括端口h3和h4,節(jié)點(diǎn)203可以包括端口h5和h6,并且節(jié)點(diǎn)204可以包括端口h7和h8。
此外,每個(gè)交換機(jī)可以具有多個(gè)交換機(jī)端口。例如,根交換機(jī)231可以具有交換機(jī)端口1-2,根交換機(jī)232可以具有交換機(jī)端口3-4,根交換機(jī)233可以具有交換機(jī)端口5-6,并且根交換機(jī)234可以具有交換機(jī)端口7-8。
根據(jù)實(shí)施例,胖樹路由機(jī)制是用于基于ib的胖樹拓?fù)涞淖盍餍械穆酚伤惴ㄖ?。胖樹路由機(jī)制也在ofed(開放架構(gòu)企業(yè)分發(fā)——用于構(gòu)建和部署基于ib的應(yīng)用的標(biāo)準(zhǔn)軟件堆棧)子網(wǎng)管理器opensm中實(shí)現(xiàn)。
胖樹路由機(jī)制的目的在于生成跨網(wǎng)絡(luò)架構(gòu)中的鏈路均勻散布最短路徑路由的lft。該機(jī)制按索引次序遍歷架構(gòu)并將端節(jié)點(diǎn)的目標(biāo)lid(以及因此對應(yīng)的路由)指派給每個(gè)交換機(jī)端口。對于連接到相同葉子交換機(jī)的端節(jié)點(diǎn),索引次序可以取決于端節(jié)點(diǎn)所連接到的交換機(jī)端口(即,端口編號順序)。對于每個(gè)端口,該機(jī)制可以維護(hù)端口使用計(jì)數(shù)器,并且可以在每次添加新路由時(shí)使用這個(gè)端口使用計(jì)數(shù)器來選擇最少使用的端口。
如上面所提到的,在分區(qū)的子網(wǎng)中,不允許不是共同分區(qū)的成員的節(jié)點(diǎn)進(jìn)行通信。在實(shí)踐中,這意味著由胖樹路由算法指派的路由中的一些不用于用戶流量。當(dāng)胖樹路由機(jī)制以與該胖樹路由機(jī)制針對其它起作用的路徑相同的方式為這些路由生成lft時(shí),會(huì)出現(xiàn)問題。這種行為會(huì)導(dǎo)致鏈路上的變差的平衡,因?yàn)楣?jié)點(diǎn)是以索引的次序路由的。由于路由是在不注意(oblivious)分區(qū)的情況下進(jìn)行的,所以胖樹路由的子網(wǎng)一般在分區(qū)間提供不佳的隔離。
圖3示出了其中可以實(shí)踐本公開的實(shí)施例的多租戶集群環(huán)境中的路由的圖示。更具體而言,圖3詳細(xì)說明了變差的負(fù)載平衡和不佳的隔離的問題。
圖3示出了在三個(gè)重疊分區(qū)中具有四個(gè)交換機(jī)(根交換機(jī)325-326和葉子交換機(jī)320-321)以及六個(gè)端節(jié)點(diǎn)(節(jié)點(diǎn)a-f,301-306)的二級胖樹拓?fù)?。分區(qū)1包括節(jié)點(diǎn)b302和節(jié)點(diǎn)c303。分區(qū)2包括節(jié)點(diǎn)a301、節(jié)點(diǎn)c303、節(jié)點(diǎn)d304和節(jié)點(diǎn)f306。最后,分區(qū)3包括節(jié)點(diǎn)d304和節(jié)點(diǎn)e305。
根據(jù)實(shí)施例,分區(qū)1和分區(qū)3分別被完全限制在葉子交換機(jī)320和321(即,單葉子交換機(jī)分區(qū))內(nèi)。因此,分區(qū)1和分區(qū)3中的節(jié)點(diǎn)之間的通信通過它們對應(yīng)的葉子交換機(jī)進(jìn)行,而不會(huì)將流量移動(dòng)到根交換機(jī)325或326。當(dāng)這個(gè)拓?fù)渫ㄟ^胖樹路由機(jī)制路由時(shí),朝向連接到葉子交換機(jī)320和葉子交換機(jī)321的節(jié)點(diǎn)的路由被指派根交換機(jī),因此葉子交換機(jī)間(inter-leafswitch)的流可以到達(dá)它們的目的地。為了負(fù)載平衡,朝向a和c的路由被指派根交換機(jī)325(在圖上示為鏈路p),而根交換機(jī)326路由朝向節(jié)點(diǎn)b的流量(在圖上示為鏈路q)。類似地,對于葉子交換機(jī)321,朝向葉子交換機(jī)間的分區(qū)2中的節(jié)點(diǎn)d和節(jié)點(diǎn)f的流量經(jīng)由根交換機(jī)325被路由(在圖上示為鏈路r),并且朝向節(jié)點(diǎn)e的流量經(jīng)由根交換機(jī)326被路由(在圖上示為鏈路s)。
根據(jù)實(shí)施例,根交換機(jī)上的端端口(endport)選擇被示為圖中具有節(jié)點(diǎn)標(biāo)識符的小圓圈。由于路由是(使用胖樹路由機(jī)制)在不考慮分區(qū)信息的情況下進(jìn)行的,所以子網(wǎng)中的路徑不是恰當(dāng)?shù)仄胶獾摹f溌穚和鏈路r被超額訂閱,而永遠(yuǎn)沒有葉子交換機(jī)內(nèi)(intra-leafswitch)的流會(huì)使用鏈路q或鏈路s。所指派的朝向節(jié)點(diǎn)b和節(jié)點(diǎn)e的路由不被利用(除了相對較低的管理流量),因?yàn)檫@兩個(gè)節(jié)點(diǎn)由于它們的分區(qū)而都不能從其葉子交換機(jī)外部接收任何通信。當(dāng)分區(qū)的通信僅限于拓?fù)渲械囊恍蛹墪r(shí),這種平衡問題也會(huì)在胖樹中發(fā)生。
現(xiàn)在參考圖4,圖4示出了其中可以實(shí)踐本公開的實(shí)施例的多租戶集群環(huán)境中的路由的圖示。更具體而言,圖4詳細(xì)說明了與胖樹中不佳的隔離關(guān)聯(lián)的問題。
圖4示出了具有四個(gè)交換機(jī)(根交換機(jī)425-426和葉子交換機(jī)420-421)以及八個(gè)端節(jié)點(diǎn)(節(jié)點(diǎn)a-g,401-408)的二級胖樹拓?fù)?。同樣,端?jié)點(diǎn)被劃分成兩個(gè)分區(qū)。分區(qū)1包括節(jié)點(diǎn)a401、節(jié)點(diǎn)b402、節(jié)點(diǎn)g407和節(jié)點(diǎn)h408。分區(qū)2包括節(jié)點(diǎn)c403、節(jié)點(diǎn)d404、節(jié)點(diǎn)e405和節(jié)點(diǎn)f406。
這些分區(qū)中的每一個(gè)具有連接到兩個(gè)葉子交換機(jī)中的每一個(gè)的兩個(gè)節(jié)點(diǎn)。如圖所示,胖樹路由機(jī)制指派根交換機(jī)425和根交換機(jī)426上的向下端口。由于胖樹路由機(jī)制的本質(zhì),每個(gè)根交換機(jī)路由朝向?qū)儆趦蓚€(gè)分區(qū)的節(jié)點(diǎn)的流量,這提供了不佳的隔離,這在分區(qū)環(huán)境中是不期望的。例如,朝向節(jié)點(diǎn)a和節(jié)點(diǎn)c的流量在共享鏈路p上被路由。不同分區(qū)的節(jié)點(diǎn)之間的對中間鏈路的共享會(huì)造成它們之間的干擾。盡管網(wǎng)絡(luò)在根層級處具有足夠的資源以在提供分區(qū)之間的完全隔離,但是胖樹路由機(jī)制不提供所期望的隔離。
分區(qū)感知的胖樹(pftree)路由
根據(jù)實(shí)施例,分區(qū)感知的胖樹路由機(jī)制(在本文不同地稱為pftree)可以實(shí)現(xiàn)與ib網(wǎng)絡(luò)中的多租賃關(guān)聯(lián)的期望目標(biāo)。例如,pftree機(jī)制可以通過跨樹中的鏈路均勻分布路由來為胖樹拓?fù)涮峁┝己闷胶獾木€性轉(zhuǎn)發(fā)表。此外,在維持鏈路上的路由平衡的同時(shí),pftree可以去除屬于不同分區(qū)的路徑之間的爭用。
根據(jù)實(shí)施例,pftree機(jī)制可以使用關(guān)于子網(wǎng)的分區(qū)信息來確保分區(qū)中的節(jié)點(diǎn)接收不受其它分區(qū)中運(yùn)行的工作負(fù)載影響的可預(yù)測的網(wǎng)絡(luò)性能。在拓?fù)錄]有足夠鏈路可用于在每個(gè)層級處提供分區(qū)隔離(而不損害負(fù)載平衡)的情景中,pftree可以指派vl以減少爭用的影響。
根據(jù)實(shí)施例,pftree機(jī)制可以遞歸地工作,以便為與每個(gè)端節(jié)點(diǎn)關(guān)聯(lián)的lid在所有相關(guān)的交換機(jī)上設(shè)置lft。這在下面的偽代碼(本文中稱為清單1)中示出:
根據(jù)實(shí)施例,routedowngoingbyascending()在下面的偽代碼(本文中稱為清單2)中例示:
根據(jù)實(shí)施例,routeupgoingbydescending()在下面的偽代碼(本文中稱為清單3)中例示:
根據(jù)實(shí)施例,assignvirtuallanes()在下面的偽代碼(在本文中不同地被稱為清單4)中例示:
根據(jù)實(shí)施例,在濾除單葉子交換機(jī)分區(qū)(即,可以完全在單個(gè)葉子交換機(jī)內(nèi)通信的那些分區(qū))之后,對于每個(gè)葉子交換機(jī),該機(jī)制可以按特定于分區(qū)的次序?qū)B接的端節(jié)點(diǎn)進(jìn)行分類(上面清單1的行4)(例如,經(jīng)由具有唯一分區(qū)次序號的每個(gè)分區(qū))。這種排序可以輔助確保在考慮在葉子交換機(jī)處的上行端口的可用數(shù)量的情況下根據(jù)節(jié)點(diǎn)的分區(qū)對節(jié)點(diǎn)進(jìn)行路由。然后,pftree機(jī)制可以調(diào)用諸如routedowngoingbyascending(上面清單1的行9)的函數(shù),并在樹中向上移動(dòng),以選擇下一層級處的路由lid的端口,如清單2中所示。
根據(jù)實(shí)施例,端口選擇是基于最少數(shù)量的已經(jīng)指派的路由。這可以幫助確保負(fù)載跨可用的路徑散布。然而,當(dāng)具有相同負(fù)載的若干端口可用時(shí),該函數(shù)可以遍歷這些最少負(fù)載的端口,并且選擇連接到已經(jīng)被正被路由的節(jié)點(diǎn)的分區(qū)鍵標(biāo)記的交換機(jī)的端口(清單2的行3-行9)。如果沒有交換機(jī)被標(biāo)記(這可以指示這個(gè)分區(qū)的第一個(gè)節(jié)點(diǎn)正被路由),則系統(tǒng)可以默認(rèn)選擇具有最大全局唯一標(biāo)識符(guid)的端口(清單2的行2)。當(dāng)交換機(jī)被第一次選擇用于分區(qū)時(shí),用分區(qū)鍵在向下方向上標(biāo)記該交換機(jī)(清單2的行11)。
根據(jù)實(shí)施例,在為lid設(shè)置交換機(jī)處的下行端口之后,該機(jī)制可以通過下降樹調(diào)用來在所有連接的向下交換機(jī)上為它指派向上端口(清單3的routeupgoingbydescending)。同樣,上行端口的選擇可以首先基于負(fù)載準(zhǔn)則,并且然后基于在向上方向上遠(yuǎn)程交換機(jī)的分區(qū)標(biāo)記。然后,可以通過向上移動(dòng)到樹中的下一層級來重復(fù)該過程,直到所有l(wèi)ft都被設(shè)置。注意到,可以使用多個(gè)分區(qū)鍵標(biāo)記交換機(jī)。pftree機(jī)制可以為每個(gè)交換機(jī)維護(hù)表,從而為每個(gè)分區(qū)存儲所路由的節(jié)點(diǎn)的計(jì)數(shù)。如果具有標(biāo)記的分區(qū)的若干交換機(jī)可用于路由節(jié)點(diǎn),則該計(jì)數(shù)器可以被用于決定端口的選擇??梢赃x擇具有分區(qū)的最大數(shù)量的已經(jīng)路由的節(jié)點(diǎn)的交換機(jī)。
根據(jù)實(shí)施例,一旦生成了路由表,保持分區(qū)隔離準(zhǔn)則,該機(jī)制就可以繼續(xù)以檢查鏈路中的一些是否正被用于朝向不同分區(qū)中的節(jié)點(diǎn)的流。對于這些情況,該機(jī)制可以將vl指派給干擾分區(qū)以提供隔離。清單4中示出了vl指派機(jī)制的示例。
根據(jù)實(shí)施例,vl指派機(jī)制可以遍歷分區(qū)并檢查由分區(qū)中的節(jié)點(diǎn)使用的任何中間通信鏈路是否與尚未被指派單獨(dú)vl的另一個(gè)分區(qū)共享中間鏈路。如果遇到這種情景,則可以指派新的vl。pftree路由機(jī)制可以支持用于vl選擇的兩種模式:嚴(yán)格模式和正常模式。
根據(jù)實(shí)施例,在嚴(yán)格模式中,如果用于pftree路由的所需的vl的數(shù)量超過系統(tǒng)中的可用vl,則路由會(huì)失敗(清單4的行10)。
根據(jù)實(shí)施例,在正常模式中,算法可以從vl1起重新開始將vl指派給分區(qū)(清單4的行8)。
根據(jù)實(shí)施例,提供了用于基于ib的胖樹網(wǎng)絡(luò)(不同地稱為pftree)的高效的分區(qū)感知路由機(jī)制。pftree機(jī)制可以為胖樹拓?fù)涮峁┓謪^(qū)的網(wǎng)絡(luò)范圍的隔離。此外,pftree為交換機(jī)產(chǎn)生良好平衡的lft。給定足夠的網(wǎng)絡(luò)資源,pftree可以僅在物理鏈路層級處對分區(qū)進(jìn)行隔離。例如,如果胖樹具有兩個(gè)不重疊的相等大小的分區(qū),則pftree可以基于路由本身將中間網(wǎng)絡(luò)鏈路劃分成兩個(gè)相等大小的邏輯子網(wǎng)絡(luò)。此外,如果網(wǎng)絡(luò)沒有足夠的可用資源來提供完全的分區(qū)隔離,則pftree可以采用與物理隔離相結(jié)合而起作用的補(bǔ)充的基于vl的隔離方案。
根據(jù)實(shí)施例,pftree路由機(jī)制的目的在于實(shí)現(xiàn)兩個(gè)主要目標(biāo)。首先,通過跨樹中的鏈路均勻地分布路由,該機(jī)制可以為胖樹拓?fù)渖闪己闷胶獾膌ft。其次,在維護(hù)鏈路上的路由平衡的同時(shí),pftree去除屬于不同分區(qū)的路徑之間的爭用。pftree可以使用關(guān)于子網(wǎng)的分區(qū)信息,并確保分區(qū)中的節(jié)點(diǎn)接收可預(yù)測的網(wǎng)絡(luò)性能而不受其它分區(qū)中運(yùn)行的工作負(fù)載的影響。如果拓?fù)錄]有足夠的鏈路可用于在每個(gè)層級處提供分區(qū)隔離(而不損害負(fù)載平衡),則pftree可以使用vl來減少爭用的影響。
根據(jù)實(shí)施例,pftree機(jī)制可以遞歸地工作,以為與每個(gè)端節(jié)點(diǎn)關(guān)聯(lián)的lid在所有相關(guān)的交換機(jī)上設(shè)置lft。在濾除單葉子交換機(jī)分區(qū)之后,對于每個(gè)葉子交換機(jī),該機(jī)制可以按特定于分區(qū)的次序?qū)B接的端節(jié)點(diǎn)進(jìn)行排序。這種排序確保在考慮在葉子交換機(jī)處的上行端口的可用數(shù)量的情況下根據(jù)節(jié)點(diǎn)的分區(qū)對節(jié)點(diǎn)進(jìn)行路由。在每個(gè)層級處的端口選擇可以基于最少數(shù)量的已經(jīng)指派的路由,以確保負(fù)載跨可用路徑散布。然而,當(dāng)具有相同負(fù)載的若干端口可用時(shí),該函數(shù)遍歷這些最少負(fù)載的端口,并選擇連接到已經(jīng)用正在被路由的節(jié)點(diǎn)的分區(qū)鍵標(biāo)記的交換機(jī)的端口。如果沒有交換機(jī)被標(biāo)記(即,路由特定分區(qū)的第一個(gè)節(jié)點(diǎn)),則pftree可以落到具有最大全局唯一標(biāo)識符(guid)的端口的默認(rèn)選擇。當(dāng)交換機(jī)被第一次選擇用于分區(qū)時(shí),可以使用分區(qū)鍵來標(biāo)記該交換機(jī)。以這種方式,該機(jī)制可以幫助確保給定足夠的可用于平衡的路徑,屬于一個(gè)分區(qū)的節(jié)點(diǎn)將路由通過相同的交換機(jī)和對應(yīng)的鏈路。一旦生成了路由表,保持分區(qū)隔離準(zhǔn)則,該機(jī)制就可以繼續(xù)以檢查鏈路中的一些是否正用于朝向不同分區(qū)中的節(jié)點(diǎn)的流。對于那些情況,該機(jī)制可以將vl指派給干擾分區(qū)以提供隔離。
現(xiàn)在參考圖5-圖8,這些圖是根據(jù)實(shí)施例的支持多租戶集群環(huán)境中的分區(qū)感知路由的圖示。
根據(jù)實(shí)施例,在圖5-圖8中通過超額訂閱的胖樹網(wǎng)絡(luò)的簡單部分示出pftree路由中的端口選擇機(jī)制。
現(xiàn)在參考圖5,圖5示出了具有四個(gè)交換機(jī)(根交換機(jī)525-526和葉子交換機(jī)520-521)以及八個(gè)端節(jié)點(diǎn)(節(jié)點(diǎn)a-g,501-508)的二級胖樹拓?fù)?。同樣,端?jié)點(diǎn)被劃分成兩個(gè)分區(qū)。分區(qū)1包括節(jié)點(diǎn)a401、節(jié)點(diǎn)d504、節(jié)點(diǎn)g507和節(jié)點(diǎn)h508。分區(qū)2包括節(jié)點(diǎn)b502、節(jié)點(diǎn)c503、節(jié)點(diǎn)e505和節(jié)點(diǎn)f506。
根據(jù)實(shí)施例,如圖5中所示,示例部分由兩個(gè)葉子交換機(jī)(520和521)組成,每個(gè)葉子交換機(jī)分別連接到四個(gè)端節(jié)點(diǎn)和在葉子交換機(jī)上方的下一層級處的兩個(gè)交換機(jī),即根交換機(jī)(525和526)。圖中還指示了down和max變量,它們分別表示在向下方向上指派的路由的數(shù)量以及為了確保每個(gè)鏈路上的恰當(dāng)平衡而可以被路由的節(jié)點(diǎn)的最大數(shù)量。
根據(jù)實(shí)施例,給定在每個(gè)葉子交換機(jī)處存在兩個(gè)上行端口,其中要路由四個(gè)端節(jié)點(diǎn),上行鏈路中的每一個(gè)應(yīng)當(dāng)向下路由兩個(gè)端節(jié)點(diǎn),以確保鏈路是平衡的(即,max=2)。
根據(jù)實(shí)施例,對于葉子交換機(jī)520,前兩個(gè)節(jié)點(diǎn)(節(jié)點(diǎn)a和節(jié)點(diǎn)b)的路由在圖6中示出。路由機(jī)制可以選擇根交換機(jī)525來路由朝向節(jié)點(diǎn)a的流量,并且使用節(jié)點(diǎn)a的分區(qū)鍵標(biāo)記該交換機(jī),在圖中被示為“(分區(qū)1)”。類似地,對于節(jié)點(diǎn)b,可以選擇根交換機(jī)526并且用節(jié)點(diǎn)b的分區(qū)鍵標(biāo)記根交換機(jī)526,在圖中被示為“(分區(qū)2)”。變量down也被更新,以對兩個(gè)向下鏈路中的每一個(gè)上的單個(gè)被路由的節(jié)點(diǎn)進(jìn)行計(jì)數(shù)。
根據(jù)實(shí)施例,對于節(jié)點(diǎn)c和節(jié)點(diǎn)d,可以選擇已經(jīng)用對應(yīng)的分區(qū)鍵標(biāo)記的交換機(jī),如圖7中給出的。得出的路由通過經(jīng)過根交換機(jī)525的相同鏈路流向?qū)儆诘谝环謪^(qū)的節(jié)點(diǎn)(即,節(jié)點(diǎn)a和d)。類似地,可以經(jīng)過根交換機(jī)526向下路由第二分區(qū)的節(jié)點(diǎn)(即,節(jié)點(diǎn)b和節(jié)點(diǎn)c)。路由的這種分離避免兩個(gè)分區(qū)的流量流之間的干擾。注意到,在每個(gè)鏈路上向下路由的節(jié)點(diǎn)的數(shù)量不超過max變量,這意味著路由仍然是平衡的。
最后,根據(jù)實(shí)施例,圖8示出了用于連接到葉子交換機(jī)521的端節(jié)點(diǎn)的路由。而且在這里,由于第二層級的交換機(jī)已經(jīng)根據(jù)第一葉子交換機(jī)路由用分區(qū)鍵進(jìn)行標(biāo)記,因此對應(yīng)的交換機(jī)可以被選擇以路由每個(gè)節(jié)點(diǎn)(即,節(jié)點(diǎn)e、f、g和g)。如圖中所示,最終的路由可以通過基于路由將中間網(wǎng)絡(luò)鏈路劃分成兩個(gè)相等大小的邏輯子網(wǎng)絡(luò)來隔離兩個(gè)分區(qū)。
圖9示出了根據(jù)實(shí)施例的用于支持多租戶集群環(huán)境中的分區(qū)感知路由的方法的圖示。示例性方法900可以在支持多租戶集群環(huán)境中的一個(gè)或多個(gè)租戶的步驟901處開始。在步驟902處,示例性方法可以將一個(gè)或多個(gè)租戶中的每個(gè)租戶與多個(gè)分區(qū)的一分區(qū)關(guān)聯(lián)。在步驟903處,該方法可以將多個(gè)分區(qū)中的每個(gè)分區(qū)與多個(gè)節(jié)點(diǎn)中的一個(gè)或多個(gè)節(jié)點(diǎn)關(guān)聯(lián),這多個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)與多個(gè)交換機(jī)中的一葉子交換機(jī)關(guān)聯(lián),這多個(gè)交換機(jī)包括多個(gè)葉子交換機(jī)和在其它層級處的多個(gè)交換機(jī)。最后,在步驟904處,該方法可以生成一個(gè)或多個(gè)線性轉(zhuǎn)發(fā)表,這一個(gè)或多個(gè)線性轉(zhuǎn)發(fā)表提供這多個(gè)分區(qū)之間的隔離,其中這多個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)與一分區(qū)次序關(guān)聯(lián)。
本發(fā)明的許多特征可以在硬件、軟件、固件或其組合中執(zhí)行,利用硬件、軟件、固件或其組合執(zhí)行,或者在硬件、軟件、固件或其組合的輔助下執(zhí)行。因此,本發(fā)明的特征可以利用(例如,包括一個(gè)或多個(gè)處理器的)處理系統(tǒng)來實(shí)現(xiàn)。
本發(fā)明的特征可以在計(jì)算機(jī)程序產(chǎn)品中實(shí)現(xiàn),利用計(jì)算機(jī)程序產(chǎn)品實(shí)現(xiàn),或者在計(jì)算機(jī)程序產(chǎn)品的輔助下實(shí)現(xiàn),其中計(jì)算機(jī)程序產(chǎn)品是其上/其中存儲有可用來編程處理系統(tǒng)以執(zhí)行本文所呈現(xiàn)的任何特征的指令的存儲介質(zhì)或計(jì)算機(jī)可讀介質(zhì)。存儲介質(zhì)可以包括但不限于任何類型的盤(包括軟盤、光盤、dvd、cd-rom、微驅(qū)動(dòng)器、以及磁光盤)、rom、ram、eprom、eeprom、dram、vram、閃存存儲器設(shè)備、磁卡或光卡、納米系統(tǒng)(包括分子存儲器ic)、或適于存儲指令和/或數(shù)據(jù)的任何類型的媒介或設(shè)備。
存儲在任何一種(一個(gè)或多個(gè))機(jī)器可讀介質(zhì)中,本發(fā)明的特征可以被結(jié)合到軟件和/或固件中,以用于控制處理系統(tǒng)的硬件,并且用于使處理系統(tǒng)能夠利用本發(fā)明的結(jié)果與其它機(jī)制交互。這種軟件或固件可以包括但不限于應(yīng)用代碼、設(shè)備驅(qū)動(dòng)程序、操作系統(tǒng)和執(zhí)行環(huán)境/容器。
本發(fā)明的特征也可以利用例如諸如專用集成電路(asic)的硬件部件在硬件中實(shí)現(xiàn)。實(shí)現(xiàn)硬件狀態(tài)機(jī)以便執(zhí)行本文所描述的功能對相關(guān)領(lǐng)域的技術(shù)人員將是顯然的。
此外,本發(fā)明可以方便地利用一個(gè)或多個(gè)常規(guī)的通用或?qū)S脭?shù)字計(jì)算機(jī)、計(jì)算設(shè)備、機(jī)器或微處理器來實(shí)現(xiàn),這些數(shù)字計(jì)算機(jī)、計(jì)算設(shè)備、機(jī)器或微處理器包括一個(gè)或多個(gè)處理器、存儲器和/或根據(jù)本公開的教導(dǎo)編程的計(jì)算機(jī)可讀存儲介質(zhì)。如對軟件領(lǐng)域的技術(shù)人員將清楚的,適當(dāng)?shù)能浖幋a可以容易地由熟練的程序員基于本公開的教導(dǎo)來準(zhǔn)備。
雖然以上已經(jīng)描述了本發(fā)明的各種實(shí)施例,但是應(yīng)該理解,它們已通過示例而不是限制給出。對相關(guān)領(lǐng)域的技術(shù)人員將清楚的是,在不背離本發(fā)明的精神和范圍的情況下,其中可以做出各種形式和細(xì)節(jié)上的變化。
本發(fā)明已經(jīng)借助說明指定功能及其關(guān)系的執(zhí)行的功能構(gòu)建塊進(jìn)行了描述。這些功能構(gòu)建塊的邊界在本文中通常是為了方便描述而任意定義的??梢远x可替代的邊界,只要指定的功能及其關(guān)系被適當(dāng)?shù)貓?zhí)行。任何這種可替代的邊界因此在本發(fā)明的范圍和精神之內(nèi)。
本發(fā)明的以上描述是為了說明和描述的目的而提供的。它不旨在是窮盡的或者要把本發(fā)明限定到所公開的精確形式。本發(fā)明的廣度和范圍不應(yīng)該由任何上述示例性實(shí)施例來限制。許多修改和變化對本領(lǐng)域技術(shù)人員來說將是清楚的。修改和變化包括所公開特征的任何相關(guān)組合。實(shí)施例的選擇與描述是為了最好地解釋本發(fā)明的原理及其實(shí)踐應(yīng)用,從而使本領(lǐng)域其他技術(shù)人員能夠理解用于各種實(shí)施例的本發(fā)明以及具有適于預(yù)期特定用途的各種修改的本發(fā)明。本發(fā)明的范圍旨在由以下權(quán)利要求及其等價(jià)物來定義。