的所有的端口2可以連接至交換機(jī)B 502。這樣,當(dāng)交換機(jī)之一(例如,在交換機(jī)A 501上)出現(xiàn)故障時,依然能夠通過交換機(jī)B 502傳送工程系統(tǒng)500中(在節(jié)點(diǎn)A至D511至514之間)的業(yè)務(wù),并且節(jié)點(diǎn)D 514上的防火墻(FWL)裝置可以用來檢查業(yè)務(wù)。(此外,這種方案能夠無限$_推廣到每個節(jié)點(diǎn)多個HCA的情形。)
[0055]圖6例示了根據(jù)本發(fā)明實施方式的在網(wǎng)絡(luò)環(huán)境中提供用于處理本機(jī)數(shù)據(jù)的數(shù)據(jù)服務(wù)的示例性流程圖。如圖6所示,在步驟601處,系統(tǒng)可以在網(wǎng)絡(luò)環(huán)境中的節(jié)點(diǎn)上提供數(shù)據(jù)服務(wù)部件,其中網(wǎng)絡(luò)環(huán)境包括多個經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)相互連接的節(jié)點(diǎn)。隨后,在步驟602處,系統(tǒng)可以使用本機(jī)數(shù)據(jù)包轉(zhuǎn)發(fā)機(jī)制來將網(wǎng)絡(luò)結(jié)構(gòu)中的數(shù)據(jù)流引導(dǎo)至節(jié)點(diǎn)上的所述數(shù)據(jù)服務(wù)部件。此夕卜,在步驟603處,系統(tǒng)可以使用所述數(shù)據(jù)服務(wù)部件來處理網(wǎng)絡(luò)結(jié)構(gòu)中的數(shù)據(jù)流中的一個或多個數(shù)據(jù)包。
[0056]控制數(shù)據(jù)流
[0057]圖7示出了根據(jù)本發(fā)明實施方式的網(wǎng)絡(luò)環(huán)境中的子網(wǎng)管理器(SA)的示意圖。如圖7所示,IB結(jié)構(gòu)700可以包括子網(wǎng)管理器(SA)701,其可以提供用于支持IB結(jié)構(gòu)700的各節(jié)點(diǎn)之間通信的路徑記錄解析(PR)。例如,路徑記錄,諸如按照IB協(xié)議的路徑記錄,可以包括地址信息和與IB報頭中的不同字段相關(guān)的其它信息(諸如P_Key,Q_Key,SL等)。
[0058]此外,系統(tǒng)可以提供用于使用不同的策略720配置SA 701的接口710。接口710可以是命令行接口(CLI)和/或應(yīng)用程序接口(API)。
[0059]根據(jù)本發(fā)明實施方式,策略720可以定義哪些業(yè)務(wù)可以在到達(dá)目的地節(jié)點(diǎn)之前通過數(shù)據(jù)服務(wù)節(jié)點(diǎn)(例如,防火墻),以及哪些業(yè)務(wù)可以直接轉(zhuǎn)發(fā)至目的地節(jié)點(diǎn)。此外,可以基于源和目的地全局標(biāo)識符(GID)實施策略。而且,可以基于提供應(yīng)用級劃分的服務(wù)ID實施策略。此外,可以基于IB分區(qū)實施策略。
[0060]例如,用例可以支持如下策略:要求中間件機(jī)器和集群數(shù)據(jù)庫機(jī)器之間的所有通信必須經(jīng)過防火墻節(jié)點(diǎn)。
[0061 ]此外,用例可以支持如下策略:要求使用與特定P_Key相關(guān)聯(lián)的特定IB分區(qū)。例如,特定IB分區(qū)可以單獨(dú)地用于防火墻控制的所有應(yīng)用層服務(wù)器和數(shù)據(jù)庫之間的通信。如果路徑記錄解析請求在特定IB分區(qū)的范圍內(nèi),則SA 701可以使用該策略,來指示該路徑上的所有數(shù)據(jù)包應(yīng)該通過防火墻進(jìn)行路由。
[0062]另一個用例可以支持用于涉及兩個獨(dú)立子網(wǎng)的BoW部署的策略。SM通過簡單地檢查結(jié)構(gòu)拓?fù)?,可能不會發(fā)現(xiàn)在兩個獨(dú)立子網(wǎng)的源和目的地之間的路徑。使用該策略,SM可以得知源和目的地之間存在通過特定的數(shù)據(jù)服務(wù)部件的路徑。而且,當(dāng)BoW部署涉及多個IB分區(qū)時,可以按照該策略規(guī)定用于每個分區(qū)的P_Key。
[0063]如圖7所示,SA 701可以從請求器(例如源節(jié)點(diǎn))接收PR請求711。根據(jù)策略720,SA701可以解析目的地本地地址,例如,目的地本地標(biāo)識符(DLID)。隨后,SA 701可以發(fā)送包含經(jīng)解析的目的地本地地址的PR響應(yīng)712返回至請求器。如此,源節(jié)點(diǎn)可以基于經(jīng)解析的DLID,向目的地節(jié)點(diǎn)發(fā)送數(shù)據(jù)包。
[0064]另選地,SA701可以確定源節(jié)點(diǎn)應(yīng)該在將數(shù)據(jù)包轉(zhuǎn)發(fā)至目的地節(jié)點(diǎn)之前,將數(shù)據(jù)包引導(dǎo)至中間節(jié)點(diǎn),例如,具備數(shù)據(jù)服務(wù)部件(例如軟件防火墻)的數(shù)據(jù)服務(wù)節(jié)點(diǎn)。SA 701可以向源節(jié)點(diǎn)提供用于數(shù)據(jù)服務(wù)節(jié)點(diǎn)的DLID,而不是用于目的地節(jié)點(diǎn)的DLID。此外,在數(shù)據(jù)服務(wù)部件的多個實例存在于網(wǎng)絡(luò)環(huán)境700中時,SA 701可以確定應(yīng)該使用哪個數(shù)據(jù)服務(wù)節(jié)點(diǎn)。
[0065]圖8示出了根據(jù)本發(fā)明實施方式的支持用于在網(wǎng)絡(luò)環(huán)境中提供數(shù)據(jù)服務(wù)的控制流的示意圖。如圖8所示,網(wǎng)絡(luò)環(huán)境800可以包括多個節(jié)點(diǎn),例如節(jié)點(diǎn)A 801至D 804,其使用一個或多個交換機(jī)(例如交換機(jī)810)相互連接。
[0066]交換機(jī)810可以用來引導(dǎo)網(wǎng)絡(luò)環(huán)境800中的數(shù)據(jù)流。交換機(jī)810包括子網(wǎng)管理器(SA)820,其能夠基于不同的規(guī)則或策略(例如,規(guī)則830)執(zhí)行路徑記錄解析操作。在交換機(jī)810上(或在安全節(jié)點(diǎn)上)的安全環(huán)境中運(yùn)行的SA 820能夠?qū)嵤┒喾N用于執(zhí)行地址解析任務(wù)的邏輯。
[0067]根據(jù)本發(fā)明實施方式,基于SA策略,系統(tǒng)可以利用IB數(shù)據(jù)包中的全局路由報頭(GRH),用以通過在IB子網(wǎng)內(nèi)或多個IB子網(wǎng)之間的不同路徑建立通信。(GRH初始定義在IB規(guī)范中,用于在不同IB子網(wǎng)之中建立通信。)
[0068]例如,SA 820可以使用在路徑記錄解析響應(yīng)中的字段(例如,跳限制域(HopLimit)字段),來向主機(jī)軟件棧指示:可能需要GRH用來在IB子網(wǎng)內(nèi)通過特定路徑建立通信。
[0069]如圖8所示,節(jié)點(diǎn)A 801可以宿存包含應(yīng)用服務(wù)器的應(yīng)用VM A 811。應(yīng)用VM A 811可以與全局標(biāo)識符(GID)A 821(例如,OxAAAA)和具備本地標(biāo)識符(LID)A 831 (例如,OxA)的本地端口相關(guān)聯(lián)。此外,節(jié)點(diǎn)B 802可以宿存包含應(yīng)用服務(wù)器的應(yīng)用VM B 812。應(yīng)用VM B812可以與GID B 822(例如,OxBBBB)和具備LID B 832(例如,OxB)的本地端口相關(guān)聯(lián)。此夕卜,節(jié)點(diǎn)C 803可以宿存包含應(yīng)用服務(wù)器的應(yīng)用VM C 813。應(yīng)用VM C 813可以與GID C 823(例如,OxCCCC)和具備LID C 833(例如,OxC)的本地端口相關(guān)聯(lián)。
[0070]此外,網(wǎng)絡(luò)環(huán)境800可以包括數(shù)據(jù)服務(wù)節(jié)點(diǎn)D 804,其可以宿存數(shù)據(jù)服務(wù)VM D 814。數(shù)據(jù)服務(wù)VM 814可以與GID D 824(例如,OxDDDD)和具備本地標(biāo)識符D 834(例如,OxD)的本地端口相關(guān)聯(lián)。此外,數(shù)據(jù)服務(wù)節(jié)點(diǎn)D 804除了數(shù)據(jù)服務(wù)VM 814之外,還可以宿存一個或多個應(yīng)用VM。
[0071]如圖8所示,在網(wǎng)絡(luò)環(huán)境800中的IB結(jié)構(gòu)內(nèi),包括經(jīng)傳送的數(shù)據(jù)包的數(shù)據(jù)流(如實線所示)可以基于如由交換機(jī)810提供的標(biāo)準(zhǔn)的基于LID轉(zhuǎn)發(fā)特征。此外,包括各種控制信息(如虛線所示)的控制流,可以基于如由SA 820提供的地址解析特征。
[0072]例如,一組示例性規(guī)則830可以如下表來定義:
[0073]0xAAAA-0xBBBB->0xD
[0074]0xCCCC-0xBBBB->0xB
[0075]OxDDDD(OxAAAA)-0χΒΒΒΒ_>0χΒ
[0076]如上表所示,第一規(guī)則定義,所有從具備GID OxAAAA的VM發(fā)源并以具備GIDOxBBBB的VM為目標(biāo)的數(shù)據(jù)包,都應(yīng)該用DLID OxD來傳送。第二規(guī)則定義,所有從具備GIDOxCCCC的VM發(fā)源并以具備GID OxBBBB的VM為目標(biāo)的數(shù)據(jù)包,都應(yīng)該用DLID OxB來傳送。第三規(guī)則定義,所有從具備GID OxDDDD的VM發(fā)送(從OxAAAA發(fā)源)并以具備GID OxBBBB的VM為目標(biāo)的數(shù)據(jù)包,都應(yīng)該用DLID OxB來傳送。
[0077]如圖8所示,節(jié)點(diǎn)A 801可以通過向交換機(jī)810上的SA 820發(fā)送PR請求841,來啟動到節(jié)點(diǎn)B 802的數(shù)據(jù)流。在子網(wǎng)管理器820從節(jié)點(diǎn)A 801接收到PR請求841之后,SA 820能夠根據(jù)上表中的第一規(guī)則處理PR請求841,并發(fā)送PR響應(yīng)842至節(jié)點(diǎn)A 801JR響應(yīng)842可以指示數(shù)據(jù)包需要被引導(dǎo)至數(shù)據(jù)服務(wù)節(jié)點(diǎn)D 804,該數(shù)據(jù)服務(wù)節(jié)點(diǎn)具備能使用LID OxD識別的本地端口。
[0078]隨后,源節(jié)點(diǎn)A801可以引導(dǎo)數(shù)據(jù)流851至數(shù)據(jù)服務(wù)節(jié)點(diǎn)D 804。在數(shù)據(jù)服務(wù)節(jié)點(diǎn)D804處理完所接收到的數(shù)據(jù)流851之后,數(shù)據(jù)服務(wù)節(jié)點(diǎn)D 804可以發(fā)送PR請求843至SA 820。SA 820可以繼而返回包含節(jié)點(diǎn)B 802的真實地址的PR響應(yīng)844。這樣,數(shù)據(jù)服務(wù)節(jié)點(diǎn)D 804能夠引導(dǎo)數(shù)據(jù)流852至目的地節(jié)點(diǎn)B 802。另選地,數(shù)據(jù)服務(wù)節(jié)點(diǎn)D 804可以決定丟棄接收到的數(shù)據(jù)包。
[0079]還如圖8所示,SA820可以引導(dǎo)數(shù)據(jù)流853繞過數(shù)據(jù)服務(wù)節(jié)點(diǎn)D 804,直接從節(jié)點(diǎn)C803到達(dá)節(jié)點(diǎn)B 802。在這個例子中,節(jié)點(diǎn)C 803可以首先發(fā)送PR請求845至SA 820。隨后,SA820可以在PR響應(yīng)846中返回節(jié)點(diǎn)B 802的真實地址。
[0080]根據(jù)本發(fā)明實施方式,數(shù)據(jù)服務(wù)節(jié)點(diǎn)D804可以使用其它機(jī)制來無限制地獲取目的地GID到目的地LID的映射。例如,數(shù)據(jù)流和控制流二者都可以基于LID轉(zhuǎn)發(fā)特征,或者數(shù)據(jù)流和控制流二者都可以基于如由子網(wǎng)管理器(SA)820強(qiáng)制執(zhí)行的尋址方案。
[0081]此外,當(dāng)VM是多個IB分區(qū)中的一員時,可以針對不同IB分區(qū)定義不同的轉(zhuǎn)發(fā)規(guī)則(例如,基于不同的P_Key)。這樣,某些IB分區(qū)上的業(yè)務(wù)可以被直接路由至目的地,而其它IB分區(qū)上的業(yè)務(wù)可能需要被路由至數(shù)據(jù)服務(wù)裝置。
[0082]圖9示出了根據(jù)本發(fā)明實施方式的支持用于在網(wǎng)絡(luò)環(huán)境中提供數(shù)據(jù)服務(wù)的數(shù)據(jù)流的示意圖。如圖9所示,網(wǎng)絡(luò)環(huán)境900中的節(jié)點(diǎn)A 901至B 902可以經(jīng)中間節(jié)點(diǎn)910與彼此通
?目O
[0083]與主機(jī)通道適配器(HCA)921相關(guān)聯(lián)的節(jié)點(diǎn)A901,包括宿存應(yīng)用服務(wù)器的應(yīng)用虛擬機(jī)(VM)911。此外,與主機(jī)通道適配器(HCA)922相關(guān)聯(lián)的節(jié)點(diǎn)B 902,包括宿存另一應(yīng)用服務(wù)器的應(yīng)用VM 912。
[0084]此外,與主機(jī)通道適配器(HCA)940相關(guān)聯(lián)的中間節(jié)點(diǎn)910,可以包括數(shù)據(jù)服務(wù)VM931和應(yīng)用VM 932(例如,數(shù)據(jù)服務(wù)VM 931和應(yīng)用VM 932共享同一物理機(jī))。數(shù)據(jù)服務(wù)VM 931可以宿存數(shù)據(jù)服務(wù)部件,并且應(yīng)用VM 932可以宿存應(yīng)用服務(wù)器。
[0085]為了防止節(jié)點(diǎn)A 901和節(jié)點(diǎn)B 902之間的直接通信,系統(tǒng)可以將節(jié)點(diǎn)A 901和節(jié)點(diǎn)B902二者配置為IB結(jié)構(gòu)中一個分區(qū)的受限成員,同時允許中間節(jié)點(diǎn)910成為該分區(qū)的完全成員。
[0086]如圖9所示,來自節(jié)點(diǎn)A 901的數(shù)據(jù)流可以由應(yīng)用VM 911使用發(fā)送(Tx)隊列對(QP)951來啟動。此外,基于從SA接收到的PR響應(yīng),節(jié)點(diǎn)A 901可以發(fā)送數(shù)據(jù)包至中間節(jié)點(diǎn)910上的接收(Rx)隊列對(QP)954。這樣,中間節(jié)點(diǎn)910上的數(shù)據(jù)服務(wù)VM 931可以經(jīng)Rx QP 954接收來自節(jié)點(diǎn)A 901的數(shù)據(jù)包。
[0087]隨后,數(shù)據(jù)服務(wù)VM931中的數(shù)據(jù)服務(wù)部件可以處理輸入數(shù)據(jù)流。例如,數(shù)據(jù)服務(wù)VM931可以通過檢查輸入數(shù)據(jù)流提供防火墻服務(wù),并能夠丟棄有問題的數(shù)據(jù)包。此外,數(shù)據(jù)服務(wù)VM 931可以提供其它數(shù)據(jù)服務(wù),例如嗅探(sniffing)、執(zhí)行監(jiān)視、以及負(fù)載平衡。
[0088]在完成數(shù)據(jù)處理之后,數(shù)據(jù)服務(wù)VM 931可以從Tx QP 953發(fā)送輸出數(shù)據(jù)包至節(jié)點(diǎn)B902上的Rx QP 958(例如,基于標(biāo)準(zhǔn)的基于LID交換(switching))。這樣,應(yīng)用VM 912可以接收數(shù)據(jù)流中的數(shù)據(jù)包。
[0089]此外,節(jié)點(diǎn)B 902上的應(yīng)用VM 912可以經(jīng)中間節(jié)點(diǎn)910,發(fā)送返回數(shù)據(jù)包回到節(jié)點(diǎn)A901上的應(yīng)用VM 911。如圖9所示,返回數(shù)據(jù)流可以開始于節(jié)點(diǎn)B 902上的Tx QP 957,經(jīng)中間節(jié)點(diǎn)910上的Rx QP 954和Tx QP 953,并結(jié)束于節(jié)點(diǎn)A 901上的Rx QP 952。這樣,節(jié)點(diǎn)A 901上的應(yīng)用VM 911可以從節(jié)點(diǎn)B 902接收返回數(shù)據(jù)包。
[0090]此外,位于中間節(jié)點(diǎn)910上的應(yīng)用VM 932,可以通過數(shù)據(jù)服務(wù)VM 931,發(fā)送一個或多個數(shù)據(jù)包至其它節(jié)點(diǎn)(例如,經(jīng)Tx QP 955)。另外,應(yīng)用VM 932可以從其它節(jié)點(diǎn)接收一個或多個數(shù)據(jù)包(例如,經(jīng)Rx QP 956)。此外,取決于策略配置,應(yīng)用VM 932可以繞開數(shù)據(jù)服務(wù)931,而直接發(fā)送一個或多個數(shù)據(jù)包至其它節(jié)點(diǎn)以及/或者從其它節(jié)點(diǎn)直接接收一個或多個數(shù)據(jù)包。
[0091]根據(jù)本發(fā)明實施方式,在中間節(jié)點(diǎn)910上的數(shù)據(jù)服務(wù)VM931處對數(shù)據(jù)流的處理,可以對源節(jié)點(diǎn)A 901和目的地節(jié)點(diǎn)B 902都是透明的(S卩,節(jié)點(diǎn)A 901可能實際上“認(rèn)為”其直接發(fā)送數(shù)據(jù)至節(jié)點(diǎn)B 902) ο
[0092]此外,數(shù)據(jù)服務(wù)VM931中的數(shù)據(jù)服務(wù)部件(例如,軟件防火墻)可以是分布式虛擬化的軟件裝置。網(wǎng)絡(luò)環(huán)境900中的其它節(jié)點(diǎn)可能不知道中間節(jié)點(diǎn)910和數(shù)據(jù)服務(wù)VM 931中數(shù)據(jù)服務(wù)裝置的存在。
[0093]圖10例示了根據(jù)本發(fā)明實施方式的在網(wǎng)絡(luò)環(huán)境中控制用于處理本機(jī)數(shù)據(jù)的數(shù)據(jù)流的示例性流程圖。如圖10所示,在步驟1001處,子網(wǎng)管理器(SA)可以從源節(jié)點(diǎn)接收路徑記錄解析請求,其中源節(jié)點(diǎn)使用路徑記錄解析請求來獲取目的地節(jié)點(diǎn)的地址。隨后,在步驟1002處,SA可以向源節(jié)點(diǎn)提供中間節(jié)點(diǎn)的地址,其中中間節(jié)點(diǎn)提供數(shù)據(jù)服務(wù)。此外,在步驟1003處,源節(jié)點(diǎn)可以基于中間節(jié)點(diǎn)的地址,向中間節(jié)點(diǎn)發(fā)送一個或多個數(shù)據(jù)包。
[0094]數(shù)據(jù)服務(wù)尋址
[0095]圖11示出了根據(jù)本發(fā)明實施方式的在網(wǎng)絡(luò)環(huán)境中使用無限帶寬InfiniBand(IB)尋址來訪問數(shù)據(jù)服務(wù)的數(shù)據(jù)包格式的示意圖。如圖11所示,IB子網(wǎng)1100可以包括多個物理的(或虛擬的)節(jié)點(diǎn)1101至1103和子網(wǎng)管理器(SA)1120。源節(jié)點(diǎn)1101可以經(jīng)中間節(jié)點(diǎn)1102,發(fā)送數(shù)據(jù)包(例如,IB數(shù)據(jù)包1110)至目的地節(jié)點(diǎn)1103。
[0096]IB數(shù)據(jù)包1110根據(jù)IB協(xié)議,可以包括有效負(fù)載1114和多種報頭。這些報頭可以包括全局路由報頭(GRH) 1111、本地路由報頭(LRH) 1112以及其它報頭1113。此外,IB數(shù)據(jù)包1110可以配備有各種循環(huán)冗余校驗(CRC