天天看點

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.6統一資料中心光纖

透徹了解l2技術演化的實質後,我們該接着進入到下一課程—光纖子產品。從私有雲計算以及soi角度出發,我們在該子產品所獲得的東西是dc光纖的統一。換句話說,也就是以太網和fc必須形成一個完整的光纖而非兩個互相孤立的互聯。為了實作該目标,必須對互聯技術做一定優化或擴充。

自2008年10千兆以太網(10gb ethernet,10ge)問世以來,帶寬的增加使得建設dc時,能夠通過更少的鍊路傳輸更多的資料,提高了系統整體吞吐量。但是單憑高速10ge鍊路并不能超越fc,隻有“無損”的以太網才能夠與fc平分秋色。目前以太網對fc的某些特性進行了改造,包括基于優先級的流控制(priority-based flow control,pfc)、增強傳輸選擇(enhanced transmission selection,ets)帶寬管理、資料中心橋接交換(data center bridging exchange,dcbx)的恢複協定以及量化擁塞通知(quantized congestion notification)算法。而另一方面,fc借助fcoe技術已經擴充到新一代“無損”以太網領域,所有這些進化技術一起,促成了未來統一dc光纖的誕生。

目前,10ge(基于ieee 802.3ae)技術日趨成熟,它對現代dc的重要性更是毫無疑問。10ge将是互聯子產品(參見圖2-2)中dc光纖融合,或者諸如fc這樣異構光纖融合,非常重要和基礎的部分,任何希望建立一種無處不在的統一光纖應用都必須借助以太網,是以以太網是融合的方向且再沒有其他方法。

10ge減少了伺服器所需的千兆以太網擴充卡數量,改變了dc部署的規模。随着網絡帶寬的增加,現在已經能夠實作對dc lan存儲網絡的整合(更多詳細内容請參考2.6.3節)。使用者已經開始感受到從ge或ge端口通道遷移到10ge的優勢,包括:

增加了諸如iscsi(更多詳細内容,請參考第7章有關“iscsi”技術的内容)這類基于ip的存儲通路的部署靈活性。

優化了nas性能。

借助10ge接入層上行鍊路,可以預先得知ge端口通道的實作方案,因而降低了對ge端口部署時通常必需的負載平衡雜湊演算法的要求。

改善了伺服器備份以及恢複的效率。

多核處理器架構允許同一機器承受更大和多樣的負載,而伺服器虛拟化要求每個伺服器能夠得到更多的帶寬,是以,多核cpu以及伺服器虛拟化也受益于10ge所帶來的額外帶寬。例如,套接字的大小經常會對應用造成影響,通過虛拟化伺服器,單個vm網絡傳輸将被彙聚到同一nic上,此時,就可以利用10ge。另外,vmotion遷移(動态vmotion遷移)可以利用帶寬增加的優勢同時完成多個vm之間的vmotion遷移。不管怎樣10ge也最适合fcoe,因為它借助高帶寬的優勢彌補了以太網和fc之間的差距。

說明:以太網演化并未終止于10ge,ieee 802.3ba已經準許了40ge及100ge的标準。

僅憑10ge是不足以抗衡fc的,因為長幀在fc的世界中不受歡迎。是以,除了有高速帶寬的支援外,以太網還必須具備無損性。不過真的能實作以太網的無損嗎?答案是“可以”,不過要借助下列内在機制:

基于優先級的流控制(priority-based flow control,pfc)

延遲删除

增強傳輸選擇(enhanced transmission selection,ets)

資料中心橋接交換(data center bridging exchange,dcbe)

擁塞通告

基于優先級的流控制

fc是不允許出現幀丢失現象的,它使用信用的概念來實作無損控制,在fc鍊路初始化時,會對每個鍊路的緩存數進行預定義,以便每個鍊路的終端能夠跟蹤可得或未被占用的緩存,這樣的鍊路級流控制在fc中稱為緩存到緩存(buffer-to-buffer,b2b)流控制。b2b流控制可以控制fc幀的傳輸速率,能夠防止傳輸量超過接收者的緩存範圍。b2b流控制使用緩存到緩存信用數(buffer-to-buffer credit,bb_credit)作為調整幀傳輸速率的單元,每發送一個幀,相應可用的bb_credit都将減1。而另一方面,每收到一個接收者就緒(receiver-ready,r_rdy[27])信号,相應的bb_credit又将加1,使得可以繼續發送其他幀。當bb_credit的值變成0時,就意味着除非收到新的r_rdy信号,否則發送端将中斷幀發送。以太網則借助pause幀(基于ieee 802.3x)來達到這一目标。當接收端口(接收者)的緩存将耗盡時,它将發出一個pause幀來阻止遠端peer(傳輸者)繼續發送,圖2-18上部對pause幀進行了說明。但是pause幀機制是對整個鍊路進行一個pause操作,不能展現粒度差别,當發送者接收到一個pause幀後,它将停止該端口所有的傳輸行為,這樣也并不符合統一dc光纖的目标。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.6統一資料中心光纖

基于ieee 802.1qbb标準的pfc是對pause機制的增強,它在pause幀中增加了一個域來辨別将對哪一個優先級别(ieee 802.1p可以設定8個級别)進行pause操作。換句話說,pfc在實體以太網鍊路上建立了8個單獨的“虛拟鍊路”,任意一條虛拟鍊路都可以自主地被停止和重新開機。新增的優先級粒度允許我們為鍊路上不同的協定傳輸設定不同的服務等級(classes of service,cos)。例如,像fcoe(更多有關fcoe的詳細内容,請參考2.6.3節的相關内容)這樣的協定,要求媒體級别的可靠性,不能容忍幀丢失,是以可以被映射到無丢失(有pause)等級,而諸如ip這樣的協定能夠接受盡力而為型的幀傳送效率,就可以被映射到可丢失(無pause)等級。

圖2-18底部展示了一個簡化的pfc樣例,該樣例中隻設定了兩個等級:ip傳輸為cos 0等級,fcoe傳輸為cos 3等級,隻有fcoe對應的cos(優先級為3)才啟動了pause幀,ip傳輸屬于另外一個cos等級,不會受到pause的影響。如果出現擁塞,不會對屬于cos 0級别的溢出幀進行pause控制,這些幀會被簡單丢棄,ip傳輸不要求無損以太網因為tcp或更進階别協定(如果使用了udp)将會處理ip包丢失問題。

說明:pfc幀的以太域類型值為0x8808(與pause幀的以太域類型值相同),opcode的值為0x0101(pause幀的opcode值為0x0001)。

由于pfc将緩存需求傳回給資料源,是以它不會區分網絡流量的暫時性突發與長期擁塞。延遲删除位于傳統以太網與pfc控制中間,它是另外一種以太網強化機制,差别在于:對于暫時性網絡流量突發,延遲删除将采取pause或pfc機制來減小幀丢失;而在處理長期擁塞時,則會通過幀丢棄觸發更上一層擁塞控制,使得系統中隻會存在短期流量突發,而不再有長期擁塞。

延遲删除可以采用每使用者優先級激活,它使用代理隊列來衡量網絡流量突發的時間,在正常操作中,代理隊列将效仿實際隊列進行幀的增加或删除,當出現網絡流量突發并導緻實際隊列達到特定門檻值時,系統将向資料源發送一個pause或pfc幀,此時,容量遠超過實際隊列的代理隊列将繼續接收幀,當代理隊列也被填滿後,系統将告知發送者釋放pause或pfc幀,此時,如果擁塞仍在持續,就會造成幀丢失,發生這一現象時,系統将觸發tcp流量控制以保護長久流。

在出現暫時性網絡流量突發狀況時,實際及代理兩條隊列都應該快速消耗掉緩存空間以便實際隊列自己能夠釋放pause幀;如果出現持續擁塞,代理隊列将貢獻出所有緩存空間,并釋放pause幀。此時,實際隊列将開始丢棄幀,并通過上層協定解決擁塞。借助延遲删除,在特定一段時間内可以使用指定的cos流控制機制,如果超過該時間段,擁塞還依然持續,就可以采用傳統的抛棄處理方法。延遲删除能夠配合pfc一起對“短期擁塞”進行調節,而不必是以增加接口的實體緩存。

增強傳輸選擇

pfc可以在一條實體鍊路上建立8個不同的虛拟鍊路類型,基于ieee 802.qaz的ets能夠啟動對這些虛拟鍊路的帶寬管理,它是對pfc的一個補充。ets提供了基于帶寬配置設定及延時的優先級處理,即根據幀的優先級将它們配置設定到不同的組中,然後按照一定比例将實體鍊路的最大可得帶寬配置設定給這些組,ets的目的是實作一個帶嚴格優先級高效的兩級硬體虧損權重輪循(deficit weighted round robin,dwrr)[28]排程算法。

圖2-19展示了三類不同的應用傳輸:程序間通信(inter-processor communication,ipc)、lan及san(例如fcoe),這些應用傳輸類型擁有不同的優先級變量或cos,比如,ipc的cos為7,lan傳輸包括了cos 0、1、4~6,而san傳輸包括cos2和cos3。ets不會關注有多少可得的傳輸等級,而是會将這些傳輸分成不同的優先級别組(priority group,pg),并為每個小組配置設定一個優先級組id(priority group id,pgid)。在我們給出的樣例中,san傳輸等級(cos 2和3)被映射到pgid 0,lan傳輸等級(cos 0、1、4~6)被映射到pgid 1,而ipc(cos 7)的pgid則為15。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.6統一資料中心光纖

第一級排程在每個pg内部完成,第二級排程則基于配置設定給每個pg的帶寬(bandwidth,bw)進行。本例中,50%的實體鍊路可得帶寬被配置設定給了pgid 0,剩下的50%配置設定給了pgid 1,pgid 15是一個具有特殊意義的優先級組标号,它意味着該優先級組不受帶寬限制,任何被映射到pgid 15的優先級都會使用嚴格的優先級排程(不由ets負責),本例中ipc(cos 7)就屬于這一類。

說明:pgid的範圍為0~15,pgid為15的優先級組不能夠配置設定任何pg%,屬于這一組的優先級不受帶寬限制,pgid 8~14的值屬于保留值,0到7之間(包括7)的pgid必須用作帶寬配置設定(或限制)配置。

資料中心橋接交換

基于ieee 802.1qaz的dcbx是ieee 802.1資料中心橋接(data center bridging,dcb)的管理協定,屬于鍊路層發現協定(ieee 802.1ab),支援以太網參數的自動交換以及交換機與終端之間的發現功能。可以被交換的以太網擴充和特性參數包括:

pfc

ets中的優先級組

應用(例如fcoe)

邏輯下行鍊路

網絡接口虛拟化

dcbx能夠發現鍊路兩端裝置的能力,并檢測裝置配置是否比對,如果兩端裝置中有一個裝置未配置同時也支援端到端的配置,dcbx可以對該裝置進行基本配置。兩端裝置可以選擇希望支援的特性,以及是否接受另一端裝置的配置參數。簡而言之,dcbx協定有助于保持鍊路配置的一緻性,并降低了新以太網擴充功能配置開銷,dbcx可以提供以太網功能強化,但同時配置開銷更低,錯誤也更少。

無損以太網有可能産生“傳染性”擁塞,蔓延到整個網絡,并導緻有害的線頭(head-of-line,hol)[29]阻塞,某些形式的l2端到端擁塞通告協定能夠緩和這一問題。

ieee 802.1qau體系使用量化的擁塞通告(quantized congestion notification,qcn)來定義擁塞點(congestion point,cp)以及重新開機點(reaction point,cp)。在模型中,在擁塞點測量擁塞規模,在重新開機點進行限速或背壓,以控制傳輸規模,降低擁塞的影響。rp應該盡可能地接近擁塞源頭,當産生擁塞時,cp(發生擁塞的彙聚層交換機)将向擁塞源以及rp發出通告消息,告知其目前的擁塞狀态,當接收到擁塞通告消息後,位于rp的限速器或流量控制器将開始工作,減緩網絡的傳輸速率。擁塞通告的目的是将發生在網絡核心區的擁塞轉移到網絡邊緣,以避免擁塞蔓延到網絡其他部分。在網絡邊緣進行擁塞控制相對容易些,因為網絡邊緣的流量遠低于網絡核心區,這意味着在網絡邊緣更容易确定并限制那些引起上行通道擁塞的網絡流。

說明:擁塞通告消息包含了一個回報品質,采用一個6位數對其“量化”,“量化”擁塞通告也是源自于此。

如圖2-20所示的一台彙聚層交換機,類似cp的功能,向兩台接入層交換機,此處為rp,發送擁塞通告消息,要求它們降低網絡傳輸的速率,以緩和網絡核心區域的擁塞,防止它蔓延到全網範圍,而隻會對接近擁塞源附近的區域造成影響。

說明:qcn信号與pause之間的差别在于pause是從一跳到下一跳,而qcn擁塞通告消息是端到端的,這些擁塞通告消息被傳播到擁塞源頭,mds交換機在fc上實作了一個類似機制,稱為光纖通道擁塞控制(fibre channel congestion control,fcc)。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.6統一資料中心光纖

有了10ge,再加上無損以太網的擴充功能,現在以太網已經有可能與fc分庭抗禮了,但是還存在一個問題:如何整合fc及新型無損以太網來建立一個統一dc光纖呢?答案就是fcoe。

fcoe以incits t11光纖通道骨幹(fibre channel backbone,fc-bb-5)标準為基礎,它能夠獨立本地以太網轉發機制,将本地光纖通道映射到以太網上。fcoe本質上是通過以太網發送本地fc幀,同時保留了所有fc的結構,確定現有fc管理方式保持不變,對操作的影響也降至最低。換句話說,fcoe能夠對任何現有本地fc san環境進行互換操作,避免了完全翻新式更新。fcoe依靠由無損以太網支撐的可靠的底層網絡互連,借助在同一實體線纜上傳輸不同類型的應用資料(例如,fc和以太網),fc實作了漸進式的i/o整合及i/o統一方法。從長遠看,存儲子產品中的伺服器子產品(參見圖2-2)除了借助直接本地fc接入通過互連點b通路fc san,也應該能夠通過互連點a利用fcoe直接通路fc san。

為什麼不使用iscsi呢?更推薦使用fcoe的主要原因是受dc整合的影響。如果是從零開始建設dc,無疑iscsi是最理想的選擇,但大多數公司已經投資并建設好了本地dc接口,是以他們對漸進式方法更感興趣。iscsi使用了與現有fc不同的scsi指令映射,将本地fc與iscsi進行整合時要求采用狀态網關功能,會帶來單點故障、有限可擴充等問題。此外,現有fc管理模式也必須更改成其他不同模式。為了實作整合,将現有dc完全改造成全iscsi是不太可能的,從這點看,漸進式方法更為通用,是以fcoe更有希望。而對于中小型商務市場(small to medium business,smb)領域,在建設新的dc時,iscsi仍然是無可替代的選擇,同時對純ip san而言,iscsi也是一個不錯的候選方案(更多有關iscsi的詳細内容,請參考本書第7章)。

2.6.4fcoe資料平面

fcoe實際包含兩個不同的協定:fcoe協定及fcoe初始化協定(fcoe initialization protocol,fip)。fcoe協定負責管理資料平面,fip則屬于控制平面協定。本節将探讨fcoe資料平面,更多fip的内容請參考2.6.5節。

圖2-21展示了一個簡化的fcoe元件及架構:

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.6統一資料中心光纖

fc實體(fc entity):fc交換機元素(屬于fcf)或fc棧(屬于enode)與fcoe實體之間的接口,每個fc實體包括一個單一執行個體,可以是ve_port、vf_port或vn_port。

fcoe實體(fc entity): fc實體與無損以太網mac之間的接口,每一個fcoe實體包括一個或多個fcoe_leps。

fc交換機元素(未在圖中顯示):屬于體系結構實體,負責轉發vf_ports與ve_ports之間的fc幀。

無損以太網橋接元素(未在圖中顯示):以太網橋接子產品,支援無損以太網mac的基本功能。

無損以太網mac:全雙工以太網mac,支援至少2.5kb的巨幀,并且具備擁塞擴充功能,能夠避免丢失以太網幀(更多細節,請參考2.6.2節的相關内容)。

無損以太網網絡:由全雙工鍊路、以太網mac以及無損以太網橋接元件組成的以太網網絡。

虛拟f_port(vf_port):fc實體中模仿f_port的資料轉發元件,在flogi交換成功完成後動态初始化,每一個vf_port都與一個或多個fcoe_lep配對。

說明:f_port(光纖端口)是fc互連内對n_port(節點端口)的附加端口。n_port通過光纖登入(fabric login,flogi)建立到光纖的會話,光纖隻接收那些完成登入的n_port幀。

虛拟n_port(vn_port):fc實體中模仿n_port的資料轉發元件,當flogi或fdisc交換成功完成後被動态初始化,每一個vn_port都與1個fcoe_lep配對。

說明:n_port是fc節點端口,是fc的連接配接點。n_port id虛拟化(n_port id virtualization,npiv)使用了發現光纖服務參數(discover fabric service parameter,fdisc),向光纖登入位址0xfffffe發送一個請求以獲得一個新的n_port id。

虛拟e_port(ve_port):fc實體中模仿e_port進行資料轉發的元件,當elp交換完成後被動态初始化,每一個ve_port都與一個fcoe_lep配對。

說明:e_port(擴充端口)是fc交換機中通過内部交換機鍊路(inter-switch link,isl)連接配接另一個fc交換機的端口。交換鍊路參數(exchange link parameter,elp)是fc交換機内部鍊路服務參數,用于交換機端口之間服務參數交換。

fcoe鍊路端點(fcoe_lep):fcoe實體的資料轉發元件,負責fc幀封裝/解封以及通過單個虛拟鍊路發送/接收封裝後的幀。en_node的fcoe_lep僅支援vn_port,而位于fcf的fcoe_lep既支援vf_port,也支援ve_port。

fcoe控制器:功能實體,與無損以太網mac一起工作。與enode相關的fcoe控制器其主要功能為執行個體化新的vn_port并/或生成新fcoe_lep;而與fcf-mac相關的fcoe控制器其主要功能為執行個體化新的ve_port并/或生成新fcoe_lep。

fcoe終端節點(enode):fcoe終端節點是一個帶有一個或多個無損以太網mac的fc節點,每一個節點都配備了一個fcoe控制器,它實際上是以太網nic内的fc hba,通常被稱為cna(聚合網絡擴充卡),有兩種“版本”的cna:

第一代(gen-1)cna:标準fc hba與10ge nic通過一種中間“膠合”asic連接配接在一起,在os看來,cna由兩塊獨立的擴充卡,fc hba以及以太網nic組成,cna無需改造就可以繼續使用現有fc及以太網驅動器,gen-1類型的cna通常不具備fip功能,是以被稱為pre-fip。

第二代(gen-2)cna:gen-2型cna是首先方案,它由單塊晶片構成,能夠相容fip。

fcoe轉發器(fcoe forwarder,fcf):fcf為fc交換元件,帶有一個或多個無損以太網mac,每一個都配備了相應的fcoe控制器。每個以太網mac擁有一個mac位址,稱為fcf-mac位址,可以為每個fcf-mac配置一無損以太網橋接元件。也可以為fc交換機元件配置fc光纖接口,實作本地e_port以及f_port的連通。如果以太網目的位址是一個fcf,該fcoe幀将被轉發至相應的fcf-mac位址,然後由fcoe_lep對封裝了的fc幀解封,fc交換機元件将基于其相應的fc目的位址或fc目标id(destination id,did)轉發解封後的fc幀。如果該fc幀需要經過一個以太網端口被轉發出去,系統會将該fc幀封裝在一個以太網幀中,附帶以太網源位址與fcf-mac的關聯,以及以太網目标位址集與到正确目标mac的映射等資訊。fcf的功能本質上與帶有一個或多個以太網端口的fc交換機類似,fcf也可以選擇本地fc端口。

說明:如果fcf配備的是本地fc光纖接口,那些目标位址為本地fc的幀将被當做本地fc幀通過本地fc端口經由相關fc鍊路轉發。如果fcf-mac配備了以太網橋(或以太網交換機),目标位址非fcf-mac的以太網幀被接受後,将通過以太網橋按正常方式轉發到相應的目标位址。

虛拟鍊路(virtual link):虛拟鍊路是在無損以太網上連接配接到兩個fcoe_lep的邏輯鍊路,如圖2-21所示,虛拟鍊路由兩個終端的mac位址對确定。也可以将虛拟鍊路看成無損以太網上的一條隧道,将封裝好的fc幀從源mac位址轉發至目标mac位址。

fc包含由fc-0~fc-4,5個不同功能級别的層次,fcoe中将fc-2級進一步細化成3個子級,如圖2-22左邊上部所示,以便能夠實作更靈活地虛拟化處理。

fc-4定義了包括scsi、ipv4及ipv6等不同上層協定(ulp)與fc的映射方式。

fc-3定義了跨越多個節點間可選的常用服務或功能。

fc-2v(fc-2—虛拟)定義了對fc幀處理,以支援上層應用。

fc-m(fc-2—多路複用器)定義了如何将fc-2p子級執行個體的fc幀切分成fc-2v子級執行個體。

fc-2p(fc-2—實體)定義了底層實體媒體實際發送及接收幀的相關功能,包括幀發送及接收、crc[30]生成及校驗以及鍊路級别(緩存到緩存)流量控制。

fc-1定義了傳輸協定,包括連續編碼、解碼及錯誤控制。

fc-0定義了系統的承載媒體類型。

fc-2p、fc-1以及fc-0級别定義fc實體端口功能和行為說明,這些端口包括實體n_port(physical n_port,pn_port)、實體f_port(physical f_port,pf_port)以及實體e_port(physical e_port,pe_port)等。在fcoe環境中,如圖2-22右邊所示,這些功能則被fcoe_lep以及無損以太網代替了。fcoe能夠保證fc_2v以及其上更高層不受影響,也說明了對于os而言fcoe是透明度,系統可以延續一樣的fc操作及管理模型。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.6統一資料中心光纖

fcoe封裝如圖2-22底部所示,其中fcoe的以太類型為8906h。fcoe為無狀态封裝及接封裝備,不會影響實際fc幀,這也使得fcoe不需要網關就能與現有fc san內建。如果包括fcoe的幀檢驗序列(frame check sequence,fcs)一起,則fcoe幀最大不超過2180個位元組,如果不包括fcs,則最大不超過2176位元組,而為了能夠容納下最大尺寸的fc幀,fcoe要求采用至少2.5kb的小巨幀。fcoe同時也能夠滿足以太網規定最小有效載荷不超過46kb的限制:14位元組(fcoe頭)+24位元組(fc頭)+0位元組(fc有效負載)+4位元組(crc)+4位元組(fcoe trailer)。固定的fcoe頭及trailer字段保證了最小尺寸的fc幀總是能夠産生合法的最小尺寸以太網幀。

說明:fc幀首(start-of-frame,sof)定界符包含在fcoe頭中,幀尾(end-of-frame,eof)定界符包含在fcoe trailer字段中。

在本地fc環境中,n_port僅在連接配接到fc光纖的點到點鍊路上發送flogi消息。在fcoe中,enode需要知道fcf的mac位址才能執行flogi,以太網采用多路通路媒體,是以fcoe使用vn_port與vf_port之間的點到點虛拟鍊路來模仿本地fc環境。不過,通過手工配置來完成vn_port與vf_port之間的fcoe虛拟鍊路建設非常麻煩,如果能交給協定來完成就太好了。這也是fip大顯身手之處。fip幀的概念與fcoe幀不同,它采用8914h以太類型封裝在以太網幀中。fip屬于fcoe控制平面,是以fip以太類型的幀将直接發送至以太網交換機(支援fcoe)以進行處理或攔截,而fcoe以太類型的幀将立即轉發到資料平面。fip能夠在資料平面fcoe資料轉發開始之前,完成以下屬于控制階段的任務:

發現fcoe vlan;

發現fcoe實體;

初始化虛拟鍊路;

維護虛拟鍊路。

發現fcoe vlan

fcoe vlan發現協定使用了fip vlan請求以及fip vlan通告操作,協定由enode mac或fcf-mac發起,fip vlan請求則借助任一可得(或預設)的vlan傳送。目标mac位址為“all-fcf-mac”多路通路位址,源mac位址為發送者的enode mac或fcf-mac位址。支援fip vlan發現協定的fcf會監聽所有vlan上的fip vlan請求,fip vlan通告消息将會向請求fcoe操作的發起者傳回所有可得vlan的清單。

說明:每個虛拟san(vsan)的fcoe傳輸應使用不同的vlan,這樣管理者就能确定該vsan上的fcoe傳輸,并且在以太網上對其進行管理。fcoe vlan也應該僅為特定fcoe傳輸服務,即不應該再負責諸如ip等其他傳輸。

發現fcoe實體

當fip發現fcoe vlan後,就該enode以及fcf借助fip發現協定,通過fcoe vlan來發現彼此了。fip發現協定支援enode發現fcf,以便建立vn_port到vf_port之間的虛拟鍊路,也支援fcf發現enode,以建立vf_port到vn_port之間的虛拟鍊路。在鍊路建立過程中,enode和fcf都會使用發現邀請消息,fcf還會使用發現廣播消息。

說明:fcf能夠發送和接收發現邀請消息以及發現廣播消息,enode隻能發送發現邀請消息,并接收發現廣播消息。

虛拟鍊路初始化

一旦enode發現了可得的fcf-mac,就會執行fip flogi以建立與fcf-mac之間的虛拟鍊路,并要求獲得一個fc位址(類似n_port_id或fc_id)。當順利完成flogi後,與fcf-mac相關的fcoe控制器将會為該鍊路初始化一個vf_port以及一個fcoe_lep,而enode上的fcoe控制器将會為鍊路初始化一個ve_port以及一個fcoe_lep。接下來的資料操作将使用fcoe協定以及普通的封裝fc幀。

說明:在npiv應用中,enode能夠發起一個fip npiv fdisc(類似fip flogi)以獲得額外的n_port_id,當某個已登入的enode發起并與fcf-mac相關的fcoe控制器成功完成fip npiv fdisc交換後,fcoe控制器将會初始化一個額外的fcoe_lep。

另一方面,在fcf到fcd發現中,fcf-mac将會發送一個fip elp給其他fcf-mac,當成功完成elp交換後,每個fcf-mac的fcoe控制器也會未虛拟鍊路初始化一個ve_port以及一個fcoe_lep。

與ve_port以及vf_port相關的mac位址,源自fcf協定,是由ieee配置設定的全球唯一mac位址。vn_port能夠選擇兩類mac位址中的一種:伺服器提供的mac位址(server-provided mac address,spma)或光纖提供的mac位址(fabric-provided mac address,fpma)。如果使用spma,終端裝置(伺服器或存儲)将會為每個vn_port提供一個mac位址;如果使用fpma,fcf将會在fip登入過程中(fip flogi或fip npiv fdisc)為vn_port配置設定mac位址。推薦使用fpma方式,該位址包括24位fcoe mac位址字首(mac address prefix,fc-map)以及vn_port的24位fc_id的組合。例如,一個fc-map為0efc00h以及fi_id為040506h的位址組合在一起将産生一個值為0efc00040506h的fpma位址。

fc-map屬于組織唯一辨別符(organization unique identifier,oui),u/l位為1時表示其為本地位址,不具備全球唯一性,fc-map的推薦範圍為0efc00h~0efcffh(預設為0efc00h)。之是以要如此确定fc-map的範圍,是為了便于每個san可以配置設定不同的fc-map值,以確定能建立唯一的fpma,進而防止了兩個獨立的san光纖在整合時會發生位址沖突。由于fc_id是由san唯一确定的,是以所生成的新的fpma在san也是唯一的。

維護虛拟鍊路

在fcoe中,vf_port以及vn_port或者兩個ve_port之間的虛拟鍊路有可能跨越了多個以太網鍊路以及交換機,當某個中間的以太網鍊路或交換機發生故障時,fcoe端口有可能并不能直接發現出現故障的鍊路或交換機。因為在虛拟鍊路中,某段實體鍊路的故障狀态資訊并不足以指明目前是否已經無法通路遠端實體,是以需要啟動某些增強的故障檢測機制。fcoe控制器可以借助定時消息來完成虛拟鍊路的狀态監測任務。

說明:fcoe控制器通過接收到的fip發現消息并發送正确的fip心跳消息來監測相關enode中vn_port到vf_port間虛拟鍊路的狀态,而對于具備vf_port能力的fcf-mac,fcoe控制則是通過接收到的fip心跳消息并發送正确的fip發現廣播消息監測vn_port到vf_port間虛拟鍊路的狀态。如果是具備ve_port能力的fcf-mac,fcoe控制則是通過接收及發送fip發現消息監測ve_port到ve_port間虛拟鍊路的狀态。

對于enode,如果fcoe控制器能夠持續接收到來自fcf的周期性多點傳播發現公告,則認為該vf_port正常。如果連續錯過兩次多點傳播發現公告,則fcoe将認為該vf_port已經發生故障,并反執行個體化相關的vf_port/fcoe_lep對。在fcf裝置中,如果fcoe能夠持續接收到來自vn_port或enode的周期性單點傳播fip心跳消息,将認為該vn_port或enode工作正常。如果連續錯過兩次fip心跳消息,則fcoe将認為該vn_port或enode發生了故障,相關的fcoe_lep也将被反執行個體化處理。

說明:對于enode,當vn_port登出後,相關的vf_port/fcoe_lep對也将被反執行個體化。如果是具備vf_port能力的fcf-mac,當vn_port登出後,除非該fcoe_lep是唯一與vf_port相連的fcoe_lep,否則該vf_port/fcoe_lep也将被反執行個體化處理。

如果是ve_port與ve_port之間的虛拟鍊路,将使用主動多點傳播公告,此外,fcf會使用fip清理虛拟鍊路消息來顯示反執行個體化遠端vn_port或ve_port。

如果讀者認為前述fcoe内部工作機制過于複雜,希望本小節對你來說更容易了解一些,我們将在本小節讨論各類fcoe支援的i/o整合的過程和方案。當下的dc看起來與圖2-23左邊部分類似,存在以下局限:

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.6統一資料中心光纖

并行以太網lan以及fc san基礎設施均基于各種互連媒介和協定。以太網比fc更具“全球化”,而fc更具戰略意義,因為它涉及了伺服器i/o以及存儲通路問題。

伺服器多重連接配接存在很多問題,包括:

管理複雜度,包括:

統一dc光纖實施的第1階段(也是最實用的階段)為伺服器叢集與接入層整合,如圖2-23右邊所示。我們已經了解了大部分利用伺服器虛拟化技術(更多細節請參考2.3節)進行伺服器整合的方法,接下來的本小節将對多擴充卡整合進行探讨。讀者可以參照圖2-23兩部分進行“整合前後效果”比較。在階段1未實施之前,每個伺服器都配備了兩塊以太網nic以及兩塊fc hba。進行階段1整合後,将4塊伺服器擴充卡縮減到2塊cna。而dc lan以及san網絡流傳輸也可以在同一10ge線纜上完成,不再需要使用不同線纜(1根用于以太網,1根用于本地fc)。是以原來需要8根線纜,經過整合縮減成4根,提高了高速帶寬(10ge)鍊路的有效共享效率。

在接入層交換機這端,原來需要兩個tor以太網交換機以及兩個tor fc交換機,整合後被縮減到一對tor交換機—一對fcf(fcoe交換機),由此簡化了接入層及線纜,降低了系統總體擁有成本(total cost of ownership,tco)。同樣因為從彙聚層角度(或上層)看,現有已安裝好的lan及san基礎設施并未受到影響,保護了投資。現在由于所有伺服器i/o已經整合至fcoe,并直接連接配接到fcoe接入層的交換機,使得接入層獲得了操作一緻性。來自接入層fcf到彙聚層以太網交換機的上行鍊路也已經更新成10ge鍊路。盡管階段1仍然缺乏雲iaas所需的快速部署基礎設施(統一dc光纖),但人們依然期望它成為最常見的fcoe部署起步。

圖2-24展示了階段2部署。此時,焦點已經轉移到dc lan的分布或彙聚層。原來的彙聚層交換機被遷移到服務彙聚層,被當做外部服務機箱,提供dc服務(例如,防火牆以及伺服器負載平衡)。兩個彙聚層fcf被安排在原來彙聚層交換機的位置,負責将遺留的dc以太網lan改造成具備fcoe能力的無損以太網。階段2實施為通路存儲陣列提供了一定的自由及備援,既可以通過本地fc也可以借助無損以太網,使得我們離階段3廢除并行網絡基礎設施又近了一步。鑒于在階段2dc光纖已經實作了某種程度的統一,是以基礎設施部署會變得更加靈活,其tco成本也更低廉,而這也恰好是建立一個成功雲計算所需要的。按需求基本快速部署非常接近自适應soi,能夠響應漸變商務需求,因而推薦在雲iaas的光纖子產品(參見圖2-2)完成階段2。為了完成整個布局,服務機箱以及wan彙聚路由都通過10ge鍊路連接配接到這個“半統一”dc光纖上,更多有關dc服務彙聚以及未來wan的内容,請參考本書第3章。

圖2-25展示了fcoe部署的第3個階段,此時dc lan以及san已經實作了網絡範圍統一光纖,本地fc交換機與fc存儲陣列都被轉換成了fcoe i/o接入。完全的統一光纖實作了一緻的dc網絡協定,又進一步降低了tco。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.6統一資料中心光纖
《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.6統一資料中心光纖

盡管階段3是雲計算的理想場景,但某些技術仍然停留在測試階段,在短期和中期内無論是基于感情因素還是節約投資的原因,都不可能完全廢除現有的本地fc基礎設施,是以階段3也缺乏實際意義,但階段3依然是雲的理想目标,因為它代表了某些未來的目标。我們采取遞增式方法,首先完成第1階段的部署,緊接着完成第2階段部署,最後是階段3部署,實作最終目标。

從長遠發展看,人們期望雲iaas供應商能夠以他們自己的節奏從階段2發展進入到階段3,統一dc光纖最終有可能是階段1及階段2的混合,這将依賴于雲iaas服務對soi的迫切需求究竟有幾分。另一方面,新的企業dc建設可以直接進入第3階段,實作統一的光纖網絡基礎以便迅速推動私有雲計算服務發揮效用。更多有關fcoe的設計方案探讨請參考9.4節。

關于線纜的探讨

i/o整合對dc機架這一級帶來了怎樣的影響呢?擴充卡、交換機端口以及線纜需求的顯著縮減,大大降低了電力消耗、冷卻成本甚至裝置占用空間,契合了綠色it的初衷。線上纜接口這方面,已經從原來的小封裝可插拔(small form-factor pluggable,sfp)技術更新到能夠支援10gbps資料速率的sfp+收發器。sfp+面闆密度與sfp面闆密度相容,但能耗更低,更重要的是sfp+能夠向下相容sfp的光子產品。

為了使dc機架能夠适用于fcoe方案,推薦采用sfp+以及copper(cx-1)twinax型線纜,該類線纜體積小(直徑大約為6mm),能夠靈活地放置在機架内,進而簡化了線纜部署工作,縮短了部署時間。此外,線纜能耗更低,錯誤率基本可以忽略不計(10–15),更重要的是線纜成本較低。盡管線纜的距離限制為10米(33英尺),但已經足夠将伺服器的幾個機架(大約1~5個)連接配接到通用tor交換機上。

說明:盡管sfp+ cu twinax線纜規範允許的連接配接距離為10米,但線纜連接配接距離的可選範圍通常為1米、3米或5米。

機架技術

一個接入層構件被稱為一個pod(機櫃組),每個pod規定了連接配接到該網絡彙聚子產品的伺服器數量,為了便于子產品式組建,dc接入層被劃分成多個pod。pod内部伺服器連接配接由tor接入層交換機在機架層完成,交換機再連接配接到網絡彙聚層,這種方式有利于機架滾動式(rack-and-roll)部署,實作dc内快速伺服器服務。pod由伺服器機架構成,與下述具體機架技術無關:

列末(end-of-the-row)拓撲:列末拓撲将大型直接交換機裝置放置在每列伺服器機櫃的末端,因而需要大量線纜綁定在一起将伺服器機架連接配接到網絡機架。列末拓撲的主要優勢在于隻要配置少數連接配接點(交換機)就能控制很多伺服器端口。

架頂(top-of-the-rack)拓撲:架頂拓撲在每個伺服器機架頂部放置1個或2個機架單元(rack-unit,ru)接入層交換機裝置,實作每個機架之間伺服器的連通。因為減少了機架到末端交換機之間的線纜,是以架頂拓撲的線纜使用率要優于列末拓撲,但由于架頂拓撲需要占用更多的tor交換機,是以其管理負載要大于列末拓撲。

使用fcoe進行i/o整合縮減了伺服器所需的擴充卡數量,也減少了伺服器所需線纜數目,進而簡化了列末拓撲中對線纜的管理。由于fcoe已經将本地fc擴充到了以太網,不再需要單獨的tor fc交換機,換句話說,也就是隻采用一組同構的tor fcoe交換機即可,是以這也減少了架頂拓撲中對tor交換機的需求量。

圖2-26展示了一個經過簡化了的fcoe1階段(參見圖2-23)部署中采用的架頂拓撲,樣例中使用了12個伺服器,通過fcoe對i/o的整合,将總體線纜數從原來的56根縮減到現在的32根(縮減率大約為43%),單口擴充卡也從原來的48塊縮減到現在的24塊(50%的精簡),tor交換機從原來的4個減少到2個(50%的精簡)—從dc整合觀點來看不算壞,但如果放在私有雲計算環境下顯然很有優勢。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.6統一資料中心光纖

滾動式部署。更多有關tor架構及設計的内容,請參考9.5節的内容。

說明:如果使用雙口擴充卡,在進行fcoe階段1改造前,總共需要24個單元,而經過整合,所需單元數減少到12個。

繼續閱讀