專利名稱:用于確定計(jì)算機(jī)網(wǎng)絡(luò)上的通信路徑的設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在計(jì)算機(jī)網(wǎng)絡(luò)上選擇最優(yōu)通信路徑。更具體地,本發(fā)明涉
及一種以操作在無限帶寬(InfiniBand)網(wǎng)絡(luò)的計(jì)算機(jī)和操作在非無限寬 帶(non-InfiniBand)網(wǎng)絡(luò)的計(jì)算機(jī)配置的計(jì)算機(jī)網(wǎng)絡(luò),以及一組協(xié)議用 以確定用于在計(jì)算機(jī)之間發(fā)送消息的最優(yōu)網(wǎng)關(guān)。
背景技術(shù):
比如系統(tǒng)總線的輸入/輸出(I/O)網(wǎng)絡(luò)^L處理器用來與比如網(wǎng)絡(luò)適配 器的外設(shè):i殳備進(jìn)4亍通信。然而,在普通I/0網(wǎng)絡(luò)架構(gòu)中的限制一一比如外 設(shè)組件接口 (PCI)總線,制約了計(jì)算機(jī)的整體性能。因此,已經(jīng)引進(jìn)了 新型的I/O網(wǎng)絡(luò)。
已知一種類型的I/0網(wǎng)絡(luò),其也被稱作無限帶寬網(wǎng)絡(luò),此后稱作IB。 無限帶寬是一種I/O架構(gòu)和用于處理器和I/O設(shè)備之間數(shù)據(jù)傳輸?shù)囊?guī)范。 與并行發(fā)送數(shù)據(jù)一一也就是在PCI中用于發(fā)送數(shù)據(jù)的結(jié)構(gòu)一一相反,IB串 行地發(fā)送數(shù)據(jù)并且能夠在復(fù)用信號中同時(shí)承載多個(gè)數(shù)據(jù)信道。IB網(wǎng)絡(luò)完全 使用零個(gè)或多個(gè)路由器取代了分組交換網(wǎng)絡(luò)中計(jì)算機(jī)現(xiàn)有的PCI或其他總 線。圖1是基于IB架構(gòu)的系統(tǒng)區(qū)域網(wǎng)絡(luò)的現(xiàn)有技術(shù)框圖(100)。該IB 網(wǎng)絡(luò)被分解為單獨(dú)的自治管理單元,其中每個(gè)都包含多個(gè)IB節(jié)點(diǎn),被叫做 子網(wǎng)。如圖所示,存在六個(gè)節(jié)點(diǎn),節(jié)點(diǎn)0 (102)、節(jié)點(diǎn)l (104)、節(jié)點(diǎn)2 (106)、節(jié)點(diǎn)3 (108)、節(jié)點(diǎn)4 (110)和節(jié)點(diǎn)5 (112),它們通過包括 三個(gè)交換機(jī)——交換機(jī)0 (122 )、交換機(jī)1 (124 )和交換機(jī)2 (126 )—— 的組織(120)被互連。每個(gè)節(jié)點(diǎn)都通過信道適配器連接到該組織(120)。 IB規(guī)范將信道適配器分為兩類,主信道適配器(HCA)和目標(biāo)信道適配器
(TCA) 。 HCA是用于將該IB結(jié)合到操作系統(tǒng)的接口。 TCA出現(xiàn)在I/0 設(shè)備上,比如RAID子系統(tǒng)。如圖l所示,節(jié)點(diǎn)2 (106)、節(jié)點(diǎn)3 (108) 和節(jié)點(diǎn)5 (112 )代表外設(shè)設(shè)備并且分別包括三個(gè)TCA (136) 、 ( 138 ) 和(142 )。同樣,節(jié)點(diǎn)0 (102 )、節(jié)點(diǎn)1 (104 )和節(jié)點(diǎn)4 (110 )代表操 作系統(tǒng)并且分別包括HCA (132) 、 (134)和(140)。此外,在這個(gè)所 示例子中,每個(gè)信道適配器可具有一個(gè)或多個(gè)端口。具有一個(gè)以上端口的 信道適配器可被連接到多個(gè)交換機(jī)端口。例如,信道適配器(140 )具有至 少兩個(gè)端口,第一端口被連接到交換機(jī)0 (122),而第二端口被連接到交 換機(jī)1(124)。因此,如圖所示,在IB架構(gòu)中可利用源和目的之間的多 條路徑,因此有益于性能和可靠性。
IB組件在初始化期間被分配以全球標(biāo)識符(GID )。該GID #皮用來在 IB子網(wǎng)內(nèi)部和IB子網(wǎng)之間唯一地識別目標(biāo)組件。路由器可被提供用來互 連兩個(gè)或更多的子網(wǎng)以形成較大的系統(tǒng)區(qū)域網(wǎng)絡(luò)。類似于IB交換機(jī),IB 路由器在它們的端口之間轉(zhuǎn)發(fā)分組。路由器和交換機(jī)之間的區(qū)別是路由器 被用來互連兩個(gè)或更多的子網(wǎng)以形成較大的多域系統(tǒng)區(qū)域網(wǎng)絡(luò)。在一個(gè)子 網(wǎng)內(nèi)部,每個(gè)端口都被分配稱做本地識別符(LID)的唯一識別符。交換 機(jī)利用這些LID以將分組從源路由到目的地,而路由器利用GID以在域 之間路由分組。
為了在該IB架構(gòu)上使一個(gè)應(yīng)用與另一個(gè)應(yīng)用通信,必須首先創(chuàng)建包括
隊(duì)列對的工作隊(duì)列,隊(duì)列對是這樣的 一對隊(duì)列---個(gè)隊(duì)列用于發(fā)送請求
而另一個(gè)隊(duì)列用于接收請求。為了4吏該應(yīng)用執(zhí)行^Mt,必須放置工作隊(duì)列 元素(WQE )在工作隊(duì)列中。之后,該操作被M以由信道適配器來執(zhí)行。 因此,工作隊(duì)列形成在應(yīng)用和信道適配器之間的媒介。
通過具有多條路徑可用于在節(jié)點(diǎn)之間發(fā)送數(shù)據(jù),該組織能夠以通信信 道的全容量來實(shí)現(xiàn)傳送速率,于是避免了可能出現(xiàn)在共享總線架構(gòu)中的堵 塞問題。
遠(yuǎn)程直接存儲器訪問(RDMA)是使用在IB中的通信技術(shù),其允許 數(shù)據(jù)從一個(gè)計(jì)算機(jī)的存儲器被發(fā)送到另一個(gè)計(jì)算機(jī)的存儲器而不需要經(jīng)過任何一個(gè)設(shè)備的CPU,也不需要大量緩沖,而且不需要調(diào)用操作系統(tǒng)內(nèi)核。 通過RDMA,數(shù)據(jù)可以被更快地傳送,因?yàn)槠洳恍枰?jīng)過CPU。盡管在 IB架構(gòu)中支持RDMA,但是并不是在所有網(wǎng)絡(luò)之間都被普遍支持RDMA。 存在這種情況,非IB網(wǎng)絡(luò)上的計(jì)算機(jī)正在與IB網(wǎng)絡(luò)上的計(jì)算機(jī)進(jìn)行通信, 并且兩個(gè)計(jì)算機(jī)之間的通信被擔(dān)保。這種通信利用IB和非IB網(wǎng)落t間的 網(wǎng)關(guān)來在兩個(gè)網(wǎng)絡(luò)之間傳送數(shù)據(jù)分組。網(wǎng)關(guān)是充當(dāng)?shù)搅硪粋€(gè)網(wǎng)絡(luò)的入口的 節(jié)點(diǎn)。已知在現(xiàn)有技術(shù)中網(wǎng)關(guān)能夠支持IB網(wǎng)絡(luò)和非IB網(wǎng)絡(luò)之間的RDMA 數(shù)據(jù)傳送。然而,可用于確定在這種情況下的數(shù)據(jù)傳送的最優(yōu)路徑的現(xiàn)有 技術(shù)解決方案非常復(fù)雜而且代價(jià)高。因此,需要與IB網(wǎng)絡(luò)進(jìn)行通信的有效 地確定最優(yōu)通信路徑的解決方案和在RDMA配置的網(wǎng)關(guān)和普通網(wǎng)關(guān)之間 的數(shù)據(jù)傳輸技術(shù),比如IPoIB。
發(fā)明內(nèi)容
本發(fā)明包括一種方法和裝置,用于在IB主機(jī)和非IB目標(biāo)計(jì)算機(jī)之間 有效地通信數(shù)據(jù)。
在本發(fā)明的一方面,提供了一種方法,用于確定在計(jì)算機(jī)網(wǎng)絡(luò)上的通 信路徑。計(jì)算機(jī)網(wǎng)絡(luò)被配置有經(jīng)過該網(wǎng)絡(luò)與非IB配置的目標(biāo)計(jì)算機(jī)進(jìn)行通 信的IB配置的主機(jī)。該網(wǎng)絡(luò)包括至少兩個(gè)單獨(dú)的網(wǎng)關(guān),其既與主機(jī)進(jìn)行通 信也與目標(biāo)計(jì)算機(jī)進(jìn)行通信。網(wǎng)關(guān)之一是IPoIB網(wǎng)關(guān),另 一個(gè)網(wǎng)關(guān)是iSER 網(wǎng)關(guān)。確定目標(biāo)計(jì)算機(jī)的地址。之后,基于所確定的目標(biāo)地址,選擇最優(yōu) 網(wǎng)關(guān)以從主機(jī)向目標(biāo)計(jì)算機(jī)傳送數(shù)據(jù)。選擇網(wǎng)關(guān)之一用于網(wǎng)絡(luò)間通信的傳 輸?shù)倪^程包括發(fā)送請求到第一和第二網(wǎng)關(guān),從所迷第一和第二網(wǎng)關(guān)接收響 應(yīng),以及基于所接收的響應(yīng)確定將使用的最優(yōu)網(wǎng)關(guān)。在網(wǎng)關(guān)的選擇之后, 如果目標(biāo)計(jì)算機(jī)和網(wǎng)關(guān)之一被配置為接受遠(yuǎn)程直接存儲器訪問協(xié)議的話, 使用遠(yuǎn)程直接存儲器訪問協(xié)議在所選擇的網(wǎng)關(guān)上聯(lián)系目標(biāo)計(jì)算機(jī)。
在本發(fā)明的另一方面,提供了一種計(jì)算機(jī)系統(tǒng),其具有經(jīng)過網(wǎng)絡(luò)與 iSCSI配置的目標(biāo)計(jì)算機(jī)進(jìn)行通信的IB配置的主計(jì)算機(jī)。被在該網(wǎng)絡(luò)中提 供至少兩個(gè)網(wǎng)關(guān),并且所述至少兩個(gè)網(wǎng)關(guān)與主處理器和目標(biāo)處理器進(jìn)行通
信。提供管理器以基于目標(biāo)計(jì)算機(jī)在網(wǎng)絡(luò)上的地址來選擇網(wǎng)關(guān)之一以從主 機(jī)向目標(biāo)計(jì)算機(jī)傳送數(shù)據(jù)。該選擇包括從主計(jì)算機(jī)發(fā)送到網(wǎng)關(guān)的請求消息, 從網(wǎng)關(guān)傳送到主計(jì)算機(jī)的響應(yīng)消息,以及基于該響應(yīng)消息對與目標(biāo)進(jìn)行通 信的最優(yōu)網(wǎng)關(guān)的確定?;谒鲰憫?yīng)消息,如果網(wǎng)關(guān)之一和該目標(biāo)計(jì)算機(jī) 都被配置為接受遠(yuǎn)程直接存儲器訪問協(xié)議的話,傳輸管理器使用遠(yuǎn)程直接 存儲器訪問協(xié)議在所選擇的網(wǎng)關(guān)上聯(lián)系目標(biāo)計(jì)算機(jī)。
在本發(fā)明的另一方面,提供了一種產(chǎn)品,其被提供有經(jīng)過網(wǎng)絡(luò)與iSCSI 配置的目標(biāo)計(jì)算機(jī)進(jìn)行通信的IB配置的主計(jì)算機(jī)。該網(wǎng)絡(luò)包括至少兩個(gè)與 主機(jī)和目標(biāo)計(jì)算機(jī)進(jìn)行通信的單獨(dú)的網(wǎng)關(guān)。網(wǎng)關(guān)之一是IPoIB網(wǎng)關(guān),而另 一個(gè)網(wǎng)關(guān)是iSER網(wǎng)關(guān)。該產(chǎn)品還包括切實(shí)的計(jì)算機(jī)可讀載體,該載體包 括計(jì)算機(jī)程序指令,該指令被配置為確定在網(wǎng)絡(luò)上的通信路徑。指令被提 供以確定目標(biāo)計(jì)算機(jī)的地址,以瓦基于所確定的地址選擇有利于在主計(jì)算 機(jī)和目標(biāo)計(jì)算機(jī)之間的通信的網(wǎng)關(guān)。這些指令包括發(fā)送請求到兩個(gè)網(wǎng)關(guān), 接收來自它們的響應(yīng),以及基于所接收的響應(yīng)確定將使用的最優(yōu)網(wǎng)關(guān)。指 令被提供以使用遠(yuǎn)程直接存儲器訪問協(xié)議在所選擇的網(wǎng)關(guān)上與目標(biāo)計(jì)算機(jī) 進(jìn)行通信,如果網(wǎng)關(guān)之一和目標(biāo)計(jì)算機(jī)被配置為接受遠(yuǎn)程直接存儲器訪問 協(xié)議的話。
在本發(fā)明的另一方面,提供了一種方法,用于確定在計(jì)算機(jī)網(wǎng)絡(luò)上的 通信路徑。計(jì)算機(jī)網(wǎng)絡(luò)被配置有經(jīng)過該網(wǎng)絡(luò)與目標(biāo)計(jì)算機(jī)進(jìn)行通信的主機(jī)。 該網(wǎng)絡(luò)包括至少兩個(gè)與主機(jī)和目標(biāo)計(jì)算機(jī)進(jìn)行通信的單獨(dú)的網(wǎng)關(guān),確定目 標(biāo)計(jì)算機(jī)的地址。之后,基于所確定的目標(biāo)地址,選擇所述網(wǎng)關(guān)之一以從 主機(jī)向目標(biāo)計(jì)算機(jī)傳送數(shù)據(jù)。選擇網(wǎng)關(guān)之一用于通信的傳輸?shù)倪^程包括發(fā) 送請求到第一和第二網(wǎng)關(guān),從所述第一和第二網(wǎng)關(guān)接收響應(yīng),以及基于所 接收的響應(yīng)確定將使用的最優(yōu)網(wǎng)關(guān)。在網(wǎng)關(guān)的選擇之后,如果網(wǎng)關(guān)之一和 目標(biāo)計(jì)算機(jī)被配置為接受遠(yuǎn)程直接存儲器訪問協(xié)議的話,使用遠(yuǎn)程直接存 儲器訪問協(xié)議在所選擇的網(wǎng)關(guān)上聯(lián)系目標(biāo)計(jì)算機(jī)。
本發(fā)明的其他特征和優(yōu)勢將從以下結(jié)合附圖對本本發(fā)明優(yōu)選實(shí)施例的 詳細(xì)描述中變得明顯。
圖1是現(xiàn)有技術(shù)IB架構(gòu)的框圖; 圖2是IB主機(jī)與非IB目標(biāo)計(jì)算機(jī)進(jìn)行通信的框圖; 圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的數(shù)據(jù)通信協(xié)議選擇的流程圖;以及 圖4是主機(jī)經(jīng)過網(wǎng)絡(luò)與目標(biāo)計(jì)算機(jī)進(jìn)行通信以及用于使主機(jī)和目標(biāo)計(jì) 算機(jī)之間的通信更方便的管理器的框圖。
具體實(shí)施方式
總覽
因特網(wǎng)SCSI (iSCSI)是用于在網(wǎng)絡(luò)上鏈接數(shù)據(jù)存儲器設(shè)備并在因特 網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上通過承載SCSI命令來傳送數(shù)據(jù)的網(wǎng)絡(luò)協(xié)議標(biāo)準(zhǔn)。在 數(shù)據(jù)通信和存儲的上下文中,iSCSI允許通過網(wǎng)關(guān)與遠(yuǎn)程處理器或I/O進(jìn) 行通信,其中該遠(yuǎn)程處理器或I/O呈現(xiàn)為本地附連的元件。然而,支持iSCSI 通信的網(wǎng)關(guān)按照慣例不會支持遠(yuǎn)程直接存儲器訪問(RDMA)通信。用于 RDMA、 iSER的iSCSI擴(kuò)展支持RDMA數(shù)據(jù)傳送。iSER網(wǎng)關(guān)是支持從 IB網(wǎng)絡(luò)到因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)的RDMA數(shù)據(jù)傳送的節(jié)點(diǎn)。支持RDMA 通信的IB網(wǎng)絡(luò)利用一個(gè)或多個(gè)網(wǎng)關(guān)來將一個(gè)IB網(wǎng)絡(luò)連接到另一個(gè)IB網(wǎng) 絡(luò),或?qū)B網(wǎng)絡(luò)連接到非IB網(wǎng)絡(luò)。IB多播工具被用作杠桿以確定在IB 主機(jī)和非IB目標(biāo)計(jì)算機(jī)之間支持RDMA通信的最優(yōu)路徑。
技術(shù)細(xì)節(jié)
iSER通過將iSCSI放在RDMA能力協(xié)議之上以提供RDMA讀和寫 服務(wù),來對iSCSI提供RDMA數(shù)據(jù)傳送能力。這種服務(wù)使得數(shù)據(jù)直接被 傳送到iSCSI I/O緩存器中而不需要中間的數(shù)據(jù)復(fù)制。圖2是IB主擬210 ) 與非IB目標(biāo)計(jì)算機(jī)(220)進(jìn)行通信的框圖(200),該非IB目標(biāo)計(jì)算機(jī) 可以是IB架構(gòu)的一部分也可以不是。如圖所示,主機(jī)(210)在IB架構(gòu)
上并且與IB交換機(jī)(232 )進(jìn)行通信,該IB交換機(jī)同時(shí)與IPoIB網(wǎng)關(guān)(234 ) 和iSER網(wǎng)關(guān)(236 )進(jìn)行通信。目標(biāo)計(jì)算機(jī)(220 )與交換機(jī)(238 )進(jìn)行 通信,該交換機(jī)同時(shí)支持與IPoIB網(wǎng)關(guān)(234)和iSER網(wǎng)關(guān)(236)的通 信。在一個(gè)實(shí)施例中,交換機(jī)(238)是以太網(wǎng)交換機(jī)。iSER網(wǎng)關(guān)(236) 支持在IB主機(jī)計(jì)算機(jī)(210 )和非IB目標(biāo)計(jì)算機(jī)(220 )之間的RDMA 通信。
圖3是圖示一個(gè)過程的流程圖,該過程用于確定最優(yōu)通信路徑以從IB 主機(jī)發(fā)送數(shù)據(jù)分組到非IB目標(biāo)計(jì)算機(jī),比如iSCSI目標(biāo)?;趫D2的示例, 在主機(jī)和目標(biāo)機(jī)之間存在兩個(gè)可用于傳送數(shù)據(jù)的網(wǎng)關(guān), 一個(gè)IB配置的網(wǎng)關(guān) (234)和一個(gè)iSER網(wǎng)關(guān)(236)。定義(302)該網(wǎng)絡(luò)中所有網(wǎng)關(guān)都4皮要 求加入的特定多播組。多播通信是支持向選擇的目的地組遞送信息的工具。 當(dāng)該過程中的網(wǎng)關(guān)被啟動后,該網(wǎng)關(guān)加入到明確定義的多播地址M( 304 ), 并且該網(wǎng)關(guān)在該IPoIB網(wǎng)絡(luò)上多播其存在(306)。在一個(gè)實(shí)施例中,在步 驟(304)的多4番過程被應(yīng)用到IPoIB網(wǎng)關(guān)以及與IB網(wǎng)絡(luò)進(jìn)行通信的非 IPoIB網(wǎng)關(guān)。該網(wǎng)關(guān)可使用不同的格式和工具來多播其存在。例如,該網(wǎng) 關(guān)可使用不涉及IPoIB的IB多播,或使用利用在下的IB層多播的IPoIB 多播。作為多播成員的每個(gè)主機(jī)和目標(biāo)計(jì)算機(jī)都一從每個(gè)網(wǎng)關(guān)(308)接收 到IPoIB多播時(shí)就在它們的高速緩沖存儲器中存儲網(wǎng)關(guān)數(shù)據(jù)。通過在高速 緩沖存儲器中存儲網(wǎng)關(guān)數(shù)據(jù),主機(jī)減輕了周期性地更新該數(shù)據(jù)。在一個(gè)實(shí) 施例中,如果網(wǎng)關(guān)和主機(jī)之間在所定義的時(shí)間段內(nèi)沒有通信或沒有一定量 的通信,那么主機(jī)可刷新高速緩沖存儲器數(shù)據(jù)。因此,用于經(jīng)過網(wǎng)絡(luò)進(jìn)4亍 數(shù)據(jù)分組通信的該過程的第 一部分要求每個(gè)網(wǎng)關(guān)都加入到多播中。
在互連計(jì)算機(jī)網(wǎng)絡(luò)中,每個(gè)主機(jī)和目標(biāo)計(jì)算機(jī)都可經(jīng)過該網(wǎng)絡(luò)發(fā)送數(shù) 據(jù)分組。發(fā)送數(shù)據(jù)分組的計(jì)算機(jī)被稱作主機(jī),而將要接收數(shù)據(jù)分組的計(jì)算 機(jī)被稱作目標(biāo)機(jī)。網(wǎng)絡(luò)中的每個(gè)主機(jī)和目標(biāo)機(jī)都具有唯一地址以識別各自 的計(jì)算機(jī)并且使得數(shù)據(jù)分組能夠被適當(dāng)?shù)匕l(fā)送到預(yù)期計(jì)算機(jī)。在數(shù)據(jù)分組
的傳輸之前,主機(jī)確定(310)目標(biāo)機(jī)的地址。在一個(gè)實(shí)施例中,主處理器 使用iSCSI名稱服務(wù)來合適地確定目標(biāo)機(jī)的地址。在步驟(310)之后,確
定該目標(biāo)地址是否位于主機(jī)的本地IPoIB子網(wǎng)上(312 )。對于步驟(312 ) 處的確定的肯定響應(yīng)使得主機(jī)能夠在本地IPoIB子網(wǎng)上聯(lián)系目標(biāo)機(jī)(314 )。 在一個(gè)實(shí)施例中,步驟(314)的通信支持在主機(jī)和目標(biāo)機(jī)之間的RDMA 通信。然而,如果對步驟(312)處的確定的響應(yīng)是否定的,那么該主機(jī)將 關(guān)于到目的機(jī)的預(yù)期傳輸?shù)男畔⑦f送到在地址M上的每個(gè)網(wǎng)關(guān)(316 ), 即該主機(jī)在地址M上多播它們的請求。由主機(jī)發(fā)送的信息可以包括對數(shù)據(jù) 的請求,以確定與目標(biāo)機(jī)通信的最優(yōu)網(wǎng)關(guān)。在步驟(316)的多播之后,接 收該多播的每個(gè)網(wǎng)關(guān)以所請求的數(shù)據(jù)響應(yīng)該主機(jī)(318)。該響應(yīng)數(shù)據(jù)被該 主機(jī)使用來確定最優(yōu)通信路徑和通信格式。例如,必須確定接收主機(jī)傳輸 的哪個(gè)網(wǎng)關(guān)可以到達(dá)預(yù)期目標(biāo)機(jī)。如果所響應(yīng)的網(wǎng)關(guān)不能到達(dá)目標(biāo)機(jī),那 么它就不應(yīng)是被選擇用于通信傳輸?shù)木W(wǎng)關(guān)。在一個(gè)實(shí)施例中,該數(shù)據(jù)請求 包括網(wǎng)關(guān)配置數(shù)據(jù),并且不需要單獨(dú)的數(shù)據(jù)請求。如圖2所示,該網(wǎng)關(guān)可 以是IPoIB網(wǎng)關(guān)、iSER網(wǎng)關(guān)等。網(wǎng)關(guān)配置數(shù)據(jù)作為響應(yīng)數(shù)據(jù)的一部分被返 回到進(jìn)行請求的主機(jī)。所選擇的網(wǎng)關(guān)類型將協(xié)助確定該網(wǎng)關(guān)是否支持 RDMA傳輸。然而,即使該網(wǎng)關(guān)支持RDMA傳輸,也必須確定是否支持 從該網(wǎng)關(guān)到目標(biāo)機(jī)的RDMA傳輸。多播請求中的其他因素包括接收網(wǎng)關(guān) 的地址、每個(gè)網(wǎng)關(guān)的帶寬、從主機(jī)到目標(biāo)機(jī)的跳數(shù),等等。 一接收到來自 多播中的每個(gè)網(wǎng)關(guān)的多播響應(yīng),主機(jī)就等待指定的時(shí)間段以接收全部響應(yīng) (320)?;趶亩嗖ブ械木W(wǎng)關(guān)所接收的響應(yīng),該主機(jī)確定選擇哪個(gè)網(wǎng)關(guān)用 于到目標(biāo)機(jī)的最優(yōu)數(shù)據(jù)傳送(322 ),并使用所選擇的協(xié)議通過所選擇的網(wǎng) 關(guān)聯(lián)系目標(biāo)機(jī)(324)。在一個(gè)實(shí)施例中,相對于iSCSI,該主才幾可優(yōu)選地 通過RDMA與目標(biāo)機(jī)進(jìn)行通信,如果存在通過多播上的網(wǎng)關(guān)之一的RDMA 支持并且該目標(biāo)機(jī)支持RDMA的話。
在一個(gè)實(shí)施例中,本發(fā)明以軟件方式實(shí)施,其包括但不局限于固件、 常駐軟件、微碼等。本發(fā)明可采用從計(jì)算機(jī)可使用的或計(jì)算機(jī)可讀的介質(zhì) 來訪問的計(jì)算機(jī)程序產(chǎn)品的形式,該介質(zhì)提供被計(jì)算機(jī)或任何指令執(zhí)行系 統(tǒng)使用的或相關(guān)聯(lián)的程序代碼。為了描述的目的,計(jì)算機(jī)可使用的或計(jì)算 機(jī)可讀的介質(zhì)可以是能夠包含、存儲、通信、傳播或傳輸該程序以用于由指令執(zhí)行系統(tǒng)、裝置或設(shè)備來使用或與其相關(guān)聯(lián)的任何裝置。
圖4是i兌明計(jì)算機(jī)系統(tǒng)中通信選擇工具的配置的框圖(400)。該圖示 示出了具有處理器(404)、存儲器(406)以及與網(wǎng)絡(luò)通信的信道適配器 (408)的主計(jì)算機(jī)(402)。如圖2所示,主計(jì)算機(jī)經(jīng)由網(wǎng)絡(luò)通過交換機(jī) (410)進(jìn)行通信。主計(jì)算機(jī)支持通過網(wǎng)關(guān)的網(wǎng)絡(luò)間通信。在一個(gè)實(shí)施例中, 交換機(jī)(410)與兩個(gè)網(wǎng)關(guān)(420)和(430)通信。管理器(412)被示為 處于主計(jì)算機(jī)(402)的存儲器(406)中。管理器(412)可利用計(jì)算機(jī)可 讀介質(zhì)中的指令來選擇最優(yōu)網(wǎng)關(guān),以將數(shù)據(jù)從主機(jī)(402)傳送到與網(wǎng)關(guān) (420 ) 、 ( 430 )之一進(jìn)行通信的目標(biāo)計(jì)算機(jī)(未示出)。在一個(gè)實(shí)施例 中,管理器(412 )發(fā)送請求到與主計(jì)算機(jī)(402 )和目標(biāo)計(jì)算機(jī)(未示出) 通信的至少兩個(gè)網(wǎng)關(guān)(420)和(430),并且基于從網(wǎng)關(guān)(420)和(430) 接收的響應(yīng),管理器(412)確定發(fā)送通信內(nèi)容的最優(yōu)網(wǎng)關(guān)。如果目標(biāo)計(jì)算 機(jī)和至少一個(gè)網(wǎng)關(guān)被配置為接受RDMA協(xié)議,那么管理器(412)將發(fā)出 指令,以致使經(jīng)由使用RDMA的所選網(wǎng)關(guān)來從主機(jī)向目標(biāo)計(jì)算機(jī)通信。 在一個(gè)實(shí)施例中,管理器(412)可作為存儲器(406)外部的硬件工具。 因此,管理器(412)可作為軟件工具或硬件工具來實(shí)施,以實(shí)現(xiàn)在位于 IB網(wǎng)絡(luò)中的計(jì)算機(jī)和位于IB網(wǎng)絡(luò)外部的計(jì)算機(jī)之間的通信。
在本發(fā)明范圍內(nèi)的實(shí)施例還包括制造的產(chǎn)品,包括具有編碼在其中的 程序代碼的程序存儲裝置。這種程序存儲裝置可以是可由通用或?qū)S糜?jì)算 機(jī)訪問的任何可用介質(zhì)。通過舉例而不是限定的方式,這種程序存儲裝置 可包括RAM、 ROM、 EEPROM、 CD-ROM或其他光盤存儲器、磁盤存 儲器或其他磁存^i殳備,或可被用于存儲預(yù)期程序代碼單元和可由通用或 專用計(jì)算機(jī)訪問的任何其他介質(zhì)。以上的組合也應(yīng)當(dāng)被包括在程序存儲裝 置的范圍內(nèi)。
介質(zhì)可以是電的、磁的、光學(xué)的、電磁的、紅外的或半導(dǎo)體系統(tǒng)(或 裝置或設(shè)備)或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲 器、磁帶、可拆卸計(jì)算M盤、隨機(jī)存儲器(RAM)、只讀存儲器(ROM)、 剛性磁盤和光盤。當(dāng)前光盤的例子包括只讀型光盤(CD-ROM)、讀/寫型
光盤(CD-R/W)和DVD。
適用于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)包括通過系統(tǒng)總線直
接或間接連接到存儲器單元的至少一個(gè)處理器。存儲器單元可包括在程序
代碼的實(shí)際執(zhí)行期間利用的本地存儲器、海量存儲器、緩沖存儲器,其提 供至少 一些程序代碼的臨時(shí)存儲從而減小在執(zhí)行期間必須從海量存儲器中
獲得的代碼次數(shù).
輸^/輸出或I/0設(shè)備(包括但是不限于鍵盤、顯示器、點(diǎn)擊設(shè)備等) 可直接或通過中間1/0控制器連接到系統(tǒng)。網(wǎng)絡(luò)適配器還可耦合到系統(tǒng), 以使得數(shù)據(jù)處理系統(tǒng)能夠通過中間私有或公共網(wǎng)絡(luò)連接到其他數(shù)據(jù)處理系 統(tǒng)或遠(yuǎn)程打印機(jī)或存儲設(shè)備。
軟件實(shí)施方式可采用從計(jì)算機(jī)可用的或計(jì)算機(jī)可讀的介質(zhì)可訪問的計(jì) 算機(jī)程序產(chǎn)品的形式,該介質(zhì)提供被計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用的或 與相關(guān)聯(lián)的程序代碼。
相對于現(xiàn)有技術(shù)的優(yōu)點(diǎn)
每個(gè)網(wǎng)關(guān)在啟動時(shí)以指定地址在網(wǎng)絡(luò)中多播它們的存在,并且響應(yīng)來 自主機(jī)的用以確定到目標(biāo)處理器的最優(yōu)傳輸協(xié)議的查詢。與網(wǎng)關(guān)多播通信 的每個(gè)主機(jī)維持對網(wǎng)關(guān)啟動信息的以及對網(wǎng)絡(luò)中每個(gè)網(wǎng)關(guān)的查詢響應(yīng)數(shù)據(jù) 的高速緩沖存儲器。這允許所有主機(jī)處理器減少在網(wǎng)絡(luò)上傳輸?shù)臄?shù)量。
可替換實(shí)施例
可以理解的是,盡管本發(fā)明在此為了說明的目的已經(jīng)描述了特定實(shí)施 例,但是在不脫離本發(fā)明精神和范圍的情況下可做出各種修改。特別地, 如果網(wǎng)絡(luò)中的所有網(wǎng)關(guān)都支持IPoIB,那么可以將IPoIB "廣播GID"用 作多播地址。反之,本發(fā)明不應(yīng)當(dāng)被限定于IPoIB和相關(guān)協(xié)議。例如,在 一個(gè)實(shí)施例中,因特網(wǎng)協(xié)議多播可被使用因特網(wǎng)協(xié)議代理進(jìn)程或代理的網(wǎng) 關(guān)使用。
盡管在此所示的實(shí)施例是在具有從主處理器到目標(biāo)處理器的一條或兩
條路徑的IB網(wǎng)絡(luò)的環(huán)境中描述的,實(shí)施例還可被應(yīng)用到具有從主處理器到 目標(biāo)處理器的多條路徑的存儲區(qū)域網(wǎng)絡(luò)。類似的,盡管以上描述說明了與 單個(gè)目標(biāo)計(jì)算機(jī)通信的單個(gè)主機(jī),但是本發(fā)明不應(yīng)當(dāng)現(xiàn)至于單通信。在一 個(gè)實(shí)施例中,在網(wǎng)絡(luò)上可以有多個(gè)主機(jī)與任意數(shù)量的目標(biāo)計(jì)算機(jī)通信。因 此,本發(fā)明的保護(hù)范圍僅由以下權(quán)利要求及其等同方式限定。
權(quán)利要求
1.一種用于確定在計(jì)算機(jī)網(wǎng)絡(luò)上的通信路徑的方法,包括用IB配置的主計(jì)算機(jī)來配置計(jì)算機(jī)網(wǎng)絡(luò),所述IB配置的主計(jì)算機(jī)經(jīng)過所述網(wǎng)絡(luò)與非IB配置的目標(biāo)計(jì)算機(jī)進(jìn)行通信;將與所述主計(jì)算機(jī)和目標(biāo)計(jì)算機(jī)通信的至少兩個(gè)單獨(dú)網(wǎng)關(guān)提供給所述網(wǎng)絡(luò),所述網(wǎng)關(guān)的第一個(gè)是IPoIB網(wǎng)關(guān)以及所述網(wǎng)關(guān)的第二個(gè)是iSER網(wǎng)關(guān);確定所述目標(biāo)計(jì)算機(jī)的地址;基于所述確定的所述目標(biāo)計(jì)算機(jī)的地址,選擇所述網(wǎng)關(guān)之一以從所述主計(jì)算機(jī)向所述目標(biāo)計(jì)算機(jī)傳送數(shù)據(jù),其中包括發(fā)送請求到所述第一和第二網(wǎng)關(guān),從所述網(wǎng)關(guān)接收響應(yīng),并且基于所述接收的響應(yīng)來確定要使用的最優(yōu)通信協(xié)議;以及如果所述網(wǎng)關(guān)之一和所述目標(biāo)計(jì)算機(jī)被配置為接受直接存儲器訪問協(xié)議,那么通過所述選擇的網(wǎng)關(guān)使用所述遠(yuǎn)程直接存儲器訪問協(xié)議來聯(lián)系所述目標(biāo)計(jì)算機(jī)。
2. 如權(quán)利要求l所述的方法,進(jìn)一步包括如果所述目標(biāo)計(jì)算機(jī)的所 述地址在本地IPoIB子網(wǎng)上,則通過所述本地IPoIB子網(wǎng)聯(lián)系所述目標(biāo)計(jì)算機(jī)。
3. 如權(quán)利要求l所述的方法,進(jìn)一步包括所述第一和第二網(wǎng)關(guān)啟動 時(shí)在與所述主計(jì)算機(jī)通信的所述網(wǎng)絡(luò)上多播它們的存在,其中所述多播是 從包括以下的組中選擇無IPoIB的IB多播,和IPoIB多播。
4. 如權(quán)利要求3所述的方法,其中所述網(wǎng)關(guān)啟動時(shí)多播它們的存在的 步驟使得所述主計(jì)算機(jī)能夠在主高速緩沖存儲器中存儲網(wǎng)關(guān)。
5. 如權(quán)利要求l所述的方法,其中所述網(wǎng)關(guān)響應(yīng)包括從包括以下各項(xiàng) 的組中選擇的數(shù)據(jù)所述網(wǎng)關(guān)是否可達(dá)到所述目標(biāo)、網(wǎng)關(guān)類型、到所述目 標(biāo)的RDMA支持、到所述目標(biāo)的跳數(shù)、到所述目標(biāo)的帶寬、所述網(wǎng)關(guān)的 端口的IP地址以及其組合。
6. 如權(quán)利要求l所迷的方法,進(jìn)一步包括如果網(wǎng)關(guān)被配置為拒絕所 述遠(yuǎn)程直接存儲器訪問協(xié)議,那么通過所述選擇的網(wǎng)關(guān)使用iSCSI來聯(lián)系 所述目標(biāo)計(jì)算機(jī)。
7. —種計(jì)算機(jī)系統(tǒng),包括IB配置的主計(jì)算機(jī),其經(jīng)過網(wǎng)絡(luò)與iSCSI配置的目標(biāo)計(jì)算機(jī)進(jìn)行通信; 至少兩個(gè)網(wǎng)關(guān),其與所述主計(jì)算機(jī)和目標(biāo)計(jì)算機(jī)進(jìn)行通信; 管理器,其基于所述目標(biāo)計(jì)算機(jī)在所述網(wǎng)絡(luò)上的地址來選擇所述網(wǎng)關(guān) 之一以從所述主計(jì)算機(jī)向所述目標(biāo)計(jì)算機(jī)傳送數(shù)據(jù),其中所述選擇包括從 所述主計(jì)算機(jī)發(fā)送到所述網(wǎng)關(guān)的請求消息,從所述網(wǎng)關(guān)傳送到所述主計(jì)算 機(jī)的響應(yīng)消息,以瓦基于所述響應(yīng)消息對與所述目標(biāo)計(jì)算機(jī)進(jìn)行通信所用 的最優(yōu)網(wǎng)關(guān)和通信協(xié)議的確定,以及傳輸管理器,如果所述網(wǎng)關(guān)之一和所述目標(biāo)計(jì)算機(jī)都被配置為接受遠(yuǎn) 程直接存儲器訪問協(xié)議,則所述傳輸管理器使用所述遠(yuǎn)程直接存儲器訪問 協(xié)議通過所述選擇的網(wǎng)關(guān)聯(lián)系所述目標(biāo)計(jì)算機(jī)。
8. 如權(quán)利要求7所述的系統(tǒng),進(jìn)一步包括如果所述目標(biāo)計(jì)算機(jī)的所 述地址在所述本地IPoIB子網(wǎng)上,則所述傳輸管理器通過本地IPoIB子網(wǎng) 聯(lián)系所述目標(biāo)計(jì)算機(jī)。
9. 如權(quán)利要求7所述的系統(tǒng),進(jìn)一步包括由所述主計(jì)算機(jī)的所述網(wǎng)關(guān) 在啟動時(shí)發(fā)送的多播消息以在所述網(wǎng)絡(luò)上廣播所述網(wǎng)關(guān)的存在,其中所述 多播從包括以下的組中選擇無IPoIB的IB多播,以及IPoIB多播。
10. 如權(quán)利要求9所述的系統(tǒng),進(jìn)一步包括主機(jī)高速緩沖存儲器,其 用于存儲所述多播消息。
11. 如權(quán)利要求7所述的系統(tǒng),其中所述網(wǎng)關(guān)響應(yīng)包括從包括以下的 組中選擇的數(shù)據(jù)所述網(wǎng)關(guān)是否可達(dá)到所述目標(biāo)、網(wǎng)關(guān)類型、到所述目標(biāo) 的RDMA支持、到所述目標(biāo)的跳數(shù)、到所述目標(biāo)的帶寬、所述網(wǎng)關(guān)的端 口的IP地址以及其組合。
12. 如權(quán)利要求7所述的系統(tǒng),進(jìn)一步包括如果網(wǎng)關(guān)被配置為拒絕所 述遠(yuǎn)程直接存儲器訪問協(xié)議,那么所述傳輸管理器通過所述選擇的網(wǎng)關(guān)使用iSCSI來聯(lián)系所述目標(biāo)計(jì)算機(jī)。
13. —種用于確定計(jì)算機(jī)網(wǎng)絡(luò)上通信路徑的i殳備,其中 所述計(jì)算機(jī)網(wǎng)絡(luò)包括經(jīng)過所述網(wǎng)絡(luò)與iSCSI配置的目標(biāo)計(jì)算機(jī)進(jìn)行通信的IB配置的主計(jì)算機(jī),所述網(wǎng)絡(luò)具有與所述主計(jì)算機(jī)和目標(biāo)計(jì)算機(jī)通信 的至少兩個(gè)單獨(dú)網(wǎng)關(guān),所述網(wǎng)關(guān)的第一個(gè)是IPoIB網(wǎng)關(guān)而所述網(wǎng)關(guān)的第二 個(gè)是iSER網(wǎng)關(guān);其中用于確定所述網(wǎng)絡(luò)上的通信路徑的設(shè)備包括用于確定所述目標(biāo)計(jì)算機(jī)的地址的裝置;用于基于所述確定的所述目標(biāo)的地址選擇從所述主計(jì)算機(jī)向所述目標(biāo) 計(jì)算機(jī)傳送數(shù)據(jù)的最優(yōu)網(wǎng)關(guān)的裝置,所述選擇包括發(fā)送請求到所述第一 和第二網(wǎng)關(guān),從所述網(wǎng)關(guān)接收響應(yīng),并且基于所述接收的響應(yīng)來確定最優(yōu) 通信網(wǎng)關(guān);以及用于如果所述網(wǎng)關(guān)之一和所述目標(biāo)計(jì)算機(jī)被配置為接受所述直接存儲 器訪問協(xié)議,那么通過所述選擇的網(wǎng)關(guān)使用遠(yuǎn)程直接存儲器訪問協(xié)議來聯(lián) 系所述目標(biāo)計(jì)算機(jī)的裝置。
14. 如權(quán)利要求13所述的設(shè)備,進(jìn)一步包括用于如果所述目標(biāo)計(jì)算機(jī) 的所述地址在所述本地IPoIB子網(wǎng)上則通過本地IPoIB子網(wǎng)聯(lián)系所迷目標(biāo) 計(jì)算機(jī)的裝置。
15. 如權(quán)利要求13所述的設(shè)備,進(jìn)一步包括所述第一和第二網(wǎng)關(guān)具 有用于當(dāng)啟動時(shí)在與所述主計(jì)算機(jī)通信的所述網(wǎng)絡(luò)上多播它們的存在的裝 置,其中所述多播從包括以下的組中選擇無IpoIB的IB多播以及IPoIB 多播。
16. 如權(quán)利要求15所述的設(shè)備,其中用于所述網(wǎng)關(guān)啟動時(shí)多播它們的 存在的裝置使得所述主計(jì)算機(jī)在主高速緩沖存儲器中存儲網(wǎng)關(guān),
17. 如權(quán)利要求13所迷的設(shè)備,其中所述網(wǎng)關(guān)響應(yīng)包括從包括以下的 組中選擇的數(shù)據(jù)所述網(wǎng)關(guān)是否可達(dá)到所述目標(biāo)、網(wǎng)關(guān)類型、到所述目標(biāo) 的RDMA支持、到所述目標(biāo)的跳數(shù)、到所述目標(biāo)的帶寬、所述網(wǎng)關(guān)的端 口的IP地址以及其組合。
18. 如權(quán)利要求13所述的設(shè)備,進(jìn)一步包括用于如果網(wǎng)關(guān)被配置為拒 絕所述遠(yuǎn)程直接存儲器訪問協(xié)議,那么通過所述選擇的網(wǎng)關(guān)使用iSCSI來 聯(lián)系所述目標(biāo)計(jì)算機(jī)的裝置。
19. 一種用于確定在計(jì)算機(jī)網(wǎng)絡(luò)上的通信路徑的方法,包括 用經(jīng)過所述網(wǎng)絡(luò)與目標(biāo)計(jì)算機(jī)通信的主計(jì)算機(jī)配置計(jì)算機(jī)網(wǎng)絡(luò); 將與所述主計(jì)算機(jī)和目標(biāo)計(jì)算機(jī)通信的至少兩個(gè)單獨(dú)網(wǎng)關(guān)提供給所述網(wǎng)絡(luò);確定所述目標(biāo)計(jì)算機(jī)的地址;基于所述確定的所述目標(biāo)的地址,選擇所述網(wǎng)關(guān)之一以從所述主計(jì)算 機(jī)向所述目標(biāo)計(jì)算機(jī)傳送數(shù)據(jù),其中包括發(fā)送請求到所述笫一和第二網(wǎng) 關(guān),從所述網(wǎng)關(guān)接收響應(yīng),并且基于所述接收的響應(yīng)來確定最優(yōu)通信協(xié)議; 以及如果所述網(wǎng)關(guān)之一和所述目標(biāo)計(jì)算機(jī)被配置為接受所述直接存儲器訪 問協(xié)議,那么通過所述選擇的網(wǎng)關(guān)使用遠(yuǎn)程直接存儲器訪問協(xié)議來聯(lián)系所 述目標(biāo)計(jì)算機(jī)。
全文摘要
提供一種用于確定計(jì)算機(jī)網(wǎng)絡(luò)上的通信路徑的設(shè)備和方法,所述設(shè)備和方法用于在IB計(jì)算機(jī)和非IB計(jì)算機(jī)之間選擇最優(yōu)通信路徑。加入網(wǎng)絡(luò)的所有網(wǎng)關(guān)在網(wǎng)絡(luò)上多播它們的存在。與多播傳輸相關(guān)的數(shù)據(jù)由被該網(wǎng)絡(luò)中每個(gè)單元保留在相關(guān)聯(lián)的高速緩沖存儲器中。所保留的多播數(shù)據(jù)被用作杠桿來選擇在主計(jì)算機(jī)和目標(biāo)計(jì)算機(jī)之間的最優(yōu)傳輸協(xié)議,以及被配置為支持所選傳輸協(xié)議的網(wǎng)關(guān)。
文檔編號H04L12/56GK101207569SQ20071016941
公開日2008年6月25日 申請日期2007年11月13日 優(yōu)先權(quán)日2006年12月20日
發(fā)明者V·卡施雅普 申請人:國際商業(yè)機(jī)器公司