• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于FCoE協(xié)議的NPV交換機(jī)流量轉(zhuǎn)發(fā)

      2018-01-03 01:59:15曾穎霓陳慶春聞廣亮
      關(guān)鍵詞:表項(xiàng)交換機(jī)報(bào)文

      曾穎霓 陳慶春 聞廣亮

      1(西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院 四川 成都 611756) 2(杭州華三通信技術(shù)有限公司數(shù)據(jù)中心交換機(jī)產(chǎn)品管理一部 北京 100085)

      基于FCoE協(xié)議的NPV交換機(jī)流量轉(zhuǎn)發(fā)

      曾穎霓1陳慶春1聞廣亮2

      1(西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院 四川 成都 611756)2(杭州華三通信技術(shù)有限公司數(shù)據(jù)中心交換機(jī)產(chǎn)品管理一部 北京 100085)

      以太網(wǎng)光纖通道FCoE(Fiber Channel Over Ethernet)實(shí)現(xiàn)了數(shù)據(jù)中心前端計(jì)算網(wǎng)絡(luò)與后端存儲(chǔ)網(wǎng)絡(luò)的無(wú)縫融合,降低了數(shù)據(jù)中心基礎(chǔ)設(shè)施的單位建設(shè)成本、維護(hù)成本,支持?jǐn)?shù)據(jù)中心異構(gòu)網(wǎng)絡(luò)環(huán)境與不同的接口類型。存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN(Storage Area Network)中交換機(jī)數(shù)量受到8比特域ID唯一的限制最多可以有239臺(tái)。N端口虛擬化技術(shù)NPV(N Port Virtualization)極大地克服了SAN網(wǎng)絡(luò)在規(guī)模上受限的問(wèn)題,能夠讓更多的服務(wù)器或存儲(chǔ)設(shè)備接入到網(wǎng)絡(luò)中,擴(kuò)大網(wǎng)絡(luò)容量。NPV交換機(jī)與傳統(tǒng)FCF(Fabric Channel Forward)交換機(jī)最大的差別是上下行流量轉(zhuǎn)發(fā)機(jī)制不同,它采用上行流量從映射端口轉(zhuǎn)發(fā),下行流量查表轉(zhuǎn)發(fā)。NPV交換機(jī)驅(qū)動(dòng)層路由模塊的設(shè)計(jì)與實(shí)現(xiàn)采用敏捷開(kāi)發(fā)模式進(jìn)行,主要包括端口設(shè)置、下發(fā)NPV Mapping表項(xiàng)、路由表項(xiàng)、Fips規(guī)則下發(fā)。實(shí)驗(yàn)測(cè)試證明該設(shè)計(jì)實(shí)現(xiàn)了NPV交換機(jī)對(duì)FCoE流量的正常轉(zhuǎn)發(fā),確保了可行性。

      以太網(wǎng)光纖通道 融合網(wǎng)絡(luò) N端口虛擬化技術(shù) 驅(qū)動(dòng)層設(shè)計(jì)

      0 引 言

      伴隨著云計(jì)算的興起,數(shù)據(jù)趨于大集中,而且數(shù)據(jù)類型也更加豐富。新IT時(shí)代數(shù)據(jù)中心建設(shè)中,我們往往要根據(jù)數(shù)據(jù)類型選用不同的存儲(chǔ)。由于光纖通道存儲(chǔ)區(qū)域網(wǎng)絡(luò)FC SAN(Fabric Channel Storage Area Network)[1]能夠滿足對(duì)于大容量、高可靠數(shù)據(jù)的存儲(chǔ)、訪問(wèn)與備份,它成為了數(shù)據(jù)中心應(yīng)用最為廣泛的存儲(chǔ)方式。使用FC SAN存儲(chǔ)網(wǎng)絡(luò)的數(shù)據(jù)中心通常運(yùn)行兩個(gè)獨(dú)立的網(wǎng)絡(luò):用于客戶機(jī)到服務(wù)器或者服務(wù)器到服務(wù)器間通信的以太網(wǎng)網(wǎng)絡(luò)(LAN)[2]和用于服務(wù)器到存儲(chǔ)設(shè)備之間通信的存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)[3]。數(shù)據(jù)中心的服務(wù)器需要為每種網(wǎng)絡(luò)配置單獨(dú)的網(wǎng)絡(luò)接口卡、單獨(dú)的布線、單獨(dú)的交換機(jī),多網(wǎng)絡(luò)并存滿足了數(shù)據(jù)中心的性能追求,但是也給數(shù)據(jù)中心的操作、管理與維護(hù)帶來(lái)了一系列問(wèn)題,使得網(wǎng)絡(luò)的可擴(kuò)展性變差。

      FCoE是將FC技術(shù)映射到以太網(wǎng)的技術(shù),實(shí)現(xiàn)了在無(wú)損以太網(wǎng)上傳輸FC數(shù)據(jù)幀[4]。FCoE技術(shù)將為用戶帶來(lái)以下好處:首先是更低的擁有成本,通過(guò)整合更有效地利用以前分散的資源,將服務(wù)器的I/O適配器和線纜數(shù)量減少多達(dá)50%,大幅度減少電力和冷卻成本,同時(shí)還可以降低管理和運(yùn)營(yíng)開(kāi)支。其次是強(qiáng)大的投資保護(hù),融合網(wǎng)絡(luò)可與現(xiàn)有基礎(chǔ)設(shè)施無(wú)縫互通,使得管理簡(jiǎn)便、成本下降。最后是增強(qiáng)了業(yè)務(wù)靈活性,使所有的服務(wù)器均能夠訪問(wèn)存儲(chǔ)設(shè)備,而且在虛擬機(jī)移動(dòng)的情況下可以為資源提供一致的存儲(chǔ)連接,保證了系統(tǒng)的靈活性和可用性[5]。采用FCoE技術(shù)的數(shù)據(jù)中心有3種組網(wǎng)方式:接入融合組網(wǎng)、核心融合組網(wǎng)、NPV組網(wǎng)。

      本文主要討論NPV組網(wǎng),通過(guò)NPV模式接入交換機(jī)與已有的SAN網(wǎng)絡(luò)互通,可以達(dá)到擴(kuò)容的目的。NPV交換機(jī)位于邊緣接入層,在節(jié)點(diǎn)設(shè)備與上行FCoE交換機(jī)FCF之間充當(dāng)代理的角色,將協(xié)議報(bào)文代理到核心交換機(jī)。NPV對(duì)上行流量的轉(zhuǎn)發(fā)是通過(guò)查Mapping表從映射端口轉(zhuǎn)發(fā),對(duì)下行流量的轉(zhuǎn)發(fā)是通過(guò)查轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。

      1 相關(guān)技術(shù)

      1.1 FCoE協(xié)議

      FCoE協(xié)議棧與FC協(xié)議棧[6]結(jié)構(gòu)如圖1所示。FC協(xié)議棧分為5層:FC_0物理層,定義連接器及線纜規(guī)格;FC_1數(shù)據(jù)編碼層,定義了數(shù)據(jù)的編解碼;FC_2數(shù)據(jù)分發(fā)層,定義了如何組幀及流量控制;FC_3通用服務(wù)層,定義了各種服務(wù);FC_4高層協(xié)議層,定義SCSI、IP等高層協(xié)議到FC幀的映射。

      FCoE協(xié)議只是用LAN取代了下層FC_0與FC_1,對(duì)于原有的FC幀上層是完全透明的。FCoE幀[7]結(jié)構(gòu)主要分為三部分:普通以太幀頭、FCoE幀頭、FC幀。FCoE數(shù)據(jù)幀和協(xié)議幀的以太類型分別是0X8906、0X8914。FCoE協(xié)議幀主要用于協(xié)議交互(包括初始協(xié)商、保活、離開(kāi)等過(guò)程),數(shù)據(jù)幀主要用于標(biāo)識(shí)發(fā)送FCoE數(shù)據(jù)。

      1.2 NPV交換機(jī)

      N端口虛擬化(NPV)[8]交換機(jī)的出現(xiàn)是為了解決數(shù)據(jù)中心存儲(chǔ)區(qū)域網(wǎng)絡(luò)擴(kuò)容的問(wèn)題。FC協(xié)議通過(guò)FC ID[9]訪問(wèn)FC SAN中的各個(gè)通信實(shí)體,每臺(tái)交換機(jī)的FC ID由三部分總共24比特組成。其格式如表1所示。

      表1 FC_ID格式

      (1) Domain_ID(8 bits)可以唯一標(biāo)識(shí)一個(gè)SAN網(wǎng)路中每臺(tái)交換機(jī),除去一些用于特殊標(biāo)識(shí)外,它的取值范圍是1-239,即整個(gè)網(wǎng)絡(luò)最多可容納239臺(tái)交換機(jī);

      (2) Port_ID(8 bits)代表一個(gè)N_port;

      (3) Area_ID(8 bits)用來(lái)標(biāo)識(shí)一個(gè)劃分了多個(gè)N_port的Area。

      報(bào)文在網(wǎng)絡(luò)中的路由和轉(zhuǎn)發(fā)都用Domain_ID,這一特性同樣適用于FCoE融合網(wǎng)絡(luò)[10]。在FCoE網(wǎng)絡(luò)中NPV交換機(jī)的下行端口連接節(jié)點(diǎn)設(shè)備,上行端口連接核心交換機(jī),它是通過(guò)設(shè)置上下行端口為不同模式實(shí)現(xiàn)擴(kuò)容的。從下行節(jié)點(diǎn)設(shè)備看,NPV交換機(jī)是一臺(tái)FCF交換機(jī),從上行的核心交換機(jī)看,NPV交換機(jī)相當(dāng)于一臺(tái)節(jié)點(diǎn)設(shè)備。這樣就可以在網(wǎng)絡(luò)中多接入交換機(jī)以滿足擴(kuò)容需求同時(shí)又不會(huì)占用唯一的Domain_ID。

      NPV交換機(jī)具備標(biāo)準(zhǔn)的FCoE協(xié)議棧,從控制平面來(lái)看它的下行端口收到的下行服務(wù)器的注冊(cè)信息會(huì)被送到上行的FCF交換機(jī)進(jìn)行處理[11]。

      1.3 NPV模式報(bào)文轉(zhuǎn)發(fā)

      NPV交換機(jī)上下行流量具有不同的轉(zhuǎn)發(fā)流程:

      上行流量:下行口→上行口,根據(jù)上下行口映射關(guān)系,直接從下行口映射的上行口轉(zhuǎn)發(fā)出去。

      下行流量:上行口→下行口,查轉(zhuǎn)發(fā)表(由NPV數(shù)據(jù)庫(kù)生成),匹配報(bào)文的目的FC_ID進(jìn)行轉(zhuǎn)發(fā)。ENode上的名字服務(wù)信息注冊(cè)和查詢、PLOGI[12]等都通過(guò)轉(zhuǎn)發(fā)到達(dá)核心交換機(jī)。

      FC協(xié)議[13]規(guī)定端口狀態(tài)分為F_port、E_port、NP_port及Auto_port四種類型。節(jié)點(diǎn)設(shè)備的端口狀態(tài)可以分為N_port和NL_port。NPV交換機(jī)的上行口是NP_port,下行口是F_port。

      NPV組網(wǎng)中FCoE報(bào)文轉(zhuǎn)發(fā)如圖2所示。NPV交換機(jī)中下行口進(jìn)入的報(bào)文采用節(jié)點(diǎn)設(shè)備映射的FCoE mac地址(FC_MAP+FC_ID_1)作為源地址(SA)進(jìn)行尋址,目的地址(DA)是NPV交換機(jī)的FCoE mac地址。通過(guò)映射的上行口將報(bào)文轉(zhuǎn)發(fā)出去,轉(zhuǎn)發(fā)報(bào)文的SA不改變,DA變成了下一跳所在交換機(jī)的FCoE mac。相反上行口進(jìn)入報(bào)文SA為上行的FCF交換機(jī)的FCoE mac,DA為節(jié)點(diǎn)設(shè)備映射的地址,以DA為關(guān)鍵字查找轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā),出封裝報(bào)文DA不變,SA變?yōu)楸綨PV交換機(jī)的FCoE mac。總結(jié)一句話就是上行流量SA不變,DA變;下行流量DA不變,SA變。這一處理是需要驅(qū)動(dòng)根據(jù)平臺(tái)的模式設(shè)置與下發(fā)的轉(zhuǎn)發(fā)表項(xiàng)對(duì)芯片進(jìn)行設(shè)置以后才能實(shí)現(xiàn)的。

      圖2 NPV組網(wǎng)中FCoE報(bào)文轉(zhuǎn)發(fā)示意圖

      2 設(shè)計(jì)與實(shí)現(xiàn)

      整個(gè)交換機(jī)系統(tǒng)可以分為四大部分,分別是網(wǎng)絡(luò)操作系統(tǒng)、產(chǎn)品驅(qū)動(dòng)、芯片接口(SDK)、硬件。平臺(tái)作為總體控制平面不管底層芯片的差異,進(jìn)行控制命令下發(fā)、協(xié)議計(jì)算。SDK是芯片廠商提供的對(duì)外API接口,API接口把要設(shè)置硬件的信息以軟件接口的模式呈現(xiàn)給驅(qū)動(dòng)開(kāi)發(fā)者,通過(guò)該接口能夠把驅(qū)動(dòng)處理的信息寫進(jìn)硬件。產(chǎn)品驅(qū)動(dòng)主要完成網(wǎng)絡(luò)操作與 API之間的對(duì)接,把平臺(tái)通用的功能轉(zhuǎn)換成為芯片相關(guān)的信息后傳遞給底層芯片。驅(qū)動(dòng)部分主要是響應(yīng)平臺(tái)的命令并做出相應(yīng)處理(實(shí)現(xiàn)下發(fā)路由、下發(fā)下一跳、創(chuàng)建VSAN[14]、ZONE[15]和Fips規(guī)則),產(chǎn)品的規(guī)格定制,資源管理和各模塊的維護(hù),向平臺(tái)提供接口并完成注冊(cè)。驅(qū)動(dòng)和平臺(tái)之間會(huì)進(jìn)行信息傳遞,把平臺(tái)的通用信息轉(zhuǎn)換成與芯片相關(guān)信息。本實(shí)驗(yàn)主要進(jìn)行驅(qū)動(dòng)平臺(tái)部分設(shè)計(jì)與實(shí)現(xiàn)。

      根據(jù)1.3節(jié)的分析,NPV交換機(jī)要實(shí)現(xiàn)FCoE報(bào)文的轉(zhuǎn)發(fā)必須進(jìn)行以下幾點(diǎn)處理:設(shè)置端口以保證報(bào)文出方向封裝正確;下發(fā)路由的同時(shí)生成Fips規(guī)則對(duì)端口進(jìn)入報(bào)文進(jìn)行檢查;下行口生成NPV mapping表項(xiàng)保證上行流量轉(zhuǎn)發(fā);下發(fā)路由表項(xiàng)同時(shí)下發(fā)8位的本機(jī)路由保證能夠識(shí)別上行口的Dmac得以走FCoE查表轉(zhuǎn)發(fā)的流程。硬件通過(guò)匹配優(yōu)先級(jí)實(shí)現(xiàn)此邏輯,優(yōu)先查找NPV mapping表,如果找到匹配的表項(xiàng)則從匹配上行端口發(fā)出,否則就當(dāng)作下行流量處理查找路由表進(jìn)行轉(zhuǎn)發(fā)。硬件設(shè)計(jì)了上行端口的標(biāo)志位置1,該端口進(jìn)入的報(bào)文出封裝時(shí)改SA不會(huì)改DA,下行口標(biāo)志位置0,該端口進(jìn)入的報(bào)文出封裝時(shí)改DA不會(huì)改SA。

      2.1 端口設(shè)置

      VFC接口信息通過(guò)IfIndx傳入,驅(qū)動(dòng)由軟件樹(shù)記錄VFC端口上與以太網(wǎng)端口相關(guān)的信息,同時(shí)驅(qū)動(dòng)還會(huì)將該信息下發(fā)到芯片中(創(chuàng)建硬件三層接口表項(xiàng))。驅(qū)動(dòng)軟件樹(shù)記錄的表項(xiàng)分為三類:VFC F口表項(xiàng)、VFC E口表項(xiàng)、FC口表項(xiàng)。索引包含的信息有VLAN id、VFC index、FC id,其中FC id字段只在VFC F口計(jì)算得到的下一跳表項(xiàng)中有效,此類表項(xiàng)在下發(fā)F口的路由時(shí)創(chuàng)建軟硬件表項(xiàng),在其他的表項(xiàng)中都為0。

      上述創(chuàng)建VFC接口軟件表項(xiàng)時(shí)驅(qū)動(dòng)通過(guò)樹(shù)來(lái)記錄,樹(shù)節(jié)點(diǎn)的結(jié)構(gòu)體設(shè)計(jì)如下:

      typedef struct tagFCOE_FW_NH

      {

      /*查找關(guān)鍵字部分*/

      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é)點(diǎn)內(nèi)容部分*/

      unsigned int uiFlg;

      unsigned int uiVlnid; /*VLAN id */

      unsigned int uiNpIndx; /*對(duì)應(yīng)的下一跳信息*/

      unsigned int uiL3IntIndex; /*對(duì)應(yīng)的三層接口信息*/

      unsigned int uiRfCnt; /*引用計(jì)數(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時(shí),平臺(tái)會(huì)從VFC的IOCTRL函數(shù)中下發(fā)命令字要求驅(qū)動(dòng)創(chuàng)建下一跳,而驅(qū)動(dòng)僅僅是創(chuàng)建軟件節(jié)點(diǎn),并不會(huì)創(chuàng)建硬件表項(xiàng)。當(dāng)F-VFC上節(jié)點(diǎn)上線以后平臺(tái)會(huì)下發(fā)一條路由指向該F-VFC口,在下發(fā)這條路由的硬件表項(xiàng)時(shí)驅(qū)動(dòng)會(huì)先去創(chuàng)建下一跳的硬件表項(xiàng)。

      對(duì)于NPV模式還需要設(shè)置上下行口,NPV上下行端口設(shè)置就是在驅(qū)動(dòng)創(chuàng)建VFC接口時(shí)進(jìn)行設(shè)置的。NPV模式的F端口是下行口,需要將它設(shè)置為1,對(duì)應(yīng)著SDK API中的類型是N port。從N port類型端口進(jìn)入的報(bào)文在入方向選擇Program的ID為15,進(jìn)入該P(yáng)rogram的報(bào)文出方向封裝時(shí)會(huì)修改報(bào)文的DA而不修改報(bào)文的SA;NPV模式的NP端口是上行口,需要將它設(shè)置為0,對(duì)應(yīng)SDK API中的類型是NP port,從NP port類型端口進(jìn)入的報(bào)文出方向封裝時(shí)SA會(huì)被修改而不會(huì)修改DA。

      2.2 路由處理

      平臺(tái)構(gòu)造轉(zhuǎn)發(fā)信息通知驅(qū)動(dòng)更新轉(zhuǎn)發(fā)表。驅(qū)動(dòng)部分路由處理主要包括了三部分:FC Mapping表項(xiàng)、Fips規(guī)則、轉(zhuǎn)發(fā)路由。上述三部分要確保同時(shí)下發(fā)成功或者失敗,即任何一部分表項(xiàng)下發(fā)失敗均要回退當(dāng)前流程中已經(jīng)下發(fā)的表項(xiàng),等待后續(xù)重新下發(fā)。下發(fā)成功驅(qū)動(dòng)會(huì)回傳轉(zhuǎn)發(fā)表信息給平臺(tái)。

      路由處理的結(jié)果有五種:包括操作成功、失敗、創(chuàng)建表項(xiàng)已經(jīng)存在、驅(qū)動(dòng)沒(méi)有準(zhǔn)備好、硬件資源不足。對(duì)于驅(qū)動(dòng)沒(méi)有準(zhǔn)備好的情況需要重刷下發(fā)失敗的表項(xiàng)。某些產(chǎn)品需要在下發(fā)路由時(shí)自動(dòng)創(chuàng)建出接口相關(guān)的鄰接表,多個(gè)出接口需要?jiǎng)?chuàng)建多個(gè)鄰接表。鄰接表資源不足時(shí)會(huì)出現(xiàn)部分鄰接表申請(qǐng)成功部分申請(qǐng)失敗,驅(qū)動(dòng)負(fù)責(zé)釋放所有已經(jīng)分配成功的鄰接表項(xiàng)資源。然后向平臺(tái)返回資源不足,平臺(tái)會(huì)記錄由于資源不足下發(fā)失敗的表項(xiàng),繼續(xù)下發(fā)后續(xù)表項(xiàng)。驅(qū)動(dòng)會(huì)定時(shí)調(diào)用重刷接口通知平臺(tái)重新下發(fā)資源不足或者驅(qū)動(dòng)沒(méi)準(zhǔn)備好而下發(fā)失敗的表項(xiàng),直至成功。

      驅(qū)動(dòng)部分通過(guò)二叉樹(shù)記錄生成的軟件路由表項(xiàng),樹(shù)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)如下:

      typedef struct tagFCOE_FW_RB_S

      {

      /*關(guān)鍵字部分*/

      unsigned int uiVsnid; /*轉(zhuǎn)發(fā)對(duì)應(yīng)的VSAN信息*/

      unsigned int uiFCid; /*目的FC id*/

      unsigned int uiFcidMsk; /*掩碼信息*/

      unsigned int uiRbTyp;

      unsigned int uiIfIndxSrv; /*F口對(duì)應(yīng)下行服務(wù)器端口索引*/

      unsigned int uiMdcid;

      unsigned int uiOutIfNum; /*出接口的數(shù)目*/

      unsigned int uiVlnid; /*轉(zhuǎn)發(fā)對(duì)應(yīng)的VLAN信息*/

      unsigned int uiNpIndx; /*轉(zhuǎn)發(fā)對(duì)應(yīng)的下一跳信息,如果是ECMP則為ECMP的索引*/

      unsigned int uiRtStatus; /*路由的狀態(tài)標(biāo)記位*/

      FCOE_PORT_INFO_S stSrcPrt; /*下行口匹配信息SrcTrunkID或是單端口的SrcPort+SrcMod*/

      FCOE_OIF_INFO_S astOtIfLst[ECMPMEM_MAX_NUM]; /*出接口索引列表*/

      unsigned int uiSrvrPrtTyp; /*服務(wù)器端的端口類型(VFC或者FC)*/

      unsigned int uiFipsIfIndx; /*為fips提供的端口索引*/

      } FCOE_FW_RB_S;

      2.2.1 Fips規(guī)則

      FCoE網(wǎng)絡(luò)中也需要一些機(jī)制來(lái)保證可靠性與安全性,F(xiàn)ips規(guī)則就屬于一種。Fips表項(xiàng)主要是用于檢查類型為FCoE_TYPE報(bào)文的源Mac是否正確,由交換機(jī)分配的正確FC id與FC_Map(0X0EFC00)拼接而成的報(bào)文則允許通過(guò),否則報(bào)文將被丟棄。該規(guī)則只在端口所在單板下發(fā),所以使用的端口索引是index。Fips規(guī)則優(yōu)先級(jí)高于ZONE與路由規(guī)則的優(yōu)先級(jí), 所以它不會(huì)默認(rèn)設(shè)置通過(guò)或是丟棄,而是設(shè)置了標(biāo)志位,到了ZONE中再根據(jù)標(biāo)志位匹配判斷。Fips規(guī)則是通過(guò)ACL來(lái)下發(fā)的,因此需要在每一個(gè)FCoE模式下都占用ACL的資源。盡管存在資源浪費(fèi),為防止切換到FCoE模式時(shí)其他模塊搶占ACL硬件資源造成失敗也不得不首先下發(fā)占位表項(xiàng)。驅(qū)動(dòng)在被通知使能FCoE模式時(shí)下發(fā)Fips全局規(guī)則,這些規(guī)則優(yōu)先級(jí)最低,在被通知去使能FCoE模式的時(shí)候刪除這些規(guī)則。為了節(jié)省ACL個(gè)數(shù)以及該規(guī)則對(duì)于NPV模式?jīng)]有其他影響,所以刪除時(shí)將該規(guī)則提到全局ACL里,其值不再是下發(fā)時(shí)的0X0EFC00,而是高位為0X0EFC(0X0EFC00-0X0EFCFF)則deny。

      首先,為了模式切換時(shí)ACL 資源不會(huì)被別的模塊所搶占,需要將所有的將會(huì)使用的部分進(jìn)行占位處理。占位規(guī)則的優(yōu)先級(jí)高于其他任何規(guī)則,必須保證第一條下發(fā),才能確保模式切換時(shí)硬件資源充足。匹配占位表項(xiàng)的報(bào)文不作任何處理。

      驅(qū)動(dòng)下發(fā)Fips規(guī)則所需要的信息是從平臺(tái)傳入路由表項(xiàng)中獲取,具體信息包括了FC id、Dmac、vsan id、以太網(wǎng)接口的IfIndx。Fips表項(xiàng)中有一條優(yōu)先級(jí)最低、默認(rèn)丟棄FCoE 數(shù)據(jù)報(bào)文的ACL表項(xiàng),它用于在節(jié)點(diǎn)沒(méi)有注冊(cè)時(shí)丟棄所有FCoE 的數(shù)據(jù)報(bào)文,其他優(yōu)先級(jí)都高于它,因此該條表項(xiàng)放在了最后。驅(qū)動(dòng)在Fips軟件樹(shù)上記錄Fips規(guī)則,軟件表項(xiàng)記錄成功后通過(guò)ACL下發(fā)硬件表項(xiàng)。Fips軟件樹(shù)在記錄表項(xiàng)前會(huì)查找該條表項(xiàng)是否已經(jīng)存,如果已經(jīng)存在則只需要將該條表項(xiàng)引用計(jì)數(shù)加1,同時(shí)不必再下發(fā)硬件。下發(fā)Fips規(guī)則的流程如圖3所示。

      圖3 Fips表項(xiàng)下發(fā)

      2.2.2 NPV mapping表項(xiàng)

      前面已經(jīng)提到過(guò)上行流量轉(zhuǎn)發(fā)是通過(guò)端口映射進(jìn)行的,NPV mapping就是記錄端口映射規(guī)則的表項(xiàng)。NPV規(guī)則是在Fips規(guī)則下發(fā)成功之后處理。數(shù)據(jù)結(jié)構(gòu)FCOE_NPV_MAPPING_S用于記錄NPV映射規(guī)則的信息。該數(shù)據(jù)結(jié)構(gòu)包括了VSAN id、節(jié)點(diǎn)的FC id信息stSrcPrfx、交換機(jī)與節(jié)點(diǎn)相連的端口索引IfIndxSrvr、FCF互聯(lián)的NP口索引IfIndxExtrnl和包含全局同步資源索引的auiDrvCntxt。數(shù)據(jù)結(jié)構(gòu)中包括的這些信息的具體值取自平臺(tái)傳入的路由索引。驅(qū)動(dòng)會(huì)先通過(guò)軟件記錄要添加的規(guī)則,然后將規(guī)則下發(fā)到硬件中去。值得注意的是映射規(guī)則是將某個(gè)登錄的節(jié)點(diǎn)映射到上行口,這要匹配節(jié)點(diǎn)的Sid與登錄節(jié)點(diǎn)的端口,以保證規(guī)則的唯一性。在芯片上有mod、port、index這些值來(lái)表示端口。框式設(shè)備可以支持多塊單板,設(shè)備上的mod與port值特性如下:同一塊單板上port值唯一,不同單板port值可重復(fù);不同單板mod值不能重復(fù),同一塊單板上mod值可重復(fù)。index是通過(guò)mod與port得到的,每個(gè)端口的index值是唯一的。使用index有兩個(gè)原因:首先NPV規(guī)則只是下發(fā)到端口所在的單板,如果使用mod/port就會(huì)在所有單板都下發(fā);其次使用mod/port會(huì)出現(xiàn)問(wèn)題,當(dāng)下行口在某個(gè)聚合中時(shí),ACL識(shí)別不了mod/port,導(dǎo)致NPV規(guī)則匹配不到。

      下發(fā)映射規(guī)則的時(shí)機(jī)由平臺(tái)控制,當(dāng)節(jié)點(diǎn)通過(guò)NPV交換機(jī)向FCF交換機(jī)進(jìn)行注冊(cè)時(shí)平臺(tái)會(huì)調(diào)用上述接口下發(fā)NPV mapping表項(xiàng)指向上行口。同時(shí)還會(huì)下發(fā)一條指向下行口的8位主機(jī)路由到SEM,下行流量就是通過(guò)先查SEM中這條表項(xiàng)再查L(zhǎng)EM進(jìn)行轉(zhuǎn)發(fā)的。整個(gè)驅(qū)動(dòng)部分處理流程如圖4所示。

      圖4 NPV規(guī)則下發(fā)

      2.2.3 路由表項(xiàng)

      在NPV模式下有三種報(bào)文需要上送CPU處理。第一種是Sid或者是Did為0XFFFFFE的報(bào)文,此條路由在NPV模式初始化時(shí)下發(fā),通過(guò)添加匹配目的地址或是源地址為0XFFFFFE的ACL規(guī)則,然后在VLAN內(nèi)使能FCoE時(shí)設(shè)置VLAN的掩碼。第二種是Did為0XFFFFF0的報(bào)文。驅(qū)動(dòng)通過(guò)兩種方式下發(fā)該條表項(xiàng),在NPV模式初始化時(shí)添加匹配目的地址的ACL規(guī)則,并在VLAN內(nèi)使能FCoE時(shí)設(shè)置VLAN的掩碼,或者是響應(yīng)路由變化接口,添加知名地址的路由。為了節(jié)省ACL資源,如果產(chǎn)品已經(jīng)在NPV模式初始化時(shí)下發(fā)則在路由接口變化時(shí)不再下發(fā)直接返回成功。第三種是目的地址為本機(jī)N端口地址的報(bào)文。

      路由下發(fā)的處理流程如圖5所示。平臺(tái)路由掩碼位數(shù)是8的時(shí)候驅(qū)動(dòng)除了下發(fā)平臺(tái)路由還會(huì)創(chuàng)建特殊路由表項(xiàng)(0XFFFC+domain id)并下發(fā)硬件。路由表項(xiàng)的下發(fā)分為驅(qū)動(dòng)創(chuàng)建下一跳軟件表項(xiàng)和下發(fā)硬件表項(xiàng)。硬件下發(fā)過(guò)程中會(huì)得到fec索引,該信息要回傳給驅(qū)動(dòng)。表項(xiàng)已經(jīng)存在驅(qū)動(dòng)記錄的下一跳軟件樹(shù)上時(shí)只需要將引用計(jì)數(shù)加1并回傳表中的encapid,不必要再下發(fā)硬件表項(xiàng)。

      圖5 路由表項(xiàng)的添加

      3 實(shí)驗(yàn)驗(yàn)證

      本實(shí)驗(yàn)環(huán)境基于某公司的高端交換機(jī)設(shè)備,所需的設(shè)備如下:框式交換機(jī)(1臺(tái))、低端交換機(jī)(1臺(tái))、串口服務(wù)器、網(wǎng)線、光模塊等。計(jì)算機(jī)、串口服務(wù)器、測(cè)試儀與S12508交換機(jī)通過(guò)S5800交換機(jī)組成了一個(gè)二層的網(wǎng)絡(luò)。這樣它們之間相互連通,計(jì)算機(jī)可以通過(guò)測(cè)試平臺(tái)軟件對(duì)交換機(jī)進(jìn)行配置、顯示信息以及測(cè)試。在PC上通過(guò)testcenter也可以控制測(cè)試儀,模擬出一個(gè)節(jié)點(diǎn)設(shè)備,節(jié)點(diǎn)設(shè)備開(kāi)始運(yùn)行后就會(huì)與相連的交換機(jī)進(jìn)行協(xié)議報(bào)文的交互,端口都UP后就可以傳送FCoE報(bào)文。

      首先通過(guò)testcenter上面的轉(zhuǎn)發(fā)報(bào)文速率顯示可以初步確定報(bào)文無(wú)丟包。第二步是通過(guò)抓包工具查看兩端的報(bào)文,主要關(guān)注DA、SA、VLAN tag、FC id這些關(guān)鍵字段,與預(yù)期相符合。最后也是最重要的驗(yàn)證就是通過(guò)VTP查看配置信息和NPV交換機(jī)轉(zhuǎn)發(fā)報(bào)文時(shí)的Debug信息、流量統(tǒng)計(jì)信息、平臺(tái)的驅(qū)動(dòng)生成的軟件轉(zhuǎn)發(fā)表項(xiàng)、硬件表項(xiàng)相關(guān)的信息。下面對(duì)一些關(guān)鍵測(cè)試信息進(jìn)行說(shuō)明。

      入方向FLP階段Program選擇結(jié)果如圖6、圖7所示,結(jié)合2.2.3節(jié)描述的8比特本機(jī)路由就是控制N口進(jìn)入的報(bào)文在芯片入方向處理過(guò)程選擇正確的Program。N端口進(jìn)入報(bào)文選擇的是Program 15,控制在查表時(shí)用Sid查;NP端口進(jìn)入報(bào)文選擇Program 10,控制在查表時(shí)用Did查。

      圖6 N端口FLP階段報(bào)文入方向的Program選擇

      圖7 NP端口報(bào)文入方向的Program選擇

      圖8為N端口報(bào)文在入方向TT階段選擇的Program 1,證實(shí)了NPV交換機(jī)在路由處理過(guò)程中驅(qū)動(dòng)成功下發(fā)了8位掩碼的本機(jī)路由,從而確保N端口進(jìn)入報(bào)文在芯片入方向處理時(shí)Smac能夠被識(shí)別走FCoE查表轉(zhuǎn)發(fā)的流程。

      圖8 N端口TT階段入方向Program選擇

      圖9是驅(qū)動(dòng)記錄的Fips軟件表項(xiàng),相應(yīng)的MAC id、VLAN id、Smac、Dmac、Action、Index、Mod、Port、Flag等字段的值都與預(yù)期的相符合。

      圖9 Fips軟件表項(xiàng)

      圖10為出方向選擇了正確的Program,證明端口設(shè)置正確。出方向Program正確才能夠保證正確的出封裝:NP端口報(bào)文改Smac不改Dmac;N端口報(bào)文改Dmac不改Smac。

      圖10 出方向Program選擇

      4 結(jié) 語(yǔ)

      隨著云計(jì)算與大數(shù)據(jù)的發(fā)展,數(shù)據(jù)中心的規(guī)模日益擴(kuò)大,企業(yè)對(duì)數(shù)據(jù)中心的要求日益劇增,F(xiàn)CoE為了解決網(wǎng)絡(luò)融合而提出,它的出現(xiàn)拉開(kāi)了下一代數(shù)據(jù)中心網(wǎng)絡(luò)的帷幕。NPV交換機(jī)的實(shí)現(xiàn)增加了融合網(wǎng)絡(luò)中交換機(jī)的數(shù)量,提升了融合網(wǎng)絡(luò)的容量?;贔CoE技術(shù)、NPV技術(shù)進(jìn)行了分析,在理論基礎(chǔ)上進(jìn)行了NPV交換機(jī)驅(qū)動(dòng)層路由表項(xiàng)的設(shè)計(jì)與實(shí)現(xiàn)。通過(guò)實(shí)驗(yàn)證明了設(shè)計(jì)的可行性,當(dāng)然現(xiàn)在的技術(shù)只能支持邊緣接入層的融合,接下來(lái)將進(jìn)一步實(shí)現(xiàn)核心層的融合研究,相信基于FCoE的NPV交換機(jī)的實(shí)現(xiàn)與改進(jìn)也將會(huì)推動(dòng)數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)的不斷發(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] 徐立冰, 騰云. 云計(jì)算和大數(shù)據(jù)時(shí)代網(wǎng)絡(luò)技術(shù)揭秘[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。曾穎霓,碩士生,主研領(lǐng)域:無(wú)線資源管理,網(wǎng)絡(luò)與交換技術(shù)。陳慶春,教授。聞廣亮,高工。

      TP393.05

      A

      10.3969/j.issn.1000-386x.2017.12.036

      猜你喜歡
      表項(xiàng)交換機(jī)報(bào)文
      基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
      汽車電器(2022年9期)2022-11-07 02:16:24
      一種改進(jìn)的TCAM路由表項(xiàng)管理算法及實(shí)現(xiàn)
      CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
      基于ARMA模型預(yù)測(cè)的交換機(jī)流表更新算法
      淺析反駁類報(bào)文要點(diǎn)
      修復(fù)損壞的交換機(jī)NOS
      使用鏈路聚合進(jìn)行交換機(jī)互聯(lián)
      SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項(xiàng)轉(zhuǎn)換的流表調(diào)度優(yōu)化
      ATS與列車通信報(bào)文分析
      PoE交換機(jī)雷擊浪涌防護(hù)設(shè)計(jì)
      华容县| 如东县| 巨野县| 尉犁县| 泗水县| 荆州市| 平南县| 岗巴县| 泰宁县| 开化县| 三穗县| 青川县| 乌海市| 满城县| 九江市| 紫阳县| 河曲县| 凤城市| 横山县| 华蓥市| 双牌县| 崇仁县| 积石山| 依兰县| 正安县| 同仁县| 厦门市| 广州市| 余姚市| 安多县| 新竹县| 诏安县| 昌邑市| 罗甸县| 搜索| 宜宾县| 双城市| 兰州市| 精河县| 广南县| 五家渠市|