《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 10 GE-InfiniBand網(wǎng)關(guān)的研究與設(shè)計
10 GE-InfiniBand網(wǎng)關(guān)的研究與設(shè)計
2015年微型機與應(yīng)用第13期
郜紅超
南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003
摘要: 為了使InfiniBand(簡稱IB)網(wǎng)絡(luò)和萬兆以太網(wǎng)這兩種高速互連網(wǎng)絡(luò)相互融合,實現(xiàn)它們之間的數(shù)據(jù)通信,本文對10GE-InfiniBand網(wǎng)關(guān)進行了研究設(shè)計,采用Ethernet-over-InfiniBand(EoIB)協(xié)議并結(jié)合管道網(wǎng)關(guān)的設(shè)計思想,將萬兆以太網(wǎng)的數(shù)據(jù)幀封裝成IB數(shù)據(jù)報文以達到在IB網(wǎng)絡(luò)中傳輸以太網(wǎng)數(shù)據(jù)幀的目的,實現(xiàn)兩種網(wǎng)絡(luò)之間的無縫融合。
Abstract:
Key words :

  摘  要: 為了使InfiniBand(簡稱IB)網(wǎng)絡(luò)和萬兆以太網(wǎng)這兩種高速互連網(wǎng)絡(luò)相互融合,實現(xiàn)它們之間的數(shù)據(jù)通信,本文對10GE-InfiniBand網(wǎng)關(guān)進行了研究設(shè)計,采用Ethernet-over-InfiniBand(EoIB)協(xié)議并結(jié)合管道網(wǎng)關(guān)的設(shè)計思想,將萬兆以太網(wǎng)的數(shù)據(jù)幀封裝成IB數(shù)據(jù)報文以達到在IB網(wǎng)絡(luò)中傳輸以太網(wǎng)數(shù)據(jù)幀的目的,實現(xiàn)兩種網(wǎng)絡(luò)之間的無縫融合。

  關(guān)鍵詞: InfiniBand;萬兆以太網(wǎng);網(wǎng)關(guān);Ethernet-over-InfiniBand

0 引言

  IB(InfiniBand)網(wǎng)絡(luò)由于其低延遲、高帶寬以及低處理開銷的特點得到越來越多的認可,采用IB技術(shù)進行互連的高性能計算系統(tǒng)所占的比例逐年上升。萬兆以太網(wǎng)比千兆以太網(wǎng)具有更大的帶寬和更快的數(shù)據(jù)傳輸速度。隨著高速傳輸技術(shù)得到越來越廣泛的應(yīng)用,人們開始考慮將這兩種高速互連網(wǎng)絡(luò)融合在一起,結(jié)合它們的優(yōu)點設(shè)計一個性能優(yōu)越的I/O網(wǎng)絡(luò)系統(tǒng)。但是由于異構(gòu)網(wǎng)絡(luò)運行在不同的協(xié)議之上,數(shù)據(jù)格式不同,不能直接進行傳輸,因此如何完成數(shù)據(jù)交換就成為無法回避的問題。本文針對IB網(wǎng)絡(luò)和萬兆以太網(wǎng)的數(shù)據(jù)格式的特點,對10GE-InfiniBand網(wǎng)關(guān)平臺進行了研究和設(shè)計,使IB網(wǎng)絡(luò)數(shù)據(jù)報文和萬兆以太網(wǎng)的數(shù)據(jù)幀可以相互轉(zhuǎn)換,從而將兩種網(wǎng)絡(luò)結(jié)合起來。

1 萬兆以太網(wǎng)和IB網(wǎng)絡(luò)簡介

  1.1 IB網(wǎng)絡(luò)

  IB規(guī)范定義了用于服務(wù)器、儲存設(shè)備和嵌入式系統(tǒng)互連的輸入/輸出架構(gòu),具有高帶寬、低時延的特點,廣泛應(yīng)用于數(shù)據(jù)中心、高性能計算集群以及不同規(guī)模的嵌入式應(yīng)用中,目前已經(jīng)成為主流的高速互連網(wǎng)絡(luò)技術(shù)[1]。圖1是IB網(wǎng)絡(luò)的體系架構(gòu)。

Image 001.png

  由圖1可知,IB網(wǎng)絡(luò)的體系架構(gòu)主要由交換機(Switch)、主機信道適配器(Host Channel Adapters,HCA)、目標信道適配器(Target Channel Adapters,TCA)和路由器(Router)構(gòu)成,這些設(shè)備一起完成系統(tǒng)通信的功能[2]。

  (1)HCA和TCA可以提供一個端到端的可靠連接。

  (2)交換機是將數(shù)據(jù)包從一個鏈路轉(zhuǎn)發(fā)到同一個子網(wǎng)的另一個鏈路中的設(shè)備。

 ?。?)路由器用于連接IB子網(wǎng),在子網(wǎng)間傳輸數(shù)據(jù)包。

  1.2 萬兆以太網(wǎng)

  萬兆以太網(wǎng)是最新的以太網(wǎng)技術(shù),可以提供高達10 Gbit/s的傳輸速度,傳輸距離增大到40 km,適用范圍大大拓寬。它基本繼承了原有的以太網(wǎng)模型,保留了802.3的以太網(wǎng)幀結(jié)構(gòu)。不同于以往的以太網(wǎng)標準,萬兆以太網(wǎng)僅僅定義了點到點的全雙工鏈路,并且沒有前幾代以太網(wǎng)標準中的帶有沖突檢測的載波偵聽多路訪問協(xié)議(CSMA/CD)機制[3]。

  雖然萬兆以太網(wǎng)是最新的以太網(wǎng)技術(shù),具有最快的以太網(wǎng)速度,延遲也比較低,但是并不能滿足網(wǎng)格計算和集群系統(tǒng)對延遲的要求。IB網(wǎng)絡(luò)低延遲和高帶寬的優(yōu)勢使其廣泛應(yīng)用于高速系統(tǒng)互連領(lǐng)域[4]。

2 EoIB的實現(xiàn)原理

  該網(wǎng)關(guān)平臺采用了管道的設(shè)計思想。管道是異構(gòu)網(wǎng)絡(luò)融合中的一種常用技術(shù)。一種網(wǎng)絡(luò)的數(shù)據(jù)包要在另一種網(wǎng)絡(luò)上傳輸,需要將該數(shù)據(jù)包封裝到可以被另一種網(wǎng)絡(luò)設(shè)備所能理解的數(shù)據(jù)包中,傳輸?shù)浇邮斩撕螅鳈C進行解封裝,將數(shù)據(jù)分組恢復(fù)成原來的格式。在Ethernet-over-InfiniBand(EoIB)的網(wǎng)關(guān)設(shè)計中,由于IB網(wǎng)絡(luò)無法識別萬兆以太網(wǎng)的數(shù)據(jù)格式,根據(jù)管道網(wǎng)關(guān)的設(shè)計思想,為了實現(xiàn)以太網(wǎng)數(shù)據(jù)包在IB網(wǎng)絡(luò)上傳輸,應(yīng)先將以太網(wǎng)幀封裝成IB數(shù)據(jù)報文,以IB報文的形式在IB網(wǎng)絡(luò)中傳輸,在接收端將IB報文恢復(fù)成以太網(wǎng)數(shù)據(jù)幀,從而高效地將萬兆以太網(wǎng)的數(shù)據(jù)包和IB的數(shù)據(jù)包進行相互轉(zhuǎn)換,實現(xiàn)網(wǎng)絡(luò)融合。

  EoIB協(xié)議是虛擬協(xié)議互連(Virtual Protocol Interconnect,VPI)技術(shù)的一部分,VPI技術(shù)可以實現(xiàn)以太網(wǎng)網(wǎng)絡(luò)、IB網(wǎng)絡(luò)、光纖通道(Fiber Channel,F(xiàn)C)網(wǎng)絡(luò)的融合,使得在單一網(wǎng)絡(luò)上運行多種協(xié)議成為可能。EoIB協(xié)議的實現(xiàn)原理是:為了在IB鏈路上傳輸以太網(wǎng)數(shù)據(jù)幀,需要在IB網(wǎng)絡(luò)的端口將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é)議設(shè)計的EoIB網(wǎng)關(guān)在IB網(wǎng)絡(luò)和萬兆以太網(wǎng)之間搭建起一座橋梁,實現(xiàn)了這兩種異構(gòu)網(wǎng)絡(luò)之間的數(shù)據(jù)交換。如圖2所示。

Image 002.png

  2.1 EoIB局域網(wǎng)模型

  EoIB局域網(wǎng)模型如圖3所示。

Image 003.png

  此局域網(wǎng)中包含兩種異構(gòu)網(wǎng)絡(luò):IB網(wǎng)絡(luò)和萬兆以太網(wǎng)[6]。為了實現(xiàn)這兩種格式的數(shù)據(jù)分組之間的交換,需要兩個主要組件。

 ?。?)EoIB網(wǎng)關(guān)。EoIB網(wǎng)關(guān)的主要作用是完成數(shù)據(jù)包在異構(gòu)網(wǎng)絡(luò)之間的轉(zhuǎn)發(fā),實現(xiàn)不同協(xié)議之間的交互通信,管理控制整個EoIB體系結(jié)構(gòu)。EoIB網(wǎng)關(guān)分別連接著IB網(wǎng)絡(luò)和萬兆以太網(wǎng),因此網(wǎng)關(guān)有兩種端口:連接IB網(wǎng)絡(luò)的IB端口以及連接萬兆以太網(wǎng)的以太網(wǎng)端口。EoIB網(wǎng)關(guān)將從以太網(wǎng)端口到達的以太網(wǎng)數(shù)據(jù)幀封裝成IB數(shù)據(jù)報文,而對從IB端口到達的IB數(shù)據(jù)報文解封裝,還原成以太網(wǎng)的數(shù)據(jù)幀。

 ?。?)EoIB主機驅(qū)動。在IB網(wǎng)絡(luò)端口之上是虛擬萬兆以太網(wǎng)端口(虛擬端口,vPort),并為主機的上層應(yīng)用提供標準的以太網(wǎng)應(yīng)用接口(虛擬網(wǎng)絡(luò)接口卡,vNic),以便在IB鏈路上承載萬兆以太網(wǎng)的數(shù)據(jù)分組。每一臺主機可以具有多個虛擬端口(vPort),虛擬網(wǎng)絡(luò)接口卡(vNic)直接連接到虛擬端口上。這樣,遵循以太網(wǎng)協(xié)議的軟件能夠在EoIB驅(qū)動上正常運行。

  EoIB將以太網(wǎng)數(shù)據(jù)幀封裝成可以被IB網(wǎng)絡(luò)理解的IB數(shù)據(jù)報文,從而實現(xiàn)了以太網(wǎng)數(shù)據(jù)分組在不兼容的網(wǎng)絡(luò)區(qū)域中進行傳輸[7]。數(shù)據(jù)的封裝與解封裝示意圖如圖4所示。

Image 004.png

  2.2 EoIB地址映射機制

  每一種網(wǎng)絡(luò)都有自己的編址方案和數(shù)據(jù)幀格式,異構(gòu)網(wǎng)絡(luò)的數(shù)據(jù)包是無法直接進行傳輸?shù)摹R虼嗽贓oIB機制中就存在一個地址映射的問題。萬兆以太網(wǎng)的2層數(shù)據(jù)幀由MAC地址(48 bit)標識,而IB網(wǎng)絡(luò)的2層數(shù)據(jù)包由本地ID(Local Identifier,LID)標識,為了讓IB網(wǎng)絡(luò)理解萬兆以太網(wǎng)的編址方式,需要將以太網(wǎng)地址轉(zhuǎn)換為IB網(wǎng)絡(luò)所能理解的數(shù)據(jù)鏈路層地址。為此,可以將以太網(wǎng)幀封裝到IB鏈路層地址的幀中,以IB報文的形式在IB網(wǎng)絡(luò)中傳輸。一種EoIB地址映射方案是在IB主機和網(wǎng)關(guān)中各存儲一張地址轉(zhuǎn)換表,表中記錄IB地址和MAC地址之間的對應(yīng)關(guān)系[8]。EoIB地址映射表如圖5所示。

Image 005.png

  由圖5可以看出,EoIB地址映射處理機制包含兩張關(guān)系映射表:ARP表存儲MAC地址和IP地址之間的映射關(guān)系;轉(zhuǎn)換表存儲IB主機的LID地址和虛擬MAC地址之間的映射關(guān)系。

  通過ARP表可以將協(xié)議地址(IP地址)解析成硬件地址(MAC地址)。地址轉(zhuǎn)換表包括三個部分:IB主機的虛擬以太網(wǎng)2層地址和對應(yīng)的LID地址,網(wǎng)關(guān)LID地址,以及IB廣播地址。

  EoIB網(wǎng)關(guān)上只保留了轉(zhuǎn)換表,用于處理虛擬MAC地址和IB主機的LID地址之間的映射。但IB主機同時保留ARP表和轉(zhuǎn)換表,完成兩種映射關(guān)系的處理。當(dāng)IB主機需要和另一臺主機通信時,首先查找ARP表,根據(jù)目標IP地址得到目標MAC地址,然后再查找轉(zhuǎn)換表,根據(jù)MAC地址得到IB主機的LID地址。這個過程對應(yīng)了IB主機上數(shù)據(jù)幀的封裝過程。

  2.3 EoIB的管理控制協(xié)議

  通過以上的分析可知,轉(zhuǎn)換表是實現(xiàn)萬兆以太網(wǎng)和IB網(wǎng)絡(luò)交互的關(guān)鍵因素,它的生成和維護是局域網(wǎng)的主要工作。當(dāng)網(wǎng)關(guān)啟動之后,由網(wǎng)關(guān)創(chuàng)建一張轉(zhuǎn)換表用來記錄EoIB的地址映射信息。創(chuàng)建完成后將轉(zhuǎn)換表復(fù)制到該局域網(wǎng)內(nèi)的所有主機。當(dāng)有新的主機加入局域網(wǎng)或者有主機退出局域網(wǎng)時,網(wǎng)關(guān)要負責(zé)更新轉(zhuǎn)換表,之后發(fā)送廣播消息,通知局域網(wǎng)內(nèi)的主機更新最新的轉(zhuǎn)換表。轉(zhuǎn)換表的生成和維護依賴于EoIB網(wǎng)關(guān)和主機的交互過程[9],如圖6所示。

Image 006.png

  主機與EoIB網(wǎng)點交互的具體過程如下:(1)新的主機請求加入局域網(wǎng)。(2)EoIB網(wǎng)關(guān)接收請求并向主機返回一個確認字符ACK。(3)網(wǎng)關(guān)為新加入的主機生成一個虛擬的MAC地址。(4)網(wǎng)關(guān)更新轉(zhuǎn)換表,把新加入主機對應(yīng)的映射信息加入到轉(zhuǎn)換表中。(5)轉(zhuǎn)換表更新完成以后,網(wǎng)關(guān)向局域網(wǎng)中的主機廣播更新信息。(6)新加入的主機向網(wǎng)關(guān)請求完整的轉(zhuǎn)換表。(7)EoIB網(wǎng)關(guān)向局域網(wǎng)內(nèi)的所有主機廣播更新后的轉(zhuǎn)換表。(8)為了使轉(zhuǎn)換表得到及時更新,所有主機應(yīng)周期性地發(fā)送狀態(tài)信息給網(wǎng)關(guān)。這樣就完成了主機與網(wǎng)關(guān)的交互。

3 結(jié)束語

  本文基于EoIB協(xié)議,根據(jù)管道網(wǎng)關(guān)的設(shè)計思想從理論上設(shè)計研究了10GE-InfiniBand網(wǎng)關(guān),分析了在網(wǎng)關(guān)設(shè)計過程中需要解決的幾個問題,對實際的設(shè)計具有指導(dǎo)意義。10GE-InfiniBand網(wǎng)關(guān)可以實現(xiàn)系統(tǒng)外部10GE以太網(wǎng)和內(nèi)部IB網(wǎng)絡(luò)之間的數(shù)據(jù)交換,并且由于端口虛擬化技術(shù)使得無需對應(yīng)用進行更改,從而將兩種高速系統(tǒng)連接技術(shù)融合在一起,提升了系統(tǒng)的I/O性能。

參考文獻

  [1] 司馬聰.InfiniBand的現(xiàn)狀和發(fā)展趨勢[R].北京:存儲在線,2007.

  [2] 謝向輝,彭龍根,吳志兵,等.基于InfiniBand的高性能計算機技術(shù)研究[J].計算機研究與發(fā)展,2005,42(6):905-912.

  [3] 敖志剛.萬兆位以太網(wǎng)及其實用技術(shù)[M].北京:電子工業(yè)出版社,2007.

  [4] 劉偉,郭麗,閆晉鋒.高速互聯(lián)技術(shù)探索與發(fā)展[J].科技信息,2007(32):93,164.

  [5] 張向陽,馮超敏,趙書貴,等.EoIB和IPoIB協(xié)議在地震資料處理中的對比分析[J].信息系統(tǒng)工程,2013(10):97-98.

  [6] 呂高鋒,孫志剛,黃杰,等.基于IB統(tǒng)一交換技術(shù)的存儲系統(tǒng)研究與實現(xiàn)[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ù)擴展的統(tǒng)一交換技術(shù)[D].長沙:國防科學(xué)技術(shù)大學(xué),2011.

  [9] 朱啟偉,文玲.實現(xiàn)EoIB技術(shù)的一種實例[J].信息系統(tǒng)工程,2012(11):44-46.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。