云計算最重要的技術實現就是虛擬化技術,計算虛擬化商用的解決方案得到了較成熟的應用,而存儲虛擬化已經在SAN上實現得很好了,在網絡虛擬化技術方面,業界主流廠商都提出了自己的解決方案,本文分析了數據中心中網絡虛擬化的實現相關技術和發展思路。最早的網絡虛擬化技術代表是交換機集群Cluster技術,多以盒式小交換機為主,當前數據中心里面已經很少見了。而新技術則主要分為兩個方向,控制平面虛擬化與數據平面虛擬化。在探討網絡虛擬化技術之前,先定義一下云計算數據中心各種網絡類型,數據中心網絡流量的根本出發點是Server,結合云計算最適合的核心-接入二層網絡結構,各種網絡分類如圖1所示。
圖1 網絡分類
Network1:VM本地互訪網絡,邊界是AccessSwitch,包括物理服務器本機VM互訪和跨AccessSwitch的不同物理服務器VM互訪兩個層面。
Network2:Ethernet與FC融合,就是FCoE,邊界仍然是Access Switch。
Network3:跨核心層服務器互訪網絡,邊界是Access Switch與Core Switch。
Network4:數據中心跨站點二層網絡,邊界是Core Switch。
Network5:數據中心外部網絡,邊界是CoreSwitch與ISP IP網絡。
在大規模數據中心部署虛擬化計算和虛擬化存儲以后,對網絡產生了新的需求。
1)虛擬機(VM)之間的互通,在DC內部和DC間任意互通、遷移和擴展資源。
2)更多的接口,更多的帶寬,至少按照一萬個萬兆端口容量構建資源池。
3)二層網絡規模擴大,保證業務與底層硬件的透明和隨需部署。
4)數據中心站點間二層互聯,DC資源整合,地域無差別,構建真正的大云。
5)服務器前后端網絡融合,DC內部網絡整合。
1 控制平面虛擬化
顧名思義,控制平面虛擬化是將所有設備的控制平面合而為一,只有一個主體去處理整個虛擬交換機的協議處理、表項同步等工作。從結構上來說,控制平面虛擬化又可以分為縱向與橫向虛擬化兩種方向。
縱向虛擬化指不同層次設備之間通過虛擬化合多為一,相當于將下游交換機設備作為上游設備的接口擴展而存在,虛擬化后的交換機控制平面和轉發平面都在上游設備上,下游設備只有一些簡單的同步處理特性,報文轉發也都需要上傳到上游設備進行。可以理解為集中式轉發的虛擬交換機。
橫向虛擬化多是將同一層次上的同類型交換機設備虛擬合一,控制平面工作如縱向一般,都由一個主體去完成,但轉發平面上所有的機框和盒子都可以對流量進行本地轉發和處理,是典型分布式轉發結構的虛擬交換機。控制平面虛擬化從一定意義上來說是真正的虛擬交換機,能夠同時解決統一管理與接口擴展的需求。
2 數據平面虛擬化
數據通信的兩個維度,一個是控制平面,另一個是數據平面,也就是數據轉發平面。為實現數據平面的虛擬化,于是有了TRILL和SPB這兩個新的協議的推出。兩個協議都是用L2 ISIS作為控制協議在所有設備上進行拓撲路徑計算,轉發的時候會對原始報文進行外層封裝,以不同的目的Tag在TRILL/SPB區域內部進行轉發。對外界來說,可以認為TRILL/SPB區域網絡就是一個大的虛擬交換機,Ethernet報文從入口進去后,完整的從出口吐出來,內部的轉發過程對外是不可見且無意義的。
這種數據平面虛擬化多合一已經是廣泛意義上的多虛一了,此方式在二層Ethernet轉發時可以有效的擴展規模范圍,作為網絡節點地多個節點虛擬成一個節點來說,控制平面虛擬化目前還在個位到十位數級別,數據平面虛擬化已經可以輕松達到百位的范疇。但其缺點也很明顯,引入了控制協議報文處理,增加了網絡的復雜度,同時由于轉發時對數據報文多了外層頭的封包解包動作,降低了Ethernet的轉發效率。
在構建數據中心二層網絡模型中,核心層與接入層設備有兩個問題是必須要解決的,一是拓撲無環路,二是多路徑轉發。但在傳統Ethernet轉發中只有使用STP才能確保無環,但STP導致了多路徑冗余中部分路徑被阻塞浪費帶寬,給整網轉發能力帶來了瓶頸。因此云計算中需要新的技術在避免環路的基礎上提升多路徑帶寬利用率,網絡虛擬化技術提到了兩個解決上述需求的思路。
首先是控制平面多虛一,將核心層虛擬為一個邏輯設備,通過鏈路聚合使此邏輯設備與每個接入層物理或邏輯節點設備均只有一條邏輯鏈路連接,將整個網絡邏輯拓撲形成無環的樹狀連接結構,從而滿足無環與多路徑轉發的需求。
另一個思路是數據平面多虛一,在接入層與核心層交換機引入外層封裝標識和動態尋址協議來解決L2MP(Layer2 MultiPath)需求,可以理解這個思路相當于在Ethernet外面建立一套類似IP+OSPF的協議機制。對接入層以下設備來說,整個接入層與核心層交換機虛擬成了一臺邏輯的框式交換機,Ethernet報文進Ethernet報文出,中間系統就是個黑盒,就好像IP層面用不著了解到Ethernet是怎么轉發處理的一樣。這種思路的代表技術是IETF(InternetEngineering Task Force)標準組織提出的TRILL 和IEEE提出的802.1aq SPB。
3 控制平面多虛一技術
目前業界應用最廣泛的控制平面多虛一技術就是VSS(VirtualSwitching System)和IRF(IntelligentResilient Framework),VSS是Cisco的私有技術,IRF是在H3C所有數據中心交換機中實現的私有技術。二者的關鍵技術點如下。
1)專用鏈路跑私有協議。VSS使用VSL(Virtual Switch Link),IRF使用IRF link來承載各自的控制平面私有交互協議VSLP和IRF。專用鏈路使用私有協議來初始化建立鄰接、協商主備(描繪拓撲)、同步協議狀態,同時會在虛擬化完成后,傳輸跨機框轉發的數據流量。
2)基于引擎的主備模式。二者的控制平面都是只有一塊主控引擎做為虛擬交換機的主控制引擎,其他的引擎都是備份。所有的協議學習,表項同步等工作都是由這一塊引擎獨立完成。好在這些設備大都是分布式交換,數據轉發的工作由交換板自己完成了,只要不是類似OSPF鄰居太多,拓撲太大等應用情況,一塊主控大部分也都能解決了。
3)跨設備鏈路聚合。前面說了網絡虛擬化主要是應對二層多路徑環境下防止環路,因此跨設備鏈路聚合就是必須的了。
4)雙活檢測處理。當VSL或IRF link故障后,組成虛擬化的兩個物理設備由于配置完全相同會在網絡中出現雙活節點,對上下游設備造成IP網關混亂。因此VSS/IRF都設計了一些雙活處理機制以應對專用鏈路故障。①首先網絡中如果有跨設備鏈路聚合時,VSS使用PAgP、IRF使用LACP擴展報文來互相檢測通知;②如果有富裕接口在虛擬化的兩臺物理設備間可以單獨再拉根直連線路專門用做監控,VSS使用VSLP FastHello、IRF使用BFD機制進行檢測通知;③另外VSS還可以使用IP BFD通過互聯的三層鏈路進行監控,IRF則支持使用免費ARP通過二層鏈路進行監控。上述幾種方式都是監控報文傳輸的鏈路或者外層承載協議不同。當發現專用鏈路故障時,VSS/IRF操作結果目前都是會將處于備份狀態的物理機框設備的所有接口全部關閉,直到專用鏈路恢復時再重新協商。需要注意這兩種虛擬化技術在進行初始協商時都需要將角色為備份的機框設備進行重啟才能完成虛擬化部署,如圖2所示。
除上述4個關鍵技術點,VSS/IRF還有一些小的相似技術設定,如Domain的設定、版本一致性檢查、三層虛接口MAC協商等,都是基于各方的細節需求。由于應用環境相似,因此實現的東西也區別不大。
圖2 三種故障檢測方式
VSS和IRF都是當前較為成熟的虛擬化技術,其優點是可以簡化組網,便捷管理,目前IRF技術已經可以支持四個框式核心設備虛擬化一個核心設備,提供單節點超過2000個萬兆接口,具有很強的系統擴展性。
4 數據平面多虛一技術
數據平面多虛一技術的統一特征就是在二層Ethernet報文外面再封裝一層標識用于尋址轉發,這樣基于外層標識就可以做些多路徑負載均衡和環路避免等處理工作了。目前正在推動的公有標準協議主要有TRILL/SPB。
4.1 TRILL
TRILL(TRansparent Interconnect of Lots of Links)全稱透明多鏈路互連,在2010年3月時TRILL已經提交了IETF RFC 5556規范Transparent Interconnectionof Lots of Links (TRILL):Problem and ApplicabilityStatement,此RFC只是描述了TRILL要解決的問題以及應用范圍,定義協議細節的文檔目前都還處于Draft階段,形成完整的協議標準體系還需要1-2年。TRILL是專門為數據中心開發的技術,其定義的是在大型Ethernet網絡中解決多路徑問題的方案。
控制平面上TRILL引入了L2 ISIS做為尋址協議,運行在所有的TRILL RB(Routing Bridge)之間,部署于一個可自定義的獨立協議VLAN內,做的還是建立鄰接、繪制拓撲和傳遞Tag幾件事。數據平面在內外層Ethernet報頭之間引入了TRILL報頭,使用Nickname作為轉發標識,用于報文在TRILL網絡中的尋址轉發(可理解為類似IP地址在IP網絡里面轉發時的作用)。每個RB都具有唯一的Nickname,同時維護其他RB的TRILL公共區域MAC地址、Nickname和私有區域內部MAC地址的對應關系表。因為TRILL封裝是MACinMAC方式,因此在TRILL公共區域數據報文可以經過傳統Bridge和Hub依靠外部Ethernet報頭轉發(如圖3所示)。TRILL報頭格式如圖4所示。
圖4 TRILL報頭格式
V(Version):2bit,當前Draft定義為0。
R(Reserved):2bit,預留。
M(Multi-destination):1bit,0為已知單播,1為未知單播/組播/廣播,此時Egress RBridge Nickname意味著當前轉發使用多播樹的根。
Op-Length(Options Length):5bit,Option字段長度。
Hop Count:6bit,最大跳數,逐跳減一,為0丟棄,防止環路風暴。
Egress RBridge Nickname:16bit,已知單播標示目的私網MAC對應的RB,多播則標示多播樹根RB。中間傳輸RB節點不能改變此字段值。
Ingress RBridge Nickname:16bit,標示報文進入TRILL區域的初始邊緣RB,中間傳輸RB節點不能改變此字段值。
Options:目前只定義了CHbH(Critical Hop byHop)和CItE(Critical Ingress to Egress)兩個1bit的標志位,用于說明后面的Option預留內容是需要逐跳設備識別處理的或是首末端設備必須識別處理的。至于真正的Option目前都還沒有定義。
普通Ethernet報文在首次從TRILL邊緣RB設備進入TRILL區域時,作為未知單播還是依照傳統以太網傳播方式,廣播給所有其他的RB節點。但是除了邊緣RB外,TRILL區域中間的RB和傳統Bridge都不會學習此數據報文中私有區域內部MAC地址信息,有效地降低了中間設備的MAC地址表壓力。為了防止環路同時做到多路徑負載均衡,TRILL的每個RB在初始建立鄰接繪制拓撲時,都會構造出多個多播樹,分別以不同的Nickname為根,將不同的未知單播/組播/廣播流量Hash到不同的樹,分發給其他所有RB。由于全網拓撲唯一且構造樹時采用的算法一致,可保證全網RB的組播/廣播樹一致。在RB發送報文時,通過將報文TRILL頭中的M標志位置1來標識此報文為多播,并填充樹根Nickname到目的Nickname字段,來確保沿途所有RB采用同一顆樹進行廣播。組播與廣播報文的轉發方式與未知單播相同。已知單播報文再發送的時候,會根據目的RB的Nickname進行尋路,如果RB間存在多條路徑時,會逐流進行Hash發送,以確保多路徑負載分擔。
另外TRILL除了支持外層Ethernet封裝在傳統以太網中傳輸,還規定了一種外層PPP封裝方式可以跨廣域網技術傳輸。圖5是兩種典型的TRILL報文封裝方式。TRILL的主要技術結構如上所述,目前各個芯片廠商都已經進入TRILL Ready的階段,隨著技術標準完善發布并廣泛被客戶所接受,相關產品的商用是很快的。
圖5(a)TRILL報文封裝方式1 圖5(b)TRILL報文封裝方式2圖5 TRILL報文封裝方式
4.2 SPB
談到SPB需要先了解PBB(運營商骨干橋接技術,Provider Backbone Bridging),PBB是IEEE于2008年完成的802.1ah標準,為運營商城域以太網定義了一整套MACinMAC的轉發機制。但PBB只定義了轉發平面的封裝內容,當報文封裝上外層Ethernet報頭在運營商骨干區域二層網絡中時,仍然需要依靠傳統的STP進行環路避免和轉發控制。于是IEEE在2009年又定義了802.1Qay PBB-TE(Provider Backbone Bridge TrafficEngineering),用于在運營商的骨干區域中進行拓撲管理與環路保護,也就是通過手工方式配置大量指定路徑取代STP的自動收斂。目前IEEE還有個相關的標準P802.1Qbf,PBB-TE infrastructure protection處于草案階段,預計2011年發布。
PBB-TE靜態規劃轉發路徑,無法適用于大型二層網絡擴展,于是IEEE又發布了P802.1aq SPB(ShortestPath Bridging),當前處于草案階段。從IEEE的資料上看SPB主要是為解決STP阻塞鏈路浪費帶寬的問題而研究的。從實現看,同樣是采用了L2 ISIS作為其控制平面協議進行拓撲學習計算,用MACinMAC封裝方式在SPB區域內部進行報文傳輸(如圖6所示)。
圖6 SPB引入示意
SPB可細分為SPBV(VLANQinQ)和SPBM(MACinMAC)兩個部分,目前看主要用到的是SPBM。
SPBM是標準的MACinMAC封裝,在SPB區域中數據報文也都是依靠外層MAC做傳統Ethernet轉發。外層Ethernet報頭中的源目的MAC就代表了SPB區域邊緣的UNI設備,此設備MAC是由L2 ISIS在SPB區域中傳遞的。
由于在SPB網絡中還是采用傳統Ethernet進行轉發,因此需要定義一系列的軟件算法以保證多路徑的廣播無環和單播負載均衡。下面介紹幾個主要的部分。
1)首先SPB定義了I-SID來區分多個拓撲,I-SID信息在數據報文中以BVID(外層Ethernet報頭中的VLANTag)的形式攜帶,這樣就可以解決不同業務多拓撲轉發的問題。
2)每個SPB節點都會為每個I-SID計算三棵樹。到達所有相關UNI節點的SPT(Shortest Path Tree)用于單播與組播報文的轉發;ECT(Equal Cost Tree)用以處理兩個UNI間存在多條等價路徑時負載均衡轉發;自己為根的多播樹MT(Multicast Tree)用于未知單播與廣播報文轉發。
3)任意兩點間的Shortest Path一定是對稱的,ECT的負載均衡是基于不同I-SID分擔的。
總的來說,SPB和TRILL相比主要有以下不同(如表1所示)。
表1 SPB與TRILL區別
SPB目前的最大困擾是轉發路徑靠軟件算法保障,尤其在多路徑負載分擔時,對CPU計算壓力遠遠超過TRILL和FabricPath,因此實際轉發效率還有待驗證。
5 小結
從云計算數據中心網絡虛擬化技術發展來看,控制平面的虛擬化技術,如已經得到廣泛商用的VSS/IRF,這個技術的使用,作為網絡虛擬化技術的第一步,目前能夠將數據中心單節點的端口容量擴展到2000個萬兆端口,后續會向3000個萬兆端口的規模升級。隨著云計算網絡規模的增大,如運營商提出在云基地建設40萬臺服務器規模的數據中心,勢必要引入新的技術,其中本文提到的數據平面虛擬化技術TRILL/SPB都是下一步網絡虛擬化實施中可能的選擇,這些技術比以前的STP在帶寬上多了一倍的擴充,組網規模上也得到擴展,可以構建多層次、面向1~5萬個萬兆端口級別的數據中心網絡,更適用于云計算超大規模的網絡需求。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:云計算數據中心網絡虛擬化技術