閱讀990 返回首頁    go 阿裏雲 go 技術社區[雲棲]


網絡虛擬化簡介

      雲計算就是計算虛擬化,而存儲虛擬化已經在SAN上實現得很好了,那麼為什麼還要網絡虛擬化呢?雲計算多虛一時,所有的服務資源都成為了一個對外的虛擬資源,那麼網絡不管是從路徑提供還是管理維護的角度來說,都得跟著把一些機框盒進行多虛一統一規劃。而雲計算一虛多的時候,物理服務器都變成了VM。


網絡多虛一技術

      網絡多虛一技術:最早的網絡多虛一技術代表是交換機集群Cluster技術,多以盒式小交換機為主,較為古老,當前數據中心裏麵已經很少見了。而新的技術則主要分為兩個方向,控製平麵虛擬化與數據平麵虛擬化。


控製平麵虛擬化

      顧名思義,控製平麵虛擬化將所有設備的控製平麵合而為一,隻由一個主體去處理整個虛擬交換機的協議處理,表項同步等工作。從結構上來說,控製平麵虛擬化又可以分為縱向與橫向虛擬化兩種方向。

      縱向虛擬化指不同層次設備之間通過虛擬化合多為一,代表技術就是Cisco的Fabric Extender,相當於將下遊交換機設備作為上遊設備的接口擴展而存在,虛擬化後的交換機控製平麵和轉發平麵都在上遊設備上,下遊設備隻有一些簡單的同步處理特性,報文轉發也都需要上送到上遊設備進行。可以理解為集中式轉發的虛擬交換機。

      橫向虛擬化多是將同一層次上的同類型交換機設備虛擬合一, Cisco的VSS/vPC和H3C的IRF都是比較成熟的技術代表,控製平麵工作如縱向一般,都由一個主體去完成,但轉發平麵上所有的機框和盒子都可以對流量進行本地轉發和處理,是典型分布式轉發結構的虛擬交換機。Juniper的QFabric也屬於此列,區別是單獨弄了個Director盒子隻作為控製平麵存在,而所有的Node QFX3500交換機同樣都有自己的轉發平麵可以處理報文進行本地轉發。

      控製平麵虛擬化從一定意義上來說是真正的虛擬交換機,能夠同時解決統一管理與接口擴展的需求。但是有一個很嚴重的問題製約了其技術的發展。在前麵的雲計算多虛一的時候也提到過,服務器多虛一技術目前無法做到所有資源的靈活虛擬調配,而隻能基於主機級別,當多機運行時,協調者的角色(等同於框式交換機的主控板控製平麵)對同一應用來說,隻能主備,無法做到負載均衡。網絡設備虛擬化也同樣如此,以框式設備舉例,不管以後能夠支持多少台設備虛擬合一,隻要不能解決上述問題,從控製平麵處理整個虛擬交換機運行的物理控製節點主控板都隻能有一塊為主,其他都是備份角色(類似於服務器多虛一中的HA Cluster結構)。總而言之,虛擬交換機支持的物理節點規模永遠會受限於此控製節點的處理能力。這也是Cisco在6500係列交換機的VSS技術在更新換代到Nexus7000後被砍掉,隻基於鏈路聚合做了個vPC的主要原因。三層IP網絡多路徑已經有等價路由可以用了,二層Ethernet網絡的多路徑技術在TRILL/SPB實用之前隻有一個鏈路聚合,所以隻做個vPC就足矣了。另外從Cisco的FEX技術隻應用於數據中心接入層的產品設計,也能看出其對這種控製平麵虛擬化後帶來的規模限製以及技術應用位置是非常清晰的。


數據平麵虛擬化

      前麵說了控製平麵虛擬化帶來的規模限製問題,而且短時間內也沒有辦法解決,那麼就想個法子躲過去。能不能隻做數據平麵的虛擬化呢,於是有了TRILL和SPB。關於兩個協議的具體細節下文會進行展開,這裏先簡單說一下,它們都是用L2 ISIS作為控製協議在所有設備上進行拓撲路徑計算,轉發的時候會對原始報文進行外層封裝,以不同的目的Tag在TRILL/SPB區域內部進行轉發。對外界來說,可以認為TRILL/SPB區域網絡就是一個大的虛擬交換機,Ethernet報文從入口進去後,完整的從出口吐出來,內部的轉發過程對外是不可見且無意義的。

      這種數據平麵虛擬化多合一已經是廣泛意義上的多虛一了,相信看了下文技術理解一節會對此種技術思路有更深入的了解。此方式在二層Ethernet轉發時可以有效的擴展規模範圍,作為網絡節點的N虛一來說,控製平麵虛擬化目前N還在個位到十位數上晃悠,數據平麵虛擬化的N已經可以輕鬆達到百位的範疇。但其缺點也很明顯,引入了控製協議報文處理,增加了網絡的複雜度,同時由於轉發時對數據報文多了外層頭的封包解包動作,降低了Ethernet的轉發效率。

      從數據中心當前發展來看,規模擴充是首位的,帶寬增長也是不可動搖的,因此在網絡多虛一方麵,控製平麵多虛一的各種技術除非能夠突破控製層多機協調工作的技術枷鎖,否則隻有在中小型數據中心裏麵刨食的份兒了,後期真正的大型雲計算數據中心勢必是屬於TRILL/SPB此類數據平麵多虛一技術的天地。當然Cisco的FEX這類定位於接入層以下的技術還是可以與部署在接入到核心層的TRILL/SPB相結合,擁有一定的生存空間。估計Cisco的雲計算數據中心內部網絡技術野望如下圖所示:(Fabric Path是Cisco對其TRILL擴展後技術的最新稱唿)

     


網絡一虛多技術

      網絡一虛多,這個可是根源久遠,從Ethernet的VLAN到IP的VPN都是大家耳熟能詳的成熟技術,FC裏麵也有對應的VSAN技術。此類技術特點就是給轉發報文裏麵多插入一個Tag,供不同設備統一進行識別,然後對報文進行分類轉發。代表如隻能手工配置的VLAN ID和可以自協商的MPLS Label。傳統技術都是基於轉發層麵的,雖然在管理上也可以根據VPN進行區分,但是CPU/轉發芯片/內存這些基礎部件都是隻能共享的。目前最新的一虛多技術就是Cisco在X86架構的Nexus7000上實現的VDC,和VM一樣可以建立多個VDC並將物理資源獨立分配,目前的實現是最多可建立4個VDC,其中還有一個是做管理的,推測有可能是通過前麵講到過的OS-Level虛擬化實現的。

      從現有階段來看,VDC應該是Cisco推出的一項實驗性技術,因為目前看不到大規模應用的場景需求。首先轉發層麵的流量隔離(VLAN/VPN等)已經做得很好了,沒有必要搞個VDC專門做業務隔離,況且從當前VDC的實現數量(4個)上也肯定不是打算向這個方向使勁。如果不搞隔離的話,一機多用也沒有看出什麼實用性,虛擬成多個數據中心核心設備後,一個物理節點故障導致多個邏輯節點歇菜,整體網絡可靠性明顯降低。另外服務器建VM是為了把物理服務器空餘的計算能力都用上,而在雲計算數據中心裏麵網絡設備的接口數應該始終是供不應求的,哪裏有多少富裕的還給你搞什麼虛擬化呢。作者個人對類似VDC技術在雲計算數據中心裏麵的發展前景是存疑的。


SR-IOV

      對網絡一虛多這裏還有個東西要補充一下,就是服務器網卡的IO虛擬化技術。單根虛擬化SR-IOV是由PCI SIG Work Group提出的標準,Intel已經在多款網卡上提供了對此技術的支持,Cisco也推出了支持IO虛擬化的網卡硬件Palo。Palo網卡同時能夠封裝VN-Tag(VN的意思都是Virtual Network),用於支撐其FEX+VN-Link技術體係。現階段Cisco還是以UCS係列刀片服務器集成網卡為主,後續計劃向盒式服務器網卡推進,但估計會受到傳統服務器和網卡廠商們的聯手狙擊。

      SR-IOV就是要在物理網卡上建立多個虛擬IO通道,並使其能夠直接一一對應到多個VM的虛擬網卡上,用以提高虛擬服務器的轉發效率。具體說是對進入服務器的報文,通過網卡的硬件查表取代服務器中間Hypervisor層的VSwitch軟件查表進行轉發。另外SR-IOV物理網卡理論上加塊轉發芯片,應該可以支持VM本地交換(其實就是個小交換機啦),但個人目前還沒有看到實際產品。SR(Single Root)裏麵的Root是指服務器中間的Hypervisor,單根就是說目前一塊硬件網卡隻能支持一個Hypervisor。有單根就有多根,多根指可以支持多個Hypervisor,但貌似目前單物理服務器裏麵跑多個Hypervisor還很遙遠,所以多根IO虛擬化MR-IOV也是個未來未來時。摘錄Cisco膠片對MR-IOV描述如下:(HW為Hardware,PF為Physical Function,VF為Virtual Functions)

     

      SR-IOV隻定義了物理網卡到VM之間的聯係,而對外層網絡設備來說,如果想識別具體的VM上麵的虛擬網卡vNIC,則還要定義一個Tag在物理網卡到接入層交換機之間區分不同vNIC。此時物理網卡提供的就是一個通道作用,可以幫助交換機將虛擬網絡接口延伸至服務器內部對應到每個vNIC。Cisco UCS服務器中的VIC(Virtual Interface Card)M81-KR網卡(Palo),就是通過封裝VN-Tag使接入交換機(UCS6100)識別vNIC的對應虛擬網絡接口。

      網絡虛擬化技術在下一個十年中必定會成為網絡技術發展的重中之重,誰能占領製高點誰就能引領數據中心網絡的前進。從現在能看到的技術信息分析,Cisco在下個十年中的地位仍然不可動搖。

最後更新:2017-04-03 05:40:06

  上一篇:go 【膚色檢測 (I)】實測Ycrcb之cr分量+otsu閾值化
  下一篇:go javaScript小結