曾穎霓 陳慶春 聞廣亮
1(西南交通大學信息科學與技術學院 四川 成都 611756) 2(杭州華三通信技術有限公司數(shù)據(jù)中心交換機產(chǎn)品管理一部 北京 100085)
基于FCoE協(xié)議的NPV交換機流量轉發(fā)
曾穎霓1陳慶春1聞廣亮2
1(西南交通大學信息科學與技術學院 四川 成都 611756)2(杭州華三通信技術有限公司數(shù)據(jù)中心交換機產(chǎn)品管理一部 北京 100085)
以太網(wǎng)光纖通道FCoE(Fiber Channel Over Ethernet)實現(xiàn)了數(shù)據(jù)中心前端計算網(wǎng)絡與后端存儲網(wǎng)絡的無縫融合,降低了數(shù)據(jù)中心基礎設施的單位建設成本、維護成本,支持數(shù)據(jù)中心異構網(wǎng)絡環(huán)境與不同的接口類型。存儲區(qū)域網(wǎng)絡SAN(Storage Area Network)中交換機數(shù)量受到8比特域ID唯一的限制最多可以有239臺。N端口虛擬化技術NPV(N Port Virtualization)極大地克服了SAN網(wǎng)絡在規(guī)模上受限的問題,能夠讓更多的服務器或存儲設備接入到網(wǎng)絡中,擴大網(wǎng)絡容量。NPV交換機與傳統(tǒng)FCF(Fabric Channel Forward)交換機最大的差別是上下行流量轉發(fā)機制不同,它采用上行流量從映射端口轉發(fā),下行流量查表轉發(fā)。NPV交換機驅動層路由模塊的設計與實現(xiàn)采用敏捷開發(fā)模式進行,主要包括端口設置、下發(fā)NPV Mapping表項、路由表項、Fips規(guī)則下發(fā)。實驗測試證明該設計實現(xiàn)了NPV交換機對FCoE流量的正常轉發(fā),確保了可行性。
以太網(wǎng)光纖通道 融合網(wǎng)絡 N端口虛擬化技術 驅動層設計
伴隨著云計算的興起,數(shù)據(jù)趨于大集中,而且數(shù)據(jù)類型也更加豐富。新IT時代數(shù)據(jù)中心建設中,我們往往要根據(jù)數(shù)據(jù)類型選用不同的存儲。由于光纖通道存儲區(qū)域網(wǎng)絡FC SAN(Fabric Channel Storage Area Network)[1]能夠滿足對于大容量、高可靠數(shù)據(jù)的存儲、訪問與備份,它成為了數(shù)據(jù)中心應用最為廣泛的存儲方式。使用FC SAN存儲網(wǎng)絡的數(shù)據(jù)中心通常運行兩個獨立的網(wǎng)絡:用于客戶機到服務器或者服務器到服務器間通信的以太網(wǎng)網(wǎng)絡(LAN)[2]和用于服務器到存儲設備之間通信的存儲區(qū)域網(wǎng)絡(SAN)[3]。數(shù)據(jù)中心的服務器需要為每種網(wǎng)絡配置單獨的網(wǎng)絡接口卡、單獨的布線、單獨的交換機,多網(wǎng)絡并存滿足了數(shù)據(jù)中心的性能追求,但是也給數(shù)據(jù)中心的操作、管理與維護帶來了一系列問題,使得網(wǎng)絡的可擴展性變差。
FCoE是將FC技術映射到以太網(wǎng)的技術,實現(xiàn)了在無損以太網(wǎng)上傳輸FC數(shù)據(jù)幀[4]。FCoE技術將為用戶帶來以下好處:首先是更低的擁有成本,通過整合更有效地利用以前分散的資源,將服務器的I/O適配器和線纜數(shù)量減少多達50%,大幅度減少電力和冷卻成本,同時還可以降低管理和運營開支。其次是強大的投資保護,融合網(wǎng)絡可與現(xiàn)有基礎設施無縫互通,使得管理簡便、成本下降。最后是增強了業(yè)務靈活性,使所有的服務器均能夠訪問存儲設備,而且在虛擬機移動的情況下可以為資源提供一致的存儲連接,保證了系統(tǒng)的靈活性和可用性[5]。采用FCoE技術的數(shù)據(jù)中心有3種組網(wǎng)方式:接入融合組網(wǎng)、核心融合組網(wǎng)、NPV組網(wǎng)。
本文主要討論NPV組網(wǎng),通過NPV模式接入交換機與已有的SAN網(wǎng)絡互通,可以達到擴容的目的。NPV交換機位于邊緣接入層,在節(jié)點設備與上行FCoE交換機FCF之間充當代理的角色,將協(xié)議報文代理到核心交換機。NPV對上行流量的轉發(fā)是通過查Mapping表從映射端口轉發(fā),對下行流量的轉發(fā)是通過查轉發(fā)表進行轉發(fā)。
1.1 FCoE協(xié)議
FCoE協(xié)議棧與FC協(xié)議棧[6]結構如圖1所示。FC協(xié)議棧分為5層:FC_0物理層,定義連接器及線纜規(guī)格;FC_1數(shù)據(jù)編碼層,定義了數(shù)據(jù)的編解碼;FC_2數(shù)據(jù)分發(fā)層,定義了如何組幀及流量控制;FC_3通用服務層,定義了各種服務;FC_4高層協(xié)議層,定義SCSI、IP等高層協(xié)議到FC幀的映射。
FCoE協(xié)議只是用LAN取代了下層FC_0與FC_1,對于原有的FC幀上層是完全透明的。FCoE幀[7]結構主要分為三部分:普通以太幀頭、FCoE幀頭、FC幀。FCoE數(shù)據(jù)幀和協(xié)議幀的以太類型分別是0X8906、0X8914。FCoE協(xié)議幀主要用于協(xié)議交互(包括初始協(xié)商、保活、離開等過程),數(shù)據(jù)幀主要用于標識發(fā)送FCoE數(shù)據(jù)。
1.2 NPV交換機
N端口虛擬化(NPV)[8]交換機的出現(xiàn)是為了解決數(shù)據(jù)中心存儲區(qū)域網(wǎng)絡擴容的問題。FC協(xié)議通過FC ID[9]訪問FC SAN中的各個通信實體,每臺交換機的FC ID由三部分總共24比特組成。其格式如表1所示。
表1 FC_ID格式
(1) Domain_ID(8 bits)可以唯一標識一個SAN網(wǎng)路中每臺交換機,除去一些用于特殊標識外,它的取值范圍是1-239,即整個網(wǎng)絡最多可容納239臺交換機;
(2) Port_ID(8 bits)代表一個N_port;
(3) Area_ID(8 bits)用來標識一個劃分了多個N_port的Area。
報文在網(wǎng)絡中的路由和轉發(fā)都用Domain_ID,這一特性同樣適用于FCoE融合網(wǎng)絡[10]。在FCoE網(wǎng)絡中NPV交換機的下行端口連接節(jié)點設備,上行端口連接核心交換機,它是通過設置上下行端口為不同模式實現(xiàn)擴容的。從下行節(jié)點設備看,NPV交換機是一臺FCF交換機,從上行的核心交換機看,NPV交換機相當于一臺節(jié)點設備。這樣就可以在網(wǎng)絡中多接入交換機以滿足擴容需求同時又不會占用唯一的Domain_ID。
NPV交換機具備標準的FCoE協(xié)議棧,從控制平面來看它的下行端口收到的下行服務器的注冊信息會被送到上行的FCF交換機進行處理[11]。
1.3 NPV模式報文轉發(fā)
NPV交換機上下行流量具有不同的轉發(fā)流程:
上行流量:下行口→上行口,根據(jù)上下行口映射關系,直接從下行口映射的上行口轉發(fā)出去。
下行流量:上行口→下行口,查轉發(fā)表(由NPV數(shù)據(jù)庫生成),匹配報文的目的FC_ID進行轉發(fā)。ENode上的名字服務信息注冊和查詢、PLOGI[12]等都通過轉發(fā)到達核心交換機。
FC協(xié)議[13]規(guī)定端口狀態(tài)分為F_port、E_port、NP_port及Auto_port四種類型。節(jié)點設備的端口狀態(tài)可以分為N_port和NL_port。NPV交換機的上行口是NP_port,下行口是F_port。
NPV組網(wǎng)中FCoE報文轉發(fā)如圖2所示。NPV交換機中下行口進入的報文采用節(jié)點設備映射的FCoE mac地址(FC_MAP+FC_ID_1)作為源地址(SA)進行尋址,目的地址(DA)是NPV交換機的FCoE mac地址。通過映射的上行口將報文轉發(fā)出去,轉發(fā)報文的SA不改變,DA變成了下一跳所在交換機的FCoE mac。相反上行口進入報文SA為上行的FCF交換機的FCoE mac,DA為節(jié)點設備映射的地址,以DA為關鍵字查找轉發(fā)表進行轉發(fā),出封裝報文DA不變,SA變?yōu)楸綨PV交換機的FCoE mac。總結一句話就是上行流量SA不變,DA變;下行流量DA不變,SA變。這一處理是需要驅動根據(jù)平臺的模式設置與下發(fā)的轉發(fā)表項對芯片進行設置以后才能實現(xiàn)的。
圖2 NPV組網(wǎng)中FCoE報文轉發(fā)示意圖
整個交換機系統(tǒng)可以分為四大部分,分別是網(wǎng)絡操作系統(tǒng)、產(chǎn)品驅動、芯片接口(SDK)、硬件。平臺作為總體控制平面不管底層芯片的差異,進行控制命令下發(fā)、協(xié)議計算。SDK是芯片廠商提供的對外API接口,API接口把要設置硬件的信息以軟件接口的模式呈現(xiàn)給驅動開發(fā)者,通過該接口能夠把驅動處理的信息寫進硬件。產(chǎn)品驅動主要完成網(wǎng)絡操作與 API之間的對接,把平臺通用的功能轉換成為芯片相關的信息后傳遞給底層芯片。驅動部分主要是響應平臺的命令并做出相應處理(實現(xiàn)下發(fā)路由、下發(fā)下一跳、創(chuàng)建VSAN[14]、ZONE[15]和Fips規(guī)則),產(chǎn)品的規(guī)格定制,資源管理和各模塊的維護,向平臺提供接口并完成注冊。驅動和平臺之間會進行信息傳遞,把平臺的通用信息轉換成與芯片相關信息。本實驗主要進行驅動平臺部分設計與實現(xiàn)。
根據(jù)1.3節(jié)的分析,NPV交換機要實現(xiàn)FCoE報文的轉發(fā)必須進行以下幾點處理:設置端口以保證報文出方向封裝正確;下發(fā)路由的同時生成Fips規(guī)則對端口進入報文進行檢查;下行口生成NPV mapping表項保證上行流量轉發(fā);下發(fā)路由表項同時下發(fā)8位的本機路由保證能夠識別上行口的Dmac得以走FCoE查表轉發(fā)的流程。硬件通過匹配優(yōu)先級實現(xiàn)此邏輯,優(yōu)先查找NPV mapping表,如果找到匹配的表項則從匹配上行端口發(fā)出,否則就當作下行流量處理查找路由表進行轉發(fā)。硬件設計了上行端口的標志位置1,該端口進入的報文出封裝時改SA不會改DA,下行口標志位置0,該端口進入的報文出封裝時改DA不會改SA。
2.1 端口設置
VFC接口信息通過IfIndx傳入,驅動由軟件樹記錄VFC端口上與以太網(wǎng)端口相關的信息,同時驅動還會將該信息下發(fā)到芯片中(創(chuàng)建硬件三層接口表項)。驅動軟件樹記錄的表項分為三類:VFC F口表項、VFC E口表項、FC口表項。索引包含的信息有VLAN id、VFC index、FC id,其中FC id字段只在VFC F口計算得到的下一跳表項中有效,此類表項在下發(fā)F口的路由時創(chuàng)建軟硬件表項,在其他的表項中都為0。
上述創(chuàng)建VFC接口軟件表項時驅動通過樹來記錄,樹節(jié)點的結構體設計如下:
typedef struct tagFCOE_FW_NH
{
/*查找關鍵字部分*/
unsigned int uiPrtTyp; /*區(qū)分是VFC口還是FC口*/
unsigned int uiVtgId; /*VFC口用VLAN id,F(xiàn)C口用VSAN id*/
unsigned int uiIfIndx; /*VFC/FC接口的IfIndx */
unsigned int uiFcId; /*VFC F口的具體下一跳中使用目的FC id的值,其他情況下為0*/
unsigned int uiMdcid;
/*節(jié)點內容部分*/
unsigned int uiFlg;
unsigned int uiVlnid; /*VLAN id */
unsigned int uiNpIndx; /*對應的下一跳信息*/
unsigned int uiL3IntIndex; /*對應的三層接口信息*/
unsigned int uiRfCnt; /*引用計數(shù)*/
FCOE_PORT_INFO_S stEthPrtInf; /*下一跳出端口的信息*/
unsigned int uiEthIndx; /*以太口索引*/
char aucRemoteMac[MAC_LEN]; /*目的端mac地址,VFC F口為FC mapping,前三字節(jié)有效,其他情況下為目的端MAC地址*/
char auclocalMac[MAC_LEN]; /*本端FCoE mac地址,F(xiàn)口的fips規(guī)則要用到*/
char aucMacMapping[FCOE_MAC_MAPPING_LEN]; /*NP口需要記錄*/
unsigned int uiEncapid;/*全局同步*/
char aucPad; /*填充字段*/
FCOE_FW_NH_S;
F-VFC口UP時,平臺會從VFC的IOCTRL函數(shù)中下發(fā)命令字要求驅動創(chuàng)建下一跳,而驅動僅僅是創(chuàng)建軟件節(jié)點,并不會創(chuàng)建硬件表項。當F-VFC上節(jié)點上線以后平臺會下發(fā)一條路由指向該F-VFC口,在下發(fā)這條路由的硬件表項時驅動會先去創(chuàng)建下一跳的硬件表項。
對于NPV模式還需要設置上下行口,NPV上下行端口設置就是在驅動創(chuàng)建VFC接口時進行設置的。NPV模式的F端口是下行口,需要將它設置為1,對應著SDK API中的類型是N port。從N port類型端口進入的報文在入方向選擇Program的ID為15,進入該Program的報文出方向封裝時會修改報文的DA而不修改報文的SA;NPV模式的NP端口是上行口,需要將它設置為0,對應SDK API中的類型是NP port,從NP port類型端口進入的報文出方向封裝時SA會被修改而不會修改DA。
2.2 路由處理
平臺構造轉發(fā)信息通知驅動更新轉發(fā)表。驅動部分路由處理主要包括了三部分:FC Mapping表項、Fips規(guī)則、轉發(fā)路由。上述三部分要確保同時下發(fā)成功或者失敗,即任何一部分表項下發(fā)失敗均要回退當前流程中已經(jīng)下發(fā)的表項,等待后續(xù)重新下發(fā)。下發(fā)成功驅動會回傳轉發(fā)表信息給平臺。
路由處理的結果有五種:包括操作成功、失敗、創(chuàng)建表項已經(jīng)存在、驅動沒有準備好、硬件資源不足。對于驅動沒有準備好的情況需要重刷下發(fā)失敗的表項。某些產(chǎn)品需要在下發(fā)路由時自動創(chuàng)建出接口相關的鄰接表,多個出接口需要創(chuàng)建多個鄰接表。鄰接表資源不足時會出現(xiàn)部分鄰接表申請成功部分申請失敗,驅動負責釋放所有已經(jīng)分配成功的鄰接表項資源。然后向平臺返回資源不足,平臺會記錄由于資源不足下發(fā)失敗的表項,繼續(xù)下發(fā)后續(xù)表項。驅動會定時調用重刷接口通知平臺重新下發(fā)資源不足或者驅動沒準備好而下發(fā)失敗的表項,直至成功。
驅動部分通過二叉樹記錄生成的軟件路由表項,樹節(jié)點的數(shù)據(jù)結構設計如下:
typedef struct tagFCOE_FW_RB_S
{
/*關鍵字部分*/
unsigned int uiVsnid; /*轉發(fā)對應的VSAN信息*/
unsigned int uiFCid; /*目的FC id*/
unsigned int uiFcidMsk; /*掩碼信息*/
unsigned int uiRbTyp;
unsigned int uiIfIndxSrv; /*F口對應下行服務器端口索引*/
unsigned int uiMdcid;
unsigned int uiOutIfNum; /*出接口的數(shù)目*/
unsigned int uiVlnid; /*轉發(fā)對應的VLAN信息*/
unsigned int uiNpIndx; /*轉發(fā)對應的下一跳信息,如果是ECMP則為ECMP的索引*/
unsigned int uiRtStatus; /*路由的狀態(tài)標記位*/
FCOE_PORT_INFO_S stSrcPrt; /*下行口匹配信息SrcTrunkID或是單端口的SrcPort+SrcMod*/
FCOE_OIF_INFO_S astOtIfLst[ECMPMEM_MAX_NUM]; /*出接口索引列表*/
unsigned int uiSrvrPrtTyp; /*服務器端的端口類型(VFC或者FC)*/
unsigned int uiFipsIfIndx; /*為fips提供的端口索引*/
} FCOE_FW_RB_S;
2.2.1 Fips規(guī)則
FCoE網(wǎng)絡中也需要一些機制來保證可靠性與安全性,F(xiàn)ips規(guī)則就屬于一種。Fips表項主要是用于檢查類型為FCoE_TYPE報文的源Mac是否正確,由交換機分配的正確FC id與FC_Map(0X0EFC00)拼接而成的報文則允許通過,否則報文將被丟棄。該規(guī)則只在端口所在單板下發(fā),所以使用的端口索引是index。Fips規(guī)則優(yōu)先級高于ZONE與路由規(guī)則的優(yōu)先級, 所以它不會默認設置通過或是丟棄,而是設置了標志位,到了ZONE中再根據(jù)標志位匹配判斷。Fips規(guī)則是通過ACL來下發(fā)的,因此需要在每一個FCoE模式下都占用ACL的資源。盡管存在資源浪費,為防止切換到FCoE模式時其他模塊搶占ACL硬件資源造成失敗也不得不首先下發(fā)占位表項。驅動在被通知使能FCoE模式時下發(fā)Fips全局規(guī)則,這些規(guī)則優(yōu)先級最低,在被通知去使能FCoE模式的時候刪除這些規(guī)則。為了節(jié)省ACL個數(shù)以及該規(guī)則對于NPV模式?jīng)]有其他影響,所以刪除時將該規(guī)則提到全局ACL里,其值不再是下發(fā)時的0X0EFC00,而是高位為0X0EFC(0X0EFC00-0X0EFCFF)則deny。
首先,為了模式切換時ACL 資源不會被別的模塊所搶占,需要將所有的將會使用的部分進行占位處理。占位規(guī)則的優(yōu)先級高于其他任何規(guī)則,必須保證第一條下發(fā),才能確保模式切換時硬件資源充足。匹配占位表項的報文不作任何處理。
驅動下發(fā)Fips規(guī)則所需要的信息是從平臺傳入路由表項中獲取,具體信息包括了FC id、Dmac、vsan id、以太網(wǎng)接口的IfIndx。Fips表項中有一條優(yōu)先級最低、默認丟棄FCoE 數(shù)據(jù)報文的ACL表項,它用于在節(jié)點沒有注冊時丟棄所有FCoE 的數(shù)據(jù)報文,其他優(yōu)先級都高于它,因此該條表項放在了最后。驅動在Fips軟件樹上記錄Fips規(guī)則,軟件表項記錄成功后通過ACL下發(fā)硬件表項。Fips軟件樹在記錄表項前會查找該條表項是否已經(jīng)存,如果已經(jīng)存在則只需要將該條表項引用計數(shù)加1,同時不必再下發(fā)硬件。下發(fā)Fips規(guī)則的流程如圖3所示。
圖3 Fips表項下發(fā)
2.2.2 NPV mapping表項
前面已經(jīng)提到過上行流量轉發(fā)是通過端口映射進行的,NPV mapping就是記錄端口映射規(guī)則的表項。NPV規(guī)則是在Fips規(guī)則下發(fā)成功之后處理。數(shù)據(jù)結構FCOE_NPV_MAPPING_S用于記錄NPV映射規(guī)則的信息。該數(shù)據(jù)結構包括了VSAN id、節(jié)點的FC id信息stSrcPrfx、交換機與節(jié)點相連的端口索引IfIndxSrvr、FCF互聯(lián)的NP口索引IfIndxExtrnl和包含全局同步資源索引的auiDrvCntxt。數(shù)據(jù)結構中包括的這些信息的具體值取自平臺傳入的路由索引。驅動會先通過軟件記錄要添加的規(guī)則,然后將規(guī)則下發(fā)到硬件中去。值得注意的是映射規(guī)則是將某個登錄的節(jié)點映射到上行口,這要匹配節(jié)點的Sid與登錄節(jié)點的端口,以保證規(guī)則的唯一性。在芯片上有mod、port、index這些值來表示端口??蚴皆O備可以支持多塊單板,設備上的mod與port值特性如下:同一塊單板上port值唯一,不同單板port值可重復;不同單板mod值不能重復,同一塊單板上mod值可重復。index是通過mod與port得到的,每個端口的index值是唯一的。使用index有兩個原因:首先NPV規(guī)則只是下發(fā)到端口所在的單板,如果使用mod/port就會在所有單板都下發(fā);其次使用mod/port會出現(xiàn)問題,當下行口在某個聚合中時,ACL識別不了mod/port,導致NPV規(guī)則匹配不到。
下發(fā)映射規(guī)則的時機由平臺控制,當節(jié)點通過NPV交換機向FCF交換機進行注冊時平臺會調用上述接口下發(fā)NPV mapping表項指向上行口。同時還會下發(fā)一條指向下行口的8位主機路由到SEM,下行流量就是通過先查SEM中這條表項再查LEM進行轉發(fā)的。整個驅動部分處理流程如圖4所示。
圖4 NPV規(guī)則下發(fā)
2.2.3 路由表項
在NPV模式下有三種報文需要上送CPU處理。第一種是Sid或者是Did為0XFFFFFE的報文,此條路由在NPV模式初始化時下發(fā),通過添加匹配目的地址或是源地址為0XFFFFFE的ACL規(guī)則,然后在VLAN內使能FCoE時設置VLAN的掩碼。第二種是Did為0XFFFFF0的報文。驅動通過兩種方式下發(fā)該條表項,在NPV模式初始化時添加匹配目的地址的ACL規(guī)則,并在VLAN內使能FCoE時設置VLAN的掩碼,或者是響應路由變化接口,添加知名地址的路由。為了節(jié)省ACL資源,如果產(chǎn)品已經(jīng)在NPV模式初始化時下發(fā)則在路由接口變化時不再下發(fā)直接返回成功。第三種是目的地址為本機N端口地址的報文。
路由下發(fā)的處理流程如圖5所示。平臺路由掩碼位數(shù)是8的時候驅動除了下發(fā)平臺路由還會創(chuàng)建特殊路由表項(0XFFFC+domain id)并下發(fā)硬件。路由表項的下發(fā)分為驅動創(chuàng)建下一跳軟件表項和下發(fā)硬件表項。硬件下發(fā)過程中會得到fec索引,該信息要回傳給驅動。表項已經(jīng)存在驅動記錄的下一跳軟件樹上時只需要將引用計數(shù)加1并回傳表中的encapid,不必要再下發(fā)硬件表項。
圖5 路由表項的添加
本實驗環(huán)境基于某公司的高端交換機設備,所需的設備如下:框式交換機(1臺)、低端交換機(1臺)、串口服務器、網(wǎng)線、光模塊等。計算機、串口服務器、測試儀與S12508交換機通過S5800交換機組成了一個二層的網(wǎng)絡。這樣它們之間相互連通,計算機可以通過測試平臺軟件對交換機進行配置、顯示信息以及測試。在PC上通過testcenter也可以控制測試儀,模擬出一個節(jié)點設備,節(jié)點設備開始運行后就會與相連的交換機進行協(xié)議報文的交互,端口都UP后就可以傳送FCoE報文。
首先通過testcenter上面的轉發(fā)報文速率顯示可以初步確定報文無丟包。第二步是通過抓包工具查看兩端的報文,主要關注DA、SA、VLAN tag、FC id這些關鍵字段,與預期相符合。最后也是最重要的驗證就是通過VTP查看配置信息和NPV交換機轉發(fā)報文時的Debug信息、流量統(tǒng)計信息、平臺的驅動生成的軟件轉發(fā)表項、硬件表項相關的信息。下面對一些關鍵測試信息進行說明。
入方向FLP階段Program選擇結果如圖6、圖7所示,結合2.2.3節(jié)描述的8比特本機路由就是控制N口進入的報文在芯片入方向處理過程選擇正確的Program。N端口進入報文選擇的是Program 15,控制在查表時用Sid查;NP端口進入報文選擇Program 10,控制在查表時用Did查。
圖6 N端口FLP階段報文入方向的Program選擇
圖7 NP端口報文入方向的Program選擇
圖8為N端口報文在入方向TT階段選擇的Program 1,證實了NPV交換機在路由處理過程中驅動成功下發(fā)了8位掩碼的本機路由,從而確保N端口進入報文在芯片入方向處理時Smac能夠被識別走FCoE查表轉發(fā)的流程。
圖8 N端口TT階段入方向Program選擇
圖9是驅動記錄的Fips軟件表項,相應的MAC id、VLAN id、Smac、Dmac、Action、Index、Mod、Port、Flag等字段的值都與預期的相符合。
圖9 Fips軟件表項
圖10為出方向選擇了正確的Program,證明端口設置正確。出方向Program正確才能夠保證正確的出封裝:NP端口報文改Smac不改Dmac;N端口報文改Dmac不改Smac。
圖10 出方向Program選擇
隨著云計算與大數(shù)據(jù)的發(fā)展,數(shù)據(jù)中心的規(guī)模日益擴大,企業(yè)對數(shù)據(jù)中心的要求日益劇增,F(xiàn)CoE為了解決網(wǎng)絡融合而提出,它的出現(xiàn)拉開了下一代數(shù)據(jù)中心網(wǎng)絡的帷幕。NPV交換機的實現(xiàn)增加了融合網(wǎng)絡中交換機的數(shù)量,提升了融合網(wǎng)絡的容量?;贔CoE技術、NPV技術進行了分析,在理論基礎上進行了NPV交換機驅動層路由表項的設計與實現(xiàn)。通過實驗證明了設計的可行性,當然現(xiàn)在的技術只能支持邊緣接入層的融合,接下來將進一步實現(xiàn)核心層的融合研究,相信基于FCoE的NPV交換機的實現(xiàn)與改進也將會推動數(shù)據(jù)中心網(wǎng)絡架構的不斷發(fā)展與完善。
[1] Zhang H, Koay T, Venugopalan P, et al. Fibre channel storage area network design for an acoustic camera system with 1.6 Gbits/s bandwidth[C]//TENCON 2001: IEEE Region 10 International Conference on Electrical and Electronic Technology,Singapore:IEEE, 2001:143-148.
[2] David A ,James C. Local area networks[M]. Prentice Hall PTR Upper Saddle River, NJ, USA, 2000:100-120.
[3] DeSanti C, Gai S, Baldini A. Fibre channel over ethernet: U.S., 8238347[P]. 2012-8-7.
[4] American National Standard of Accredited Standards Committee. Fiber Channel Backbone-5 (FC-BB-5). REV2.00;(11p.);June. 4, 2009.
[5] Guo J, Zou S, Lu P, et al. I/O Virtualization Design of FCoE Adapter[C]//ICNISC 2015: 2015 International Conference on Network and Information Systems for Computers. Wuhan:IEEE, 2015:18-21.
[6] American National Standard of Accredited Standards Committee. Fibre Channel Framing Signaling-5 (FC-FS-5). REV0.02;(11p.);Feb. 5, 2015.
[7] DeSanti C, Gai S, Baldini A. Fibre channel over ethernet: U.S., 8238347[P]. 2012-8-7.
[8] American National Standard of Accredited Standards Committee. Fibre Channel Switch Fabric-3 (FC-SW-3) REV 6.0;(11 p.); Jan. 24, 2002, Only.
[9] Berman S. Fibre channel switching fabric: U.S., 6185203[P]. 2001-2-6.
[10] Cai Y, Yan Y, Zhang Z, et al. Survey on converged data center networks with DCB and FCoE: standards and protocols[J]. IEEE Network, 2013, 27(27):27-32.
[11] Bodnar P, Luiz Z. FCoE and iSCSI Performance Analysis in Tape Virtualization Systems[J]. IEEE Latin America Transactions, 2015, 13(7):2372-2378.
[12] 徐立冰, 騰云. 云計算和大數(shù)據(jù)時代網(wǎng)絡技術揭秘[M]. 北京:人民郵電出版社, 2013:102-132.
[13] Desanti C, Jiang J. FCoE in perspective[C]//ICAIT 2008: 2008 International Conference on Advanced Infocomm Technology. Shenzhen:ACM, 2008:1-8.
[14] Jiang J, Desanti C. The role of FCoE in I/O consolidation[C]//ICAIT 2008: 2008 International Conference on Advanced Infocomm Technology. Shenzhen:ACM, 2008:1-6.
[15] Antonio S. The Evolution of Data Center Networking Technologies[C]//CCP 2011: 2011 First International Conference on Data Compression. Palinuro: IEEE,2011:172-176.
TRAFFICFORWARDINGOFNPVSWITCHBASEDONFCOE
Zeng Yingni1Chen Qingchun1Wen Guangliang2
1(SchoolofInformationScienceandTechnology,SouthwestJiaotongUniversity,Chengdu611756,Sichuan,China)2(BeijingInstituteofH3CTechnologyCo.,Limited,Beijing100085,China)
Fiber Channel over Ethernet (FCoE) achieves the seamless integration of front-end computing network and back-end storage network. FCoE reduces unit construction costs and maintenance costs for data center infrastructures, supporting heterogeneous network environment and different interface types. The number of switches in a Storage Area Network (SAN) is limited by eight bits ID Domain, with a maximum of 239. N port virtualization (NPV) greatly overcomes the limitation on the scale of the SAN network, allowing more servers or storage devices access to the network, hence expanding network capacity. The primary difference between NPV switch and the traditional FCF switch lies in the traffic forwarding mechanism of the uplink and downlink; NPV uses the mapping port to forward the uplink traffic, and the route table to forward downlink traffic. NPV switch driver layer route design and implementation adopts the agile software development, such as the setting of the port, NPV Mapping entries, routing table entries, Fips rules. Experimental results show that this design realizes the normal forwarding of NPV switches to FCoE traffic, and ensures the feasibility.
Fiber channel over ethernet Converged network N port virtualization Driver layer design
2017-02-22。曾穎霓,碩士生,主研領域:無線資源管理,網(wǎng)絡與交換技術。陳慶春,教授。聞廣亮,高工。
TP393.05
A
10.3969/j.issn.1000-386x.2017.12.036