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