天天看點

《思科資料中心I/O整合》一2.13 VEB:虛拟以太網橋接

本節書摘來自異步社群《思科資料中心i/o整合》一書中的第2章,第2.13節,作者【美】silvano gai , claudio desanti,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

思科資料中心i/o整合

很久以前,伺服器還隻有單一的cpu、一塊以太網網卡(帶有一個mac位址),并且運作在一個作業系統上。而現在,伺服器變得越來越複雜,它們可以擁有多個cpu晶片(例如,多個插槽),每一個cpu晶片都包含多個cpu(例如,多個cpu核心),而且每一個cpu都能夠并發執行一個或多個線程。這些伺服器具有很高的i/o要求,并且使用多個以太網nic連接配接網絡,用以保證性能和高可用性。這些nic會進一步得到發展,以便支援sr-iov和伺服器虛拟化。

伺服器虛拟化

伺服器虛拟化是唯一一種不需要修改/重寫應用程式就能夠使用全部核心的技術。vmware esx、linux xen和microsoft hyper-v都是非常出名的虛拟化解決方案,支援在一台伺服器上通過虛拟機管理程式(hypervisor)運作多個虛拟機(vm)。

虛拟機是一個邏輯伺服器執行個體,它的行為與獨立伺服器完全相同,但是它與其他虛拟機共享硬體資源,特别是在這裡讨論的網絡資源。

除了其他的功能外,虛拟機管理程式還使用“軟體交換機”子產品實作虛拟機之間的通信,實作了與獨立伺服器不同的模型。

獨立伺服器會通過專用交換機端口連接配接一台或多台以太網交換機(參見圖2-32)。應用到以太網交換機端口(如圖2-32中虛線所示)的網絡政策也能夠有效地應用到獨立伺服器上。

《思科資料中心I/O整合》一2.13 VEB:虛拟以太網橋接

虛拟機上運作的邏輯伺服器能夠連接配接虛拟機管理程式的軟體交換機子產品,然後再連接配接一台或多台以太網交換機(參見圖2-33)。應用到以太網交換端口(如圖2-33中虛線所示)的網絡政策并不一定有效,因為它們應用到了所有虛拟機上(例如,邏輯伺服器),且無法專門應用到某個特定的邏輯伺服器上。

根據源mac位址來指定這些政策并非特别有效,因為虛拟機所使用的mac位址由虛拟化軟體所配置設定,可能會發生變化。而且,系統也可能會受到mac位址欺騙攻擊,例如,虛拟機可能會試圖使用另一個虛拟機的mac位址。

《思科資料中心I/O整合》一2.13 VEB:虛拟以太網橋接

使用虛拟化軟體,系統管理者還能夠在不同實體伺服器之間移動虛拟機,這樣會增加網絡政策的管理複雜性。虛拟機的數量會遠遠大于實體伺服器數量,進而會引起可擴充性和可管理性問題。

sr-iov

pci-sig有一個小組在專門制定支援i/o虛拟化(iov)網卡的标準規範。其中關系最密切的是單根i/o虛拟化(single root iov,sr-iov),它能夠處理串行總線(pci express)中單根拓撲的i/o虛拟化。這種裝置允許多個虛拟機共享串行總線(pci-express)裝置,進而能夠工作在伺服器虛拟化環境下,還可能繞過虛拟機管理程式(hypervisor)。

ieee标準化程序

從ieee 802.1工作組建立以來,ieee一直都在進行以太網交換方面的标準化工作,最近,ieee決定擴充ieee 802.1,使之覆寫虛拟化以太網網橋(veb)。可以從以下兩個方面進行突破:

将政策實施和管理移到以太網擴充卡内部;

由以太網交換機攜帶虛拟機的身份辨別。

思科還開始開發一種名為vn-link的新架構,其中包括一些相容ieee标準的産品。

擴充卡veb

所謂“擴充卡veb”,是指在網卡(nic)上實作veb(參見圖2-34)。這就意味着,大型網卡(nic)制造商将會開始在他們的網卡中內建以太網交換機,使之具有增加網絡政策的能力。

《思科資料中心I/O整合》一2.13 VEB:虛拟以太網橋接

乍一看,這種解決方案似乎很吸引人,因為它不會改變網卡與以太網交換機之間鍊路上的幀格式,然而,它也有一些嚴重的缺點:網卡必須實作完整的以太網交換機功能,包括所有安全元件,這樣不僅會增加成本和複雜性,并且還會影響其他上層協定(ulp)特性的使用,如tcp解除安裝、rdma、fc/scsi、ipc隊列對等。

随着處理器功能的增強和記憶體容量的增加,虛拟機數量也随之增加,進而也會出現與所支援虛拟機數量相關的潛在擴充性問題,因為每一個虛拟機都需要使用網卡的硬體資源。

擴充卡veb在管理方面也存在問題。伺服器通常由it工程師管理,而網絡一般由另一組網絡工程師管理,而擴充卡中的veb要求這兩個小組進行協作,共同管理伺服器,這樣就會增加額外的營運開銷。

為了克服這些局限性,标準組織開發了交換機架構veb。

交換機veb

“交換機veb”解決方案将與性能密切相關的複雜資料尋址功能放到一台外部的以太網交換機上,如圖2-35所示。以太網交換機負責保證所有虛拟機的特性統一,使之不受它們所在位置的影響(例如,與邏輯伺服器所在的虛拟機管理程式或實體伺服器無關)。

《思科資料中心I/O整合》一2.13 VEB:虛拟以太網橋接

需要管理的交換機數量并不會增加,因為網卡内部并不存在交換機。網絡管理者并不需要管理伺服器元件。

通過改進資料移動和上層協定特性,如tcp解除安裝、rdma和fc/scsi,網卡設計人員可以使用現有的邏輯方法提高網卡到上層協定的性能。

這種方法需要在網卡和以太網交換機之間開發新的以太網标記模式,用來确定與幀相關的虛拟網卡(vnic)。思科率先提出了虛拟網卡标簽(vntag)模式。這是一種接口虛拟化(iv)模式,它能夠将虛拟機接口移到外部以太網交換機上,并将它們變成虛拟化接口。這種新型虛拟化接口即所謂的虛拟化以太網(veth),以太網交換機可以将它們視為實體端口。以太網交換機可以在veth上執行在實體端口上能夠執行的任何操作。

這種新标簽會将每一個虛拟網卡綁定到一個veth上,反之亦然。政策先應用到veth上,進而再應用到vnic上。這些政策包括通路控制清單(acl)、流量管理(例如,pfc和ets參數)、身份驗證和加密等。

這種新标簽比mac位址更難僞裝,因為它由nic或虛拟機管理程式插入到資料幀中,而不是由虛拟機插入。

當虛拟機從一台伺服器遷移到另一台伺服器時,它的vnic、veth和政策也會随之遷移。這樣就能夠保證特性與政策的一緻性,而不受虛拟機位置的影響。

這種方法的實作要求在網卡和以太網交換機之間使用一種控制協定,來建立、配置設定、修改和終止vnic與veth之間的關系。例如,當虛拟機從主機a遷移到主機b時,這個控制協定會負責終止主機a所連接配接的以太網交換機的vnic/veth,然後在主機b所連接配接的以太網交換機上建立這些vnic/veth。此外,veth的移動意味着相關政策也會随之發生移動。

在圖2-35中,nic包含一個接口虛拟器(例如,執行進出vnic幀排程的實體)。接口虛拟器并不是交換機(例如,兩個vnic之間不允許直接通信)。接口虛拟器隻允許一個vnic與以太網交換機進行通信,然後這個以太網交換機再與一個或多個vnic進行通信。

以太網交換機模型并沒有發生變化:以太網交換機僅僅是增加了端口數量(veth),每一個端口連接配接一個vnic。虛拟端口的以太網交換機功能并沒有發生變化。

vntag

vntag是一種以太網标簽,在mac-da和mac-sa之後被插入到以太網幀頭中(參見圖2-36),它的前面可能是ieee macsec(身份驗證與加密)标簽。

vntag将擴大以太網交換機的轉發能力,使之能夠運作于虛拟化環境中。事實上,如果源及目标mac位址來自于同一個端口,那麼傳統以太網交換機不會轉發該資料幀,是以它也無法在連接配接到同一交換機端口的兩台虛拟機之間轉發資料幀。vntag會為每一個虛拟機在交換機上建立虛拟以太網接口,進而能夠解決這一問題。由于交換機能夠在虛拟以太網接口之間進行流量轉發,是以它能夠在連接配接到同一個實體端口的虛拟機之間轉發流量。

vntag是一個6位元組标簽,其格式如圖2-37所示。在交換機veb和接口虛拟器之間會使用該标簽。它的主要概念是“vif ”(即虛拟接口辨別符),vntag中的vif是src_

vif(源vif)和dst_vif(目标vif)。

vntag開頭是兩個位元組的ethertype = vntag,用于辨別這種類型的标簽。下面是接下來的4個位元組。

《思科資料中心I/O整合》一2.13 VEB:虛拟以太網橋接

v:version:表示幀頭所帶vntag協定的版本,目前版本為0。

r:reserved:這是保留域。

d:direction:d = 0表示該幀從接口虛拟器發送到以太網交換機,d = 1表示該幀從以太網交換機發送到接口虛拟器(一個或多個vnic)。

dst_vif & p:pointer:當從以太網交換機向接口虛拟器發送資料幀時,這些域用來選擇接收資料幀的下行鍊路接口。顯然,當d = 1時,它們才有效;當d = 0時,這些域也必須設定為0。

p = 0表示dst_vif選擇一個vnic,通常用于轉發單點傳播幀。

p = 1表示dst_vif是虛拟接口清單表的索引,這種情況用于多點傳播幀的傳輸。

src_vif:表示發出該資料幀的源vnic。從接口虛拟器轉發到以太網交換機(d = 0)的所有幀都必須設定src_vif。此外,轉發到接口虛拟器的幀可以設定src_vif以表示環路。

l:looped:表示以太網交換機将資料幀回送到發出該幀的接口虛拟器。在這種情況下,接口虛拟器必須保證設定src_vif的vnic不接收這個幀,因為該資料幀是它自己發出的。

vif隻是vnic與指定鍊路veth之間關聯的辨別符,用于表示一種本地鍊路歸屬關系(以太網交換機的實體端口),并且它在網絡中并不是唯一的。如果虛拟化發生遷移,vnic和veth也會随之遷移,目前鍊路的vnic和veth之間的關聯就會結束,然後新的鍊路會建立新的關聯。新關聯再由新鍊路的本地有效的vif進行辨別,它可能與前一個vif截然不同。

vntag的應用和删除可以通過支援vntag的nic硬體或虛拟機管理程式的軟體來實作。

接口虛拟器一般位于伺服器的nic之中,但是它也可能位于獨立的裝置上,該裝置可以作為連接配接以太網交換機的遠端多路器。這種裝置通常稱為矩陣擴充器(fabric extender)。

矩陣擴充器(fabric extender)

矩陣擴充器是獨立實作的接口虛拟器,它對上行以太網交換機使用vntag标記。矩陣擴充器也可以看作是以太網交換機的遠端線卡,或者看作是以太網多路複用器。它的主要目标是在不增加管理節點的前提下增加可用端口的數量,作為一個簡單裝置,它還能夠減少解決方案的總成本。nexus 2000系列交換機就是一種矩陣擴充器。思科統一計算系統(ucs)也使用了矩陣擴充器。

圖2-38顯示了3台結構擴充器與兩台以太網交換機相連的網絡結構,通過虛線的鍊路都使用vntag封裝。

《思科資料中心I/O整合》一2.13 VEB:虛拟以太網橋接

例如,矩陣擴充器可能是1 ru(機架單元),帶有48個連接配接伺服器的1ge端口,以及4個連接配接以太網交換機的10ge上行鍊路。在這種情況下,矩陣擴充器使用48個vif,每一個1ge端口對應一個vif,但是1ge端口上不使用vntag。

矩陣擴充器的上行鍊路可以通過以太網通道進行聚合。在圖2-38中,最左邊和最右邊的矩陣擴充器分别将4個上行鍊路聚合成一組,再連接配接一個以太網交換機;中間的矩陣擴充器也将4個上行鍊路分聚合成為一個以太網通道,但是會連接配接到兩台獨立的以太網交換機;在後一種配置中,兩台以太網交換機或者屬于vss的組成部分,或者運作vpc,或者是l2mp雲的dbridge。

nexus 5020,作為唯一管理節點,可以連接配接12台矩陣擴充器(每台矩陣擴充器支援以4個10ge端口連接配接到nexus 5020上,在nexus 5020上總共支援48個10ge端口),進而可以在12 ru中支援總共576個1ge端口。事實上,矩陣擴充器并不是獨立被管理的裝置,隻有nexus 5000才是。

另一個例子是在矩陣擴充器中使用32個10ge端口連接配接伺服器,使用8個10ge端口連接配接以太網交換機。在這種情況下,矩陣擴充器使用256個vif,并且将它們動态配置設定到32個10ge端口上,同時對伺服器使用vntag,這樣就闡明了對已經使用vntag的鍊路進行聚合的可能性。

5台這樣的矩陣擴充器以及一台nexus 5020,利用統一網絡(unified fabric)的支援,就可以在7 ru中提供160個10ge端口,并且它們隻需要使用一個管理節點。

矩陣擴充器可以部署在靠近伺服器的位置,而且伺服器與矩陣擴充器之間可以采用廉價的銅線連接配接。以太網交換機可以部署在機櫃末端(eor),然後在矩陣擴充器和以太網交換機之間使用價格更高的光纖連接配接。最終的解決方案是超配的(oversubscribe),但是卻能夠以較低的價格實作10ge連接配接,并減少了管理節點的數目。

vn-link

虛拟網絡鍊路(virtual network link,vn-link)由思科公司和vmware公司合作開發,目标是解決veb等問題。vn-link拉近了伺服器與網絡的距離,進而簡化虛拟化環境的管理與監控。vn-link能夠通過統一的政策管理實作整個網絡的虛拟機可見性和移動性。

作為vn-link開發的組成部分,ieee 802.1送出了一個規範,在硬體網絡平台上通過交換機veb支援網絡接口虛拟化。

1.vn-link與nexus 1000v

nexus 1000v是第一個實作vn-link架構的産品,它是一個嵌入到vmware esx虛拟機管理程式的思科軟體交換機。它符合思科與vmware合作開發的vmware虛拟化網絡分布式交換機(vnds)的api接口标準。當vmotion或分布式資源排程器(drs)移動虛拟機時,虛拟機政策也會随之應用和遷移,不僅政策會跟随虛拟機一起移動,統計計數器、netflow狀态和erspan會話也會随之移動。

網絡政策即是端口模闆(port profile),由網絡管理者在nexus 1000v上使用cli指令建立。端口模闆會自動傳輸到vmware虛拟中心(virtual center)内部。在vmware虛拟基礎架構的用戶端内部端口模闆作為端口組(port group),而伺服器管理者可以将它們配置設定給vnic,然後再配置設定給虛拟機。

端口模闆構成了vn-link,它能夠在伺服器管理者和網絡管理者之間建立協同操作模型,而且不要求他們使用任何新管理工具。

veth和端口模闆都是實作自動化虛拟機連接配接和政策移動性的基礎(例如,允許接口配置、接口狀态和接口統計資訊跟随虛拟機在伺服器之間移動),這樣也能夠保證安全和連接配接政策的持續性。

nexus 1000v是nexus交換機産品線的一員,它運作nx-os。圖2-39顯示了nexus 1000v的基本構成,“nexus 1000v vem”(虛拟以太網子產品)安裝在vmware esx中,可以通過nexus 1000v虛拟化管理子產品(nexus 1000v virtual supervisor module,vsm)進行遠端配置和管理,vsm運作在nx-os裝置(實體的或者虛拟的)或nexus交換機(如nexus 5000或nexus 7000)上。在圖2-39中,虛線表示vem和vsm之間的管理和配置關系,一個vsm可以管理多個vem。此外,vsm可以為伺服器管理者維護vmware虛拟中心的配置模型。

作為nexus産品線的成員,nexus 1000v在正常軟體交換機之上還提供許多增值特性,如acl、qos标記和排隊、cisco trustsec、cdp v2、netflow v9、端口模闆、cisco cli、xmp api、snmp讀/寫、詳細接口電腦與統計、端口安全性等。例如,它支援封裝的遠端span(encapsulated remote span,erspan),同樣是在虛拟機遷移過程中,它能夠将虛拟機流量映射到位于資料中心中央的外部嗅探器上(sniffer)。

2.vn-link與nexus 5000

nexus 5000支援vn-link架構。它可以作為交換機的veb,在虛拟機管理程式的接口虛拟器與nexus 5000之間使用vntag。

《思科資料中心I/O整合》一2.13 VEB:虛拟以太網橋接

接口虛拟器負責為離開虛拟機的幀添加标簽,可以通過以下兩種方式來實作。

第一種方法是在虛拟機管理程式的軟體交換機(nexus 1000v或vmware交換機)中應用vntag,然後再将資料包轉發到nexus 5000。

第二種方法是使用支援在硬體中添加vntag的nic(例如,sr-iov nic)。在這種方法中,sr-iov nic還可以實作虛拟機管理程式旁路。

和在nexus 1000v上使用vn-link相比,nexus 5000上使用vn-link也具有相同的外部行為和優點,但是所有以太網特性(交換、acl、erspan、qos等)都會線速的在nexus 5000的硬體中執行。

和前一種情況一樣,網絡政策仍然按照端口模闆進行定義,vmotion/drs及其他vn-link特性也一樣被支援。

繼續閱讀