“FCoE全解系列”之关键特性和技术分析
? ? ? 在前面文章中已經(jīng)講過,Fibre Channel over Ethernet(FCoE)是一個把Fibre Channel中的幀封裝到一個增強的以太網(wǎng)(Ethernet)中的傳輸協(xié)議標(biāo)準(zhǔn),它應(yīng)來組建存儲網(wǎng)絡(luò)。關(guān)于FCOE技術(shù)的介紹網(wǎng)絡(luò)上非常多資料,但大多都比較分散。本文通過幾個FCoE的技術(shù)細(xì)節(jié),將存儲網(wǎng)絡(luò)FCoE中必須要了解的知識進(jìn)行整理和總結(jié),方便小伙伴們學(xué)習(xí)和查閱。
???? FCoE旨在通過以太網(wǎng)直接傳輸光纖協(xié)議,讓存儲網(wǎng)絡(luò)中的數(shù)據(jù)可輕易跨越光纖和以太網(wǎng)的界限,通過同一種物理介質(zhì)(以太網(wǎng)絡(luò))進(jìn)行傳輸,同時保留了FC中的上層協(xié)議的特性,例如數(shù)據(jù)一致性,流控制等,但不使用原先光纖網(wǎng)絡(luò)的物理線路與接口。目的在于降低用戶在存儲網(wǎng)絡(luò)構(gòu)建和管理方面的成本和復(fù)雜性。
? ? ? 但是FCoE和FC協(xié)議又存在很多區(qū)別,如FC協(xié)議是運行在傳統(tǒng)的FC SAN的存儲網(wǎng)絡(luò)中。而FCOE則是運行在以太網(wǎng)的存儲協(xié)議。FC協(xié)議是運行在FC網(wǎng)絡(luò)中,所有的報文都是運行在FC通道中。在以太網(wǎng)中存在各種協(xié)議報文,有IP,ARP等傳統(tǒng)以太網(wǎng)協(xié)議,而FCOE是運行要在增強以太網(wǎng)中需要創(chuàng)建一個虛擬的FC通道來承載FCOE報文。
? ? ? FCOE保留了FC-2以上的協(xié)議棧,把FC中的FC-0和FC-1用以太網(wǎng)的鏈路層取代。因為FC的FC-0作用是定義承載介質(zhì)類型,FC-1作用是定義幀編解碼方式,這兩層是在FC ?SAN網(wǎng)絡(luò)傳輸時需要定義的方式。而FCOE是運行在以太網(wǎng)中,所以不需要這兩層處理,而是用以太網(wǎng)的鏈路層取代這兩層處理。
? ? ? FCOE和FC的幀結(jié)構(gòu)唯一不同的就是FCOE就是在FC幀外層在封裝上一層以太網(wǎng)報頭。實際上,FCoE的優(yōu)勢顯而易見,下面也簡單總結(jié)下。
? ? ? 部署FCoE以后,企業(yè)只需要使用以太網(wǎng)絡(luò)構(gòu)建數(shù)據(jù)中心的網(wǎng)絡(luò),而不是原來使用光纖網(wǎng)絡(luò)和以太網(wǎng)絡(luò)進(jìn)行結(jié)合。同時減低線路的總數(shù),主機(jī)端接口卡(HBA,網(wǎng)卡)等的總數(shù)。而這兩者會被集成為同一個接口設(shè)備?–融合網(wǎng)卡Converged Network Adapter(CNA)用來同時處理FC協(xié)議和TCP/IP協(xié)議,從而保證在同一個主機(jī)接口上對存儲網(wǎng)絡(luò)和IP網(wǎng)絡(luò)進(jìn)行隔離。
? ? ? 另外,未來FCoE可能會提供相比FC網(wǎng)絡(luò)更大的帶寬,FCoE目前起始就是用10 Gb的以太網(wǎng),而40 Gbps和100 Gbps的以太網(wǎng)也已經(jīng)推出,相對FC網(wǎng)絡(luò)方面,8Gb和16Gb是主流,最新的32Gb也剛剛出現(xiàn),但相對也在起步階段的100Gb以太網(wǎng)來說還是稍遜不少。
? ? ? 由于以太網(wǎng)是可以容忍網(wǎng)絡(luò)丟包的,但是FC協(xié)議不允許出現(xiàn)丟包,那么FCOE做為以太網(wǎng)中傳輸?shù)腇C協(xié)議來說同樣是繼承了這點特點不允許丟包。所以想要FCOE協(xié)議可以正常的運行在以太網(wǎng)絡(luò)中就需要對以太網(wǎng)做一定的增強來避免丟包?,這種以太網(wǎng)叫增強型的以太網(wǎng)。
? ? ? 由于FCOE是運行在以太網(wǎng)中的存儲協(xié)議,要讓FCOE能正常的運行在以太網(wǎng)中,就需要FIP初始化協(xié)議來獲取FCOE運行的相應(yīng)vLAN,與哪個FCF建立虛通道,和虛鏈路的維護(hù)等。所以從這方面來講FCOE比FC多了一個FIP的初始化協(xié)議?。?
? ? ? 簡單的說FCOE協(xié)議就是指FC協(xié)議承載在以太網(wǎng)上的一種新型的協(xié)議,那么要讓FC協(xié)議正常的在以太網(wǎng)中運行,需要協(xié)商一些參數(shù)以便更好的在以太網(wǎng)上運行。FIP的作用就是協(xié)商這些參數(shù)。FIP初始化協(xié)議是FCoE控制平面相對FC控制平面新增的協(xié)議,協(xié)商過程包含四個階段,即vLAN發(fā)現(xiàn)、FCF發(fā)現(xiàn)、虛鏈路建立、虛鏈路維護(hù),這四個階段主要完成以下功能如下圖所示。
第一階段vLAN發(fā)現(xiàn)
? ? ? 在FCOE網(wǎng)絡(luò)中需要將FCoE的VSAN映射到指定一個專用VLAN中,而VLAN發(fā)現(xiàn)階段就是獲取FCoE流量所使用的VLAN。
? ? ? 服務(wù)器Node節(jié)點發(fā)送一個目標(biāo)MAC為組播地址vLAN Discover Request報文,本地所有FCF(FCOE交換機(jī))都會監(jiān)聽到這個MAC地址,并對該FIP VLAN Discovery 進(jìn)行響應(yīng),響應(yīng)報文中攜帶了FCOE協(xié)議可以使用VLAN信息。獲取FCoE流量所使用的VLAN;
第二階段FCF發(fā)現(xiàn)
? ? ? 這個階段的作用是發(fā)現(xiàn)本地所有的FCF優(yōu)先級最高的設(shè)備并與其建立虛鏈路。經(jīng)過上一階段vLAN發(fā)現(xiàn)后,從這個階段開始,FCoE報文所攜帶的vlan就是上面協(xié)商的vLAN ID。
? ? ? 服務(wù)器Node節(jié)點發(fā)送一個目標(biāo)MAC為組播地址Soliciation 報文,本地所有FCF(FCOE交換機(jī))都會監(jiān)聽到這個報文,并對其回應(yīng)一個Nnicast Advertisement報文,這個報文中攜帶了FCF優(yōu)先級,FCF MAC等信息。Node節(jié)點收到多個Advertisement報文之后,會選擇一個優(yōu)先級最高的設(shè)備與其建立虛鏈路。這里要注意的是FCF也可能定期的發(fā)送組播Advertisement報文。
第三階段虛鏈路建立
? ? ? 這個階段是用于建立虛鏈路vLINK。FCOE與FC不同,需要在以太網(wǎng)通道中建立一個虛擬的FC通道用于傳輸FCOE報文。這個階段有兩種情況。
-
如果服務(wù)器Node節(jié)點的接口是物理接口就使用FLOGIC報文進(jìn)行登錄
-
如果是服務(wù)器Node節(jié)點虛擬出的NPIV接口就使用Fdisc報文進(jìn)行登錄建立虛鏈路。
? ? ? 但是兩種情況的作用都是一樣的,建立虛鏈路,他們之間的區(qū)別是一個是物理接口使用的注冊報文,一個是虛擬接口使用的注冊報文。FCF收到Node發(fā)送的Flogic/Fdisc報文后,會回復(fù)一個確認(rèn)報文,報文中攜帶了分配給Node節(jié)點的FC_ID。所以實際上這個階段有兩個作用,一個是建立虛鏈路一個是分配FC_ID。
最后階段虛鏈路維護(hù)
? ? ? 同其他很多協(xié)議一樣,FCOE也需要一個機(jī)制來保活鄰居,這就是這個階段的作用。在建立虛鏈路后,就會啟動保活定時器,Node節(jié)點會定期發(fā)送Keeplive報文,默認(rèn)情況下8000ms發(fā)送一次Keeplive,當(dāng)2.5倍的Keeplive時間內(nèi)也就是20s內(nèi)FCF沒有收到Node節(jié)點發(fā)出的Keeplive報文,FCF認(rèn)為Node已經(jīng)掉線,會馬上發(fā)送clear vlink的報文,清除虛鏈路。
? ? ? 在FCoE數(shù)據(jù)傳輸?shù)?strong>每個節(jié)點上(網(wǎng)卡,交換機(jī))都需要啟用巨幀Jumbo Frame以支持封包以后的以太網(wǎng)幀的傳輸(以太網(wǎng)原來默認(rèn)幀最大1500字節(jié),傳輸FC幀需要2112)。不同的廠商的產(chǎn)品默認(rèn)的巨幀MTU有所不同,比如思科的Nexus默認(rèn)值是2158。
???? FCoE其實不能運行于普通的10/100Mb、1Gb和10Gb的以太網(wǎng)絡(luò),因為普通的以太網(wǎng)并不是Lossless Ethernet,它不包含任何重傳(重傳由上層的TCP協(xié)議控制)和流控制技術(shù), 保證傳輸?shù)裙δ堋?/p>
? ? ? 以太網(wǎng)使用到了一種叫做PAUSE的機(jī)制,PAUSE機(jī)制可以防止瞬時過載導(dǎo)致緩沖區(qū)溢出時不必要的幀丟失,實現(xiàn)了一種簡單的停-等式流量機(jī)制,來提高傳輸?shù)馁|(zhì)量。而原有的PAUSE機(jī)制在決定對特定端口進(jìn)行停-起的操作的時候并沒有一個優(yōu)先級的控制。
? ? ? 增強的以太網(wǎng)解決這個問題,在原有的以太網(wǎng)的基礎(chǔ)上增加了一些擴(kuò)展的協(xié)議機(jī)制,使得讓以太網(wǎng)更適合存儲網(wǎng)絡(luò)。這種控制機(jī)制主要包括以下幾種。
-
Priority Flow Control(IEEE 802.1Qbb)和Enhanced Transmission Selection(IEEE 802.1Qaz),它們的作用是可以對幀的傳輸優(yōu)先級進(jìn)行調(diào)整。例如將存儲網(wǎng)絡(luò)的幀的優(yōu)先級調(diào)高,獲得更高的帶寬,以保證存儲網(wǎng)絡(luò)傳輸?shù)乃俣群唾|(zhì)量。
-
Congestion Notification(IEEE802.1Qau)作用是對以太網(wǎng)中造成沖突的源和目標(biāo)端同時叫停的機(jī)制。
-
增強的以太網(wǎng)還提供了二層網(wǎng)絡(luò)的多路徑機(jī)制,替代原有Spanning Tree Protocol(STP)只支持單路徑。
?
? ? ? FC協(xié)議和FCOE協(xié)議雖然兩者是不同協(xié)議,但是他們之間還是有相應(yīng)聯(lián)系,FCoE仍然保留了FC中N_Port、F_Port、E_Port的結(jié)構(gòu)以及FC的管理模式,所以在上層處理和FC是沒有區(qū)別的。
?
-
N_Ports(HBA和存儲FC前端口)在FCoE中叫做VN_Ports(CNA和存儲FCoE端口)
-
F_Ports(Fabric端口)在FCoE中叫做VF_Ports(FCoE交換機(jī)的端口)
-
E_Ports(FC交換機(jī)到FC交換機(jī))在FCoE中叫做VE_Ports(FCoE以太網(wǎng)交換機(jī)互聯(lián)的端口)。
???? 如果你的企業(yè)在以太網(wǎng)上部署存儲且規(guī)模不是很大,iSCSI和NAS分別是在B塊和文件端很好的選擇。如果您的企業(yè)已經(jīng)有更大規(guī)模的存儲網(wǎng)絡(luò),在新建基礎(chǔ)架構(gòu)的情況下,使用融合的FCoE網(wǎng)絡(luò)可以同時兼顧塊和文件存儲,10Gb的速度可以同時用來支持FCoE,iSCSI,NAS業(yè)務(wù)數(shù)據(jù),實際上,以太網(wǎng)的高速發(fā)展也會使得企業(yè)在部署FCoE上也取得了一些成效。
相關(guān)閱讀
-
“FCoE全解系列”之增強型以太網(wǎng)技術(shù)
-
“FCoE全解系列”之網(wǎng)絡(luò)融合交換機(jī)類型
-
“FCoE全解系列”之融合方案和典型組網(wǎng)
溫馨提示:
請搜索“ICT_Architect”或“掃一掃”下面二維碼關(guān)注公眾號,獲取更多精彩內(nèi)容。
專注做一個有情懷的技術(shù)分享平臺
總結(jié)
以上是生活随笔為你收集整理的“FCoE全解系列”之关键特性和技术分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Telegram正式推出TON区块链测试
- 下一篇: 首家试水企业微信客户社群运营的春秋航空,