摘 要: 為了使InfiniBand(簡(jiǎn)稱IB)網(wǎng)絡(luò)和萬(wàn)兆以太網(wǎng)這兩種高速互連網(wǎng)絡(luò)相互融合,實(shí)現(xiàn)它們之間的數(shù)據(jù)通信,本文對(duì)10GE-InfiniBand網(wǎng)關(guān)進(jìn)行了研究設(shè)計(jì),采用Ethernet-over-InfiniBand(EoIB)協(xié)議并結(jié)合管道網(wǎng)關(guān)的設(shè)計(jì)思想,將萬(wàn)兆以太網(wǎng)的數(shù)據(jù)幀封裝成IB數(shù)據(jù)報(bào)文以達(dá)到在IB網(wǎng)絡(luò)中傳輸以太網(wǎng)數(shù)據(jù)幀的目的,實(shí)現(xiàn)兩種網(wǎng)絡(luò)之間的無(wú)縫融合。
關(guān)鍵詞: InfiniBand;萬(wàn)兆以太網(wǎng);網(wǎng)關(guān);Ethernet-over-InfiniBand
0 引言
IB(InfiniBand)網(wǎng)絡(luò)由于其低延遲、高帶寬以及低處理開(kāi)銷的特點(diǎn)得到越來(lái)越多的認(rèn)可,采用IB技術(shù)進(jìn)行互連的高性能計(jì)算系統(tǒng)所占的比例逐年上升。萬(wàn)兆以太網(wǎng)比千兆以太網(wǎng)具有更大的帶寬和更快的數(shù)據(jù)傳輸速度。隨著高速傳輸技術(shù)得到越來(lái)越廣泛的應(yīng)用,人們開(kāi)始考慮將這兩種高速互連網(wǎng)絡(luò)融合在一起,結(jié)合它們的優(yōu)點(diǎn)設(shè)計(jì)一個(gè)性能優(yōu)越的I/O網(wǎng)絡(luò)系統(tǒng)。但是由于異構(gòu)網(wǎng)絡(luò)運(yùn)行在不同的協(xié)議之上,數(shù)據(jù)格式不同,不能直接進(jìn)行傳輸,因此如何完成數(shù)據(jù)交換就成為無(wú)法回避的問(wèn)題。本文針對(duì)IB網(wǎng)絡(luò)和萬(wàn)兆以太網(wǎng)的數(shù)據(jù)格式的特點(diǎn),對(duì)10GE-InfiniBand網(wǎng)關(guān)平臺(tái)進(jìn)行了研究和設(shè)計(jì),使IB網(wǎng)絡(luò)數(shù)據(jù)報(bào)文和萬(wàn)兆以太網(wǎng)的數(shù)據(jù)幀可以相互轉(zhuǎn)換,從而將兩種網(wǎng)絡(luò)結(jié)合起來(lái)。
1 萬(wàn)兆以太網(wǎng)和IB網(wǎng)絡(luò)簡(jiǎn)介
1.1 IB網(wǎng)絡(luò)
IB規(guī)范定義了用于服務(wù)器、儲(chǔ)存設(shè)備和嵌入式系統(tǒng)互連的輸入/輸出架構(gòu),具有高帶寬、低時(shí)延的特點(diǎn),廣泛應(yīng)用于數(shù)據(jù)中心、高性能計(jì)算集群以及不同規(guī)模的嵌入式應(yīng)用中,目前已經(jīng)成為主流的高速互連網(wǎng)絡(luò)技術(shù)[1]。圖1是IB網(wǎng)絡(luò)的體系架構(gòu)。
由圖1可知,IB網(wǎng)絡(luò)的體系架構(gòu)主要由交換機(jī)(Switch)、主機(jī)信道適配器(Host Channel Adapters,HCA)、目標(biāo)信道適配器(Target Channel Adapters,TCA)和路由器(Router)構(gòu)成,這些設(shè)備一起完成系統(tǒng)通信的功能[2]。
?。?)HCA和TCA可以提供一個(gè)端到端的可靠連接。
?。?)交換機(jī)是將數(shù)據(jù)包從一個(gè)鏈路轉(zhuǎn)發(fā)到同一個(gè)子網(wǎng)的另一個(gè)鏈路中的設(shè)備。
(3)路由器用于連接IB子網(wǎng),在子網(wǎng)間傳輸數(shù)據(jù)包。
1.2 萬(wàn)兆以太網(wǎng)
萬(wàn)兆以太網(wǎng)是最新的以太網(wǎng)技術(shù),可以提供高達(dá)10 Gbit/s的傳輸速度,傳輸距離增大到40 km,適用范圍大大拓寬。它基本繼承了原有的以太網(wǎng)模型,保留了802.3的以太網(wǎng)幀結(jié)構(gòu)。不同于以往的以太網(wǎng)標(biāo)準(zhǔn),萬(wàn)兆以太網(wǎng)僅僅定義了點(diǎn)到點(diǎn)的全雙工鏈路,并且沒(méi)有前幾代以太網(wǎng)標(biāo)準(zhǔn)中的帶有沖突檢測(cè)的載波偵聽(tīng)多路訪問(wèn)協(xié)議(CSMA/CD)機(jī)制[3]。
雖然萬(wàn)兆以太網(wǎng)是最新的以太網(wǎng)技術(shù),具有最快的以太網(wǎng)速度,延遲也比較低,但是并不能滿足網(wǎng)格計(jì)算和集群系統(tǒng)對(duì)延遲的要求。IB網(wǎng)絡(luò)低延遲和高帶寬的優(yōu)勢(shì)使其廣泛應(yīng)用于高速系統(tǒng)互連領(lǐng)域[4]。
2 EoIB的實(shí)現(xiàn)原理
該網(wǎng)關(guān)平臺(tái)采用了管道的設(shè)計(jì)思想。管道是異構(gòu)網(wǎng)絡(luò)融合中的一種常用技術(shù)。一種網(wǎng)絡(luò)的數(shù)據(jù)包要在另一種網(wǎng)絡(luò)上傳輸,需要將該數(shù)據(jù)包封裝到可以被另一種網(wǎng)絡(luò)設(shè)備所能理解的數(shù)據(jù)包中,傳輸?shù)浇邮斩撕?,主機(jī)進(jìn)行解封裝,將數(shù)據(jù)分組恢復(fù)成原來(lái)的格式。在Ethernet-over-InfiniBand(EoIB)的網(wǎng)關(guān)設(shè)計(jì)中,由于IB網(wǎng)絡(luò)無(wú)法識(shí)別萬(wàn)兆以太網(wǎng)的數(shù)據(jù)格式,根據(jù)管道網(wǎng)關(guān)的設(shè)計(jì)思想,為了實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)包在IB網(wǎng)絡(luò)上傳輸,應(yīng)先將以太網(wǎng)幀封裝成IB數(shù)據(jù)報(bào)文,以IB報(bào)文的形式在IB網(wǎng)絡(luò)中傳輸,在接收端將IB報(bào)文恢復(fù)成以太網(wǎng)數(shù)據(jù)幀,從而高效地將萬(wàn)兆以太網(wǎng)的數(shù)據(jù)包和IB的數(shù)據(jù)包進(jìn)行相互轉(zhuǎn)換,實(shí)現(xiàn)網(wǎng)絡(luò)融合。
EoIB協(xié)議是虛擬協(xié)議互連(Virtual Protocol Interconnect,VPI)技術(shù)的一部分,VPI技術(shù)可以實(shí)現(xiàn)以太網(wǎng)網(wǎng)絡(luò)、IB網(wǎng)絡(luò)、光纖通道(Fiber Channel,F(xiàn)C)網(wǎng)絡(luò)的融合,使得在單一網(wǎng)絡(luò)上運(yùn)行多種協(xié)議成為可能。EoIB協(xié)議的實(shí)現(xiàn)原理是:為了在IB鏈路上傳輸以太網(wǎng)數(shù)據(jù)幀,需要在IB網(wǎng)絡(luò)的端口將IB網(wǎng)卡虛擬成萬(wàn)兆以太網(wǎng)卡,將整個(gè)以太網(wǎng)二層數(shù)據(jù)包和有效負(fù)載封裝到IB數(shù)據(jù)包中,這樣就繞過(guò)了TCP/IP協(xié)議,利用IB的高帶寬優(yōu)勢(shì)在IB的網(wǎng)卡上運(yùn)行標(biāo)準(zhǔn)的以太網(wǎng)協(xié)議[5]。
根據(jù)EoIB協(xié)議設(shè)計(jì)的EoIB網(wǎng)關(guān)在IB網(wǎng)絡(luò)和萬(wàn)兆以太網(wǎng)之間搭建起一座橋梁,實(shí)現(xiàn)了這兩種異構(gòu)網(wǎng)絡(luò)之間的數(shù)據(jù)交換。如圖2所示。
2.1 EoIB局域網(wǎng)模型
EoIB局域網(wǎng)模型如圖3所示。
此局域網(wǎng)中包含兩種異構(gòu)網(wǎng)絡(luò):IB網(wǎng)絡(luò)和萬(wàn)兆以太網(wǎng)[6]。為了實(shí)現(xiàn)這兩種格式的數(shù)據(jù)分組之間的交換,需要兩個(gè)主要組件。
?。?)EoIB網(wǎng)關(guān)。EoIB網(wǎng)關(guān)的主要作用是完成數(shù)據(jù)包在異構(gòu)網(wǎng)絡(luò)之間的轉(zhuǎn)發(fā),實(shí)現(xiàn)不同協(xié)議之間的交互通信,管理控制整個(gè)EoIB體系結(jié)構(gòu)。EoIB網(wǎng)關(guān)分別連接著IB網(wǎng)絡(luò)和萬(wàn)兆以太網(wǎng),因此網(wǎng)關(guān)有兩種端口:連接IB網(wǎng)絡(luò)的IB端口以及連接萬(wàn)兆以太網(wǎng)的以太網(wǎng)端口。EoIB網(wǎng)關(guān)將從以太網(wǎng)端口到達(dá)的以太網(wǎng)數(shù)據(jù)幀封裝成IB數(shù)據(jù)報(bào)文,而對(duì)從IB端口到達(dá)的IB數(shù)據(jù)報(bào)文解封裝,還原成以太網(wǎng)的數(shù)據(jù)幀。
?。?)EoIB主機(jī)驅(qū)動(dòng)。在IB網(wǎng)絡(luò)端口之上是虛擬萬(wàn)兆以太網(wǎng)端口(虛擬端口,vPort),并為主機(jī)的上層應(yīng)用提供標(biāo)準(zhǔn)的以太網(wǎng)應(yīng)用接口(虛擬網(wǎng)絡(luò)接口卡,vNic),以便在IB鏈路上承載萬(wàn)兆以太網(wǎng)的數(shù)據(jù)分組。每一臺(tái)主機(jī)可以具有多個(gè)虛擬端口(vPort),虛擬網(wǎng)絡(luò)接口卡(vNic)直接連接到虛擬端口上。這樣,遵循以太網(wǎng)協(xié)議的軟件能夠在EoIB驅(qū)動(dòng)上正常運(yùn)行。
EoIB將以太網(wǎng)數(shù)據(jù)幀封裝成可以被IB網(wǎng)絡(luò)理解的IB數(shù)據(jù)報(bào)文,從而實(shí)現(xiàn)了以太網(wǎng)數(shù)據(jù)分組在不兼容的網(wǎng)絡(luò)區(qū)域中進(jìn)行傳輸[7]。數(shù)據(jù)的封裝與解封裝示意圖如圖4所示。
2.2 EoIB地址映射機(jī)制
每一種網(wǎng)絡(luò)都有自己的編址方案和數(shù)據(jù)幀格式,異構(gòu)網(wǎng)絡(luò)的數(shù)據(jù)包是無(wú)法直接進(jìn)行傳輸?shù)摹R虼嗽贓oIB機(jī)制中就存在一個(gè)地址映射的問(wèn)題。萬(wàn)兆以太網(wǎng)的2層數(shù)據(jù)幀由MAC地址(48 bit)標(biāo)識(shí),而IB網(wǎng)絡(luò)的2層數(shù)據(jù)包由本地ID(Local Identifier,LID)標(biāo)識(shí),為了讓IB網(wǎng)絡(luò)理解萬(wàn)兆以太網(wǎng)的編址方式,需要將以太網(wǎng)地址轉(zhuǎn)換為IB網(wǎng)絡(luò)所能理解的數(shù)據(jù)鏈路層地址。為此,可以將以太網(wǎng)幀封裝到IB鏈路層地址的幀中,以IB報(bào)文的形式在IB網(wǎng)絡(luò)中傳輸。一種EoIB地址映射方案是在IB主機(jī)和網(wǎng)關(guān)中各存儲(chǔ)一張地址轉(zhuǎn)換表,表中記錄IB地址和MAC地址之間的對(duì)應(yīng)關(guān)系[8]。EoIB地址映射表如圖5所示。
由圖5可以看出,EoIB地址映射處理機(jī)制包含兩張關(guān)系映射表:ARP表存儲(chǔ)MAC地址和IP地址之間的映射關(guān)系;轉(zhuǎn)換表存儲(chǔ)IB主機(jī)的LID地址和虛擬MAC地址之間的映射關(guān)系。
通過(guò)ARP表可以將協(xié)議地址(IP地址)解析成硬件地址(MAC地址)。地址轉(zhuǎn)換表包括三個(gè)部分:IB主機(jī)的虛擬以太網(wǎng)2層地址和對(duì)應(yīng)的LID地址,網(wǎng)關(guān)LID地址,以及IB廣播地址。
EoIB網(wǎng)關(guān)上只保留了轉(zhuǎn)換表,用于處理虛擬MAC地址和IB主機(jī)的LID地址之間的映射。但I(xiàn)B主機(jī)同時(shí)保留ARP表和轉(zhuǎn)換表,完成兩種映射關(guān)系的處理。當(dāng)IB主機(jī)需要和另一臺(tái)主機(jī)通信時(shí),首先查找ARP表,根據(jù)目標(biāo)IP地址得到目標(biāo)MAC地址,然后再查找轉(zhuǎn)換表,根據(jù)MAC地址得到IB主機(jī)的LID地址。這個(gè)過(guò)程對(duì)應(yīng)了IB主機(jī)上數(shù)據(jù)幀的封裝過(guò)程。
2.3 EoIB的管理控制協(xié)議
通過(guò)以上的分析可知,轉(zhuǎn)換表是實(shí)現(xiàn)萬(wàn)兆以太網(wǎng)和IB網(wǎng)絡(luò)交互的關(guān)鍵因素,它的生成和維護(hù)是局域網(wǎng)的主要工作。當(dāng)網(wǎng)關(guān)啟動(dòng)之后,由網(wǎng)關(guān)創(chuàng)建一張轉(zhuǎn)換表用來(lái)記錄EoIB的地址映射信息。創(chuàng)建完成后將轉(zhuǎn)換表復(fù)制到該局域網(wǎng)內(nèi)的所有主機(jī)。當(dāng)有新的主機(jī)加入局域網(wǎng)或者有主機(jī)退出局域網(wǎng)時(shí),網(wǎng)關(guān)要負(fù)責(zé)更新轉(zhuǎn)換表,之后發(fā)送廣播消息,通知局域網(wǎng)內(nèi)的主機(jī)更新最新的轉(zhuǎn)換表。轉(zhuǎn)換表的生成和維護(hù)依賴于EoIB網(wǎng)關(guān)和主機(jī)的交互過(guò)程[9],如圖6所示。
主機(jī)與EoIB網(wǎng)點(diǎn)交互的具體過(guò)程如下:(1)新的主機(jī)請(qǐng)求加入局域網(wǎng)。(2)EoIB網(wǎng)關(guān)接收請(qǐng)求并向主機(jī)返回一個(gè)確認(rèn)字符ACK。(3)網(wǎng)關(guān)為新加入的主機(jī)生成一個(gè)虛擬的MAC地址。(4)網(wǎng)關(guān)更新轉(zhuǎn)換表,把新加入主機(jī)對(duì)應(yīng)的映射信息加入到轉(zhuǎn)換表中。(5)轉(zhuǎn)換表更新完成以后,網(wǎng)關(guān)向局域網(wǎng)中的主機(jī)廣播更新信息。(6)新加入的主機(jī)向網(wǎng)關(guān)請(qǐng)求完整的轉(zhuǎn)換表。(7)EoIB網(wǎng)關(guān)向局域網(wǎng)內(nèi)的所有主機(jī)廣播更新后的轉(zhuǎn)換表。(8)為了使轉(zhuǎn)換表得到及時(shí)更新,所有主機(jī)應(yīng)周期性地發(fā)送狀態(tài)信息給網(wǎng)關(guān)。這樣就完成了主機(jī)與網(wǎng)關(guān)的交互。
3 結(jié)束語(yǔ)
本文基于EoIB協(xié)議,根據(jù)管道網(wǎng)關(guān)的設(shè)計(jì)思想從理論上設(shè)計(jì)研究了10GE-InfiniBand網(wǎng)關(guān),分析了在網(wǎng)關(guān)設(shè)計(jì)過(guò)程中需要解決的幾個(gè)問(wèn)題,對(duì)實(shí)際的設(shè)計(jì)具有指導(dǎo)意義。10GE-InfiniBand網(wǎng)關(guān)可以實(shí)現(xiàn)系統(tǒng)外部10GE以太網(wǎng)和內(nèi)部IB網(wǎng)絡(luò)之間的數(shù)據(jù)交換,并且由于端口虛擬化技術(shù)使得無(wú)需對(duì)應(yīng)用進(jìn)行更改,從而將兩種高速系統(tǒng)連接技術(shù)融合在一起,提升了系統(tǒng)的I/O性能。
參考文獻(xiàn)
[1] 司馬聰.InfiniBand的現(xiàn)狀和發(fā)展趨勢(shì)[R].北京:存儲(chǔ)在線,2007.
[2] 謝向輝,彭龍根,吳志兵,等.基于InfiniBand的高性能計(jì)算機(jī)技術(shù)研究[J].計(jì)算機(jī)研究與發(fā)展,2005,42(6):905-912.
[3] 敖志剛.萬(wàn)兆位以太網(wǎng)及其實(shí)用技術(shù)[M].北京:電子工業(yè)出版社,2007.
[4] 劉偉,郭麗,閆晉鋒.高速互聯(lián)技術(shù)探索與發(fā)展[J].科技信息,2007(32):93,164.
[5] 張向陽(yáng),馮超敏,趙書貴,等.EoIB和IPoIB協(xié)議在地震資料處理中的對(duì)比分析[J].信息系統(tǒng)工程,2013(10):97-98.
[6] 呂高鋒,孫志剛,黃杰,等.基于IB統(tǒng)一交換技術(shù)的存儲(chǔ)系統(tǒng)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(11):140-144.
[7] IBTA.Ethernet over IB(EoIB) for Linux README [EB/OL].(2010-10-04)[2015-02-02].http://www.mellanox.com/related-docs/prod_ gateway_systems/EoIB_README-1.5.1-1.3.6.txt.
[8] 林雨弦.支持路由器服務(wù)擴(kuò)展的統(tǒng)一交換技術(shù)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2011.
[9] 朱啟偉,文玲.實(shí)現(xiàn)EoIB技術(shù)的一種實(shí)例[J].信息系統(tǒng)工程,2012(11):44-46.